Ereignisse in Ihren IBM Cloud Object Storage-Buckets verfolgen
IBM Cloud bietet zentralisierte Protokollierungsservices zum Verfolgen von Ereignissen, die für Ihre Ressourcen ausgeführt wurden. Sie können diese Dienste nutzen, um abnormale Aktivitäten und kritische Aktionen zu untersuchen und die gesetzlichen Audit-Anforderungen zu erfüllen.
Verwenden Sie diese Services, um Ereignisse in Ihren IBM Cloud® Object Storage-Buckets zu verfolgen und eine Aufzeichnung der Vorgänge mit Ihren Daten bereitzustellen. Aktivieren Sie diese Services in Ihrem Bucket, um detaillierte Protokolle zu Datenzugriffs-und Bucketkonfigurationsereignissen zu erhalten.
Verwenden Sie IBM Cloud Activity Tracker Event Routing, um Auditing-Ereignisse auf Kontoebene zu verwalten, indem Sie Ziele und Routen konfigurieren, die definieren, wohin Auditing-Daten weitergeleitet werden.
Diese Funktion wird derzeit nicht in Object Storage for Satellite unterstützt.
Dieses Feature unterstützt die SCC-Überwachung.
IBM Cloud Activity Tracker zum Verfolgen von Bucketereignissen verwenden
Ab dem 28. März 2024 sind die Dienste IBM Log Analysis und IBM Cloud Activity Tracker veraltet und werden ab dem 30. März 2025 nicht mehr unterstützt. Die Kunden müssen vor dem 30. März 2025 auf IBM Cloud Logs umsteigen, das diese beiden Dienste ersetzt.
Die Überwachung von Object Storage-Ereignissen mit IBM Cloud® Activity Tracker stellt einen Datensatz zu den Vorgängen mit Ihren Daten bereit. Der Dienst IBM Cloud Activity Tracker bietet den Rahmen und die Funktionen für die Überwachung von API-Aufrufen zu Diensten auf IBM Cloud und liefert die Nachweise für die Einhaltung von Unternehmensrichtlinien und branchenspezifischen Vorschriften.
Siehe Erste Schritte mit IBM Cloud Activity Tracker um mehr zu erfahren. Migrieren Sie von IBM Cloud Activity Tracker zu IBM Cloud Logs, um eine Unterbrechung der Ereignisverfolgung zu vermeiden.
Verwendung von IBM Cloud Logs zur Verfolgung von Eimer-Ereignissen
IBM Cloud Logs gibt Ihnen die Flexibilität, wie Ihre Daten verarbeitet werden, um Einblicke und Trends zu erhalten, und wo die Daten für eine schnelle Suche und langfristige Trendanalyse gespeichert werden. Es stellt Ihnen die Tools zur Verfügung, mit denen Sie den erzielten Wert maximieren und gleichzeitig die Kontrolle über die Gesamtkosten behalten können.
Um Bucket-Ereignisse zu verfolgen, indem Sie IBM Cloud Logs als Ziel für Activity Tracker Event Routing verwenden, befolgen Sie die Schritte unter Konfigurieren einer IBM Cloud Logs-Instanz als Ziel,
um eine IBM Cloud Logs-Instanz bereitzustellen, konfigurieren Sie die Service-to-Service-Autorisierung, erstellen Sie ein Ziel und erstellen Sie eine Route. Wählen Sie beim Erstellen einer Route den Ort aus, der der Region entspricht, in der
sich Ihre Eimer befinden, z. B. us-south. Nachdem Sie die Konfiguration abgeschlossen haben, werden alle Object Storage Anfrageprotokolle aus der ausgewählten Region an die Instanz IBM Cloud Logs weitergeleitet. Um die Protokolle
anzuzeigen, starten Sie die Benutzeroberfläche IBM Cloud Logs.
Optional können Sie den TCO Optimizer verwenden, um die Protokolle zu filtern und nur Informationen für eine bestimmte Object Storage Instanz anzuzeigen. Standardmäßig erfasst Activity Tracker Event Routing die Daten für alle Dienste in der ausgewählten Region. Um die Protokolle auf eine bestimmte Object Storage-Instanz zu beschränken, folgen Sie den Schritten unter Erstellen einer Richtlinie, um eine neue TCO Optimizer-Richtlinie mit diesen Einstellungen hinzuzufügen und anzuwenden:
- Anwendung =
ibm-audit-event - Subsystem = CRN für die spezifische Instanz Object Storage,
CRNserviceName:instanceID
Weiterleitungsprotokolle mit IBM Cloud Activity Tracker-Ereignisweiterleitung
Starten Sie mit IBM Cloud Activity Tracker Event Routing, um das Routing für Ihre IBM Cloud Object Storage Auditing-Ereignisse zu konfigurieren. Sie können Activity Tracker Event Routing, einen Plattformdienst, verwenden, um Auditing-Ereignisse auf Kontoebene zu verwalten, indem Sie Ziele und Routen konfigurieren, die festlegen, wohin Auditing-Daten weitergeleitet werden.
Activity Tracker Event Routing unterstützt die Weiterleitung von IBM COS-Bucketprotokollen an die folgenden Ziele
Konfigurieren Sie Ereignisse zur Aktivitätsverfolgung in Ihrem IBM Cloud Object Storage Bucket (empfohlen)
Die Ereignisverfolgung kann für Ihren IBM Cloud Object Storage Bucket zum Zeitpunkt der Bucket-Bereitstellung oder durch Aktualisierung der Bucket-Konfiguration nach der Bucket-Erstellung aktiviert werden. Die Ereignisüberwachung gilt nur für COS-Anfragen nach Aktivierung.
Standardmäßig werden COS-Ereignisse, die über globale Aktionen, wie die Erstellung von Schaufeln, berichten, automatisch erfasst. Sie können globale Aktionen über die Instanz Activity Tracker am Standort Frankfurt überwachen.
IBM COS unterstützt optional auch die Verfolgung folgender Ereignistypen:
- Managementereignisse-Anforderungen für die Verwaltung der Bucket-und Objektkonfiguration
- Read Data Events-Anforderungen im Zusammenhang mit Objektlisten-und Leseanforderungen
- Datenereignisse schreiben-Dies sind alle Ereignisse, die sich auf das Schreiben und Löschen von Objekten beziehen.
Ziehen Sie die COS-API-Ereignisse zu Rate, um die vollständige Liste der Management-, Read Data-und Write Data-Aktionen anzuzeigen, die Ereignisse generieren.
Verwenden Sie die API für COS-Ressourcenkonfiguration, um die Verfolgung dieser Ereignisse im Bucket zu konfigurieren.
Wenn die Ereignisverfolgung aktiviert ist, werden alle Ereignisse an den Standardempfangsort für IBM Cloud Activity Tracker Event Router gesendet, der auf dem Standort des Buckets basiert. Unter IBM COS Service Integration finden Sie diese Standardzuordnung. Verwenden Sie Activity Tracker Event Router-Regeln, um Ereignisse an einen alternativen Standort oder Zieldienst weiterzuleiten. Weitere Informationen finden Sie unter Regeln verwalten.
Konfiguration von IBM Cloud Activity Tracker in Ihrem Bucket (empfohlen)
Wählen Sie die Registerkarte für Benutzerschnittstelle, API oder Terraform oben in diesem Abschnitt aus, um die Beispiele anzuzeigen, die zeigen, wie die Überwachung von Management-, Datenlese-und Datenschreibereignissen in Ihrem Bucket aktiviert wird.
Benutzerschnittstellenbeispiel für die Aktivierung der Verfolgung von Ereignissen in Ihrem Bucket
- Wählen Sie in der Ressourcenliste der IBM Cloud-Konsole die Serviceinstanz aus, die das Bucket enthält, für das Sie die Ereignisüberwachung hinzufügen möchten. Hier gelangen Sie zur Konsole Object Storage
- Wählen Sie den Bereich, für den Sie die Ereignisverfolgung aktivieren möchten.
- Wechseln Sie zur Registerkarte Konfiguration.
- Blättern Sie abwärts zum Abschnitt für die erweiterte Konfiguration und aktivieren Sie die Ereignisse, die Sie für dieses Bucket verfolgen möchten.
- Nach ein paar Minuten werden alle Aktivitäten auf der Web-UI Activity Tracker sichtbar sein.
Beispiele
Java-SDK
import com.ibm.cloud.objectstorage.config.resource_configuration.v1.ResourceConfiguration;
import com.ibm.cloud.objectstorage.config.resource_configuration.v1.model.BucketPatch;
import com.ibm.cloud.sdk.core.security.IamAuthenticator;
public class ActivityTrackerExample {
private static final String BUCKET_NAME = <BUCKET_NAME>;
private static final String API_KEY = <API_KEY>;
public static void main(String[] args) {
IamAuthenticator authenticator = new IamAuthenticator.Builder()
.apiKey(API_KEY)
.build();
ResourceConfiguration RC_CLIENT = new ResourceConfiguration("resource-configuration", authenticator);
ActivityTracking activityTrackingConfig = new ActivityTracking().Builder()
.readDataEvents(true)
.writeDataEvents(true)
.managementEvents(true)
.build();
BucketPatch bucketPatch = new BucketPatch.Builder().activityTracking(activityTrackingConfig).build();
UpdateBucketConfigOptions update = new UpdateBucketConfigOptions
.Builder(BUCKET_NAME)
.bucketPatch(bucketPatch.asPatch())
.build();
RC_CLIENT.updateBucketConfig(update).execute();
GetBucketConfigOptions bucketOptions = new GetBucketConfigOptions.Builder(BUCKET_NAME).build();
Bucket bucket = RC_CLIENT.getBucketConfig(bucketOptions).execute().getResult();
ActivityTracking activityTrackingResponse = bucket.getActivityTracking();
System.out.println("Read Data Events : " + activityTrackingResponse.readDataEvents());
System.out.println("Write Data Events : " + activityTrackingResponse.writeDataEvents());
System.out.println("Management Events : " + activityTrackingResponse.managementEvents());
}
}
NodeJS SDK
const ResourceConfigurationV1 = require('ibm-cos-sdk-config/resource-configuration/v1');
IamAuthenticator = require('ibm-cos-sdk-config/auth');
var apiKey = "<API_KEY>"
var bucketName = "<BUCKET_NAME>"
authenticator = new IamAuthenticator({apikey: apiKey})
rcConfig = {authenticator: authenticator}
const client = new ResourceConfigurationV1(rcConfig);
function addAT() {
console.log('Updating bucket metadata...');
var params = {
bucket: bucketName,
activityTracking: {
"read_data_events": true,
"write_data_events": true,
"management_events": true
}
};
client.updateBucketConfig(params, function (err, response) {
if (err) {
console.log("ERROR: " + err);
} else {
console.log(response.result);
}
});
}
addAT()
Python SDK
from ibm_cos_sdk_config.resource_configuration_v1 import ResourceConfigurationV1
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
api_key = "<API_KEY>"
bucket_name = "<BUCKET_NAME>"
authenticator = IAMAuthenticator(apikey=api_key)
client = ResourceConfigurationV1(authenticator=authenticator)
activity_tracking_config = {
'activity_tracking':
{
'read_data_events':True,
'write_data_events':True,
'management_events':True
}
}
client.update_bucket_config(bucket_name, bucket_patch=activity_tracking_config)
Beispiel für GO SDK
import (
"github.com/IBM/go-sdk-core/core"
rc "github.com/IBM/ibm-cos-sdk-go-config/v2/resourceconfigurationv1"
)
apiKey := "<ApiKey>"
bucketName := "<BucketName>"
authenticator := new(core.IamAuthenticator)
authenticator.ApiKey = apiKey
optionsRC := new(rc.ResourceConfigurationV1Options)
optionsRC.Authenticator = authenticator
rcClient, _ := rc.NewResourceConfigurationV1(optionsRC)
patchNameMap := make(map[string]interface{})
patchNameMap["activity_tracking"] = &rc.ActivityTracking{
ReadDataEvents: core.BoolPtr(true),
WriteDataEvents: core.BoolPtr(true),
ManagementEvents: core.BoolPtr(true)
}
updateBucketConfigOptions := &rc.UpdateBucketConfigOptions{
Bucket: core.StringPtr(bucketName),
BucketPatch: patchNameMap,
}
rcClient.UpdateBucketConfig(updateBucketConfigOptions)
Beispiel
resource "ibm_resource_instance" "cos_instance" {
name = "cos-instance"
resource_group_id = data.ibm_resource_group.cos_group.id
service = "cloud-object-storage"
plan = "standard"
location = "global"
}
resource "ibm_cos_bucket" "activity_tracker_bucket" {
bucket_name = “Name-of-the-bucket”
resource_instance_id = ibm_resource_instance.cos_instance.id
region_location = “us-south”
storage_class = “standard”
activity_tracking {
read_data_events = true
write_data_events = true
management_events = true
}
}
Konfigurieren Sie Ereignisse zur Aktivitätsverfolgung in Ihrem IBM Cloud Object Storage Bucket (Legacy)
Aktivieren Sie die IBM-Aktivitätsverfolgung für Ihr COS-Bucket, indem Sie den Ziel-CRN der Activity Tracker-Instanz in der API für COS-Ressourcenkonfiguration angeben. CRN angeben, um die Route für COS-Ereignisse zu definieren.
Managementereignisse sind stets aktiviert, wenn ein CRN in der Konfiguration der Aktivitätsverfolgung festgelegt wird.
Das traditionelle Modell unterstützt auch die optionale Aktivierung der Überwachung für die folgenden Ereignistypen:
- Read Data Events-Anforderungen im Zusammenhang mit Objektlisten-und Leseanforderungen
- Datenereignisse schreiben-Dies sind alle Ereignisse, die sich auf das Schreiben und Löschen von Objekten beziehen.
IBM Cloud-Routing-Services für Beobachtbarkeit sind die standardisierte Methode für Kunden, um das Routing von Plattformbeobachtbarkeitsdaten zu verwalten. Servicespezifische Routing-Konfigurationen wie COS sind veraltet.
Es wird empfohlen, dass Kunden diese traditionellen Routing-Konfigurationen entfernen, die CRNs verwenden und stattdessen den IBM Activity Tracker Event Routing-Service verwenden, um Ereignisse an andere Standorte weiterzuleiten.
IBM COS unterstützt weiterhin traditionelle Konfigurationen, bei denen ein CRN angegeben wurde, der sich von der Standardposition unterscheidet.
Upgrade von Legacy auf die empfohlene Ereignisüberwachung in Ihrem COS-Bucket durchführen
Um ein Upgrade der traditionellen Konfiguration mithilfe der Ressourcenkonfigurations-API durchzuführen, entfernen Sie die CRN der Activity Tracker-Zielinstanz. Ereignisse werden jetzt an die Standardempfangsposition des Activity Tracker-Ereignisrouters weitergeleitet, wie in COS-Serviceintegration beschrieben. Stellen Sie eine Instanz der von Activity Tracker gehosteten Ereignissuche an dieser Position bereit oder definieren Sie vor dem Upgrade eine Routing-Regel, um sicherzustellen, dass die Ereignisprotokollierung nicht unterbrochen wird.
Beispielpatch für den Übergang von der traditionellen zur empfohlenen Ereignisüberwachungskonfiguration in Ihrem COS-Bucket
Wählen Sie die Registerkarte 'UI', 'API' oder 'Terraform' oben in diesem Abschnitt aus, um Beispiele für Patches anzuzeigen.
Beispielpatch für die Benutzerschnittstelle für den Übergang von der Konfiguration für die traditionelle Ereignisüberwachung zu der Konfiguration für die empfohlene Ereignisüberwachung in Ihrem COS-Bucket
- Wählen Sie in der Ressourcenliste der IBM Cloud-Konsole die Serviceinstanz aus, die das Bucket enthält, für das Sie ein Upgrade auf die empfohlene Ereignisüberwachungskonfiguration durchführen möchten. Hier gelangen Sie zur Object Storage Konsole.
- Wählen Sie den Bereich, für den Sie ein Upgrade durchführen möchten.
- Wechseln Sie zur Registerkarte Konfiguration.
- Blättern Sie abwärts zum Abschnitt für die erweiterte Konfiguration und suchen Sie die Konfigurationsanzeige für Activity Tracker.
- Klicken Sie auf die rechte obere Ecke der Anzeige und wählen Sie Upgrade aus.
- Bestätigen Sie, dass Sie die Ereignisüberwachung für dieses Bucket aktualisieren möchten.
Beispiele
Java-SDK
import com.ibm.cloud.objectstorage.config.resource_configuration.v1.ResourceConfiguration;
import com.ibm.cloud.objectstorage.config.resource_configuration.v1.model.BucketPatch;
import com.ibm.cloud.sdk.core.security.IamAuthenticator;
public class ActivityTrackerExample {
private static final String BUCKET_NAME = <BUCKET_NAME>;
private static final String API_KEY = <API_KEY>;
public static void main(String[] args) {
IamAuthenticator authenticator = new IamAuthenticator.Builder()
.apiKey(API_KEY)
.build();
ResourceConfiguration RC_CLIENT = new ResourceConfiguration("resource-configuration", authenticator);
ActivityTracking activityTrackingConfig = new ActivityTracking().Builder()
.activityTrackerCrn(AT_CRN)
.readDataEvents(true)
.writeDataEvents(true)
.build();
BucketPatch bucketPatch = new BucketPatch.Builder().activityTracking(activityTrackingConfig).build();
UpdateBucketConfigOptions update = new UpdateBucketConfigOptions
.Builder(BUCKET_NAME)
.bucketPatch(bucketPatch.asPatch())
.build();
RC_CLIENT.updateBucketConfig(update).execute();
GetBucketConfigOptions bucketOptions = new GetBucketConfigOptions.Builder(BUCKET_NAME).build();
Bucket bucket = RC_CLIENT.getBucketConfig(bucketOptions).execute().getResult();
ActivityTracking activityTrackingResponse = bucket.getActivityTracking();
System.out.println("Read Data Events : " + activityTrackingResponse.readDataEvents());
System.out.println("Write Data Events : " + activityTrackingResponse.writeDataEvents());
System.out.println("Management Events : " + activityTrackingResponse.managementEvents());
}
}
NodeJS SDK
const ResourceConfigurationV1 = require('ibm-cos-sdk-config/resource-configuration/v1');
IamAuthenticator = require('ibm-cos-sdk-config/auth');
var apiKey = "<API_KEY>"
var bucketName = "<BUCKET_NAME>"
authenticator = new IamAuthenticator({apikey: apiKey})
rcConfig = {authenticator: authenticator}
const client = new ResourceConfigurationV1(rcConfig);
function addAT() {
console.log('Updating bucket metadata...');
};
var params = {
bucket: bucketName,
activityTracking: {
"activity_tracker_crn": at_crn,
"read_data_events": true,
"write_data_events": true
}
};
client.updateBucketConfig(params, function (err, response) {
if (err) {
console.log("ERROR: " + err);
} else {
console.log(response.result);
}
});
}
addAT()
Python SDK
from ibm_cos_sdk_config.resource_configuration_v1 import ResourceConfigurationV1
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
api_key = "<API_KEY>"
bucket_name = "<BUCKET_NAME>"
authenticator = IAMAuthenticator(apikey=api_key)
client = ResourceConfigurationV1(authenticator=authenticator)
activity_tracking_config = {
'activity_tracking':
{
'activity_tracker_crn':at_crn,
'read_data_events':True,
'write_data_events':True,
}
}
client.update_bucket_config(bucket_name, bucket_patch=activity_tracking_config)
Go-SDK
import (
"github.com/IBM/go-sdk-core/core"
rc "github.com/IBM/ibm-cos-sdk-go-config/v2/resourceconfigurationv1"
)
apiKey := "<ApiKey>"
bucketName := "<BucketName>"
authenticator := new(core.IamAuthenticator)
authenticator.ApiKey = apiKey
optionsRC := new(rc.ResourceConfigurationV1Options)
optionsRC.Authenticator = authenticator
rcClient, _ := rc.NewResourceConfigurationV1(optionsRC)
patchNameMap := make(map[string]interface{})
patchNameMap["activity_tracking"] = &rc.ActivityTracking{
ActivityTrackerCrn: core.StringPtr(activityTrackerCrn),
ReadDataEvents: core.BoolPtr(true),
WriteDataEvents: core.BoolPtr(true),
}
updateBucketConfigOptions := &rc.UpdateBucketConfigOptions{
Bucket: core.StringPtr(bucketName),
BucketPatch: patchNameMap,
}
rcClient.UpdateBucketConfig(updateBucketConfigOptions)
Beispiel
resource "ibm_resource_instance" "cos_instance" {
name = "cos-instance"
resource_group_id = data.ibm_resource_group.cos_group.id
service = "cloud-object-storage"
plan = "standard"
location = "global"
}
resource "ibm_cos_bucket" "activity_tracker_bucket" {
bucket_name = “bucket_name”
resource_instance_id = ibm_resource_instance.cos_instance.id
region_location = “us-south”
storage_class = “standard”
activity_tracking {
read_data_events = true
write_data_events = true
activity_tracker_crn = “crn:v1:bluemix:public:logdnaat:us-south:a/2xxxxxxxxxxxxxxxxxxxxxxxxf:3xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxec::”
}
}