IBM Cloud Docs
IBM Cloud Object Storage バケットでのイベントの追跡

IBM Cloud Object Storage バケットでのイベントの追跡

IBM Cloud は、リソースで実行されたイベントを追跡するための集中ロギング・サービスを提供します。 これらのサービスを利用して、異常なアクティビティや重要なアクションを調査し、規制当局の監査要件に準拠することができます。

これらのサービスを使用して、 IBM Cloud® Object Storage バケット上のイベントを追跡し、データで発生していることを記録します。 データ・アクセスおよびバケット構成イベントに関する詳細ログを受け取るには、バケットでこれらのサービスを有効にします。

IBM Cloud Activity Tracker イベントルーティングを 使用して、監査データがルーティングされる場所を定義するターゲットとルートを構成することにより、アカウントレベルで監査イベントを管理します。

この機能は、 Object Storage for Satellite では現在サポートされていません。

この機能は、 SCC モニター をサポートします。

IBM Cloud Activity Tracker を使用したバケット・イベントの追跡

2024年3月28日をもって、 IBM Log Analysis、 IBM Cloud Activity Tracker サービスは非推奨となり、2025年3月30日をもってサポートされなくなります。 顧客は2025年3月30日までに、これら2つのサービスに代わる IBM Cloud Logsに移行する必要がある。

IBM Cloud® Activity Tracker で Object Storage イベントを追跡すると、データで発生していることが記録されます。 IBM Cloud Activity Tracker サービスは、 IBM Cloud 上のサービスに対する API 呼び出しを監視するためのフレームワークと機能を提供し、企業ポリシーや市場業界固有の規制に準拠するためのエビデンスを作成する。

詳しくは IBM Cloud Activity Tracker をご覧ください。 IBM Cloud Activity Tracker から IBM Cloud Logs に移行 し、イベント追跡の中断を回避します。

IBM Cloud Logs を使ってバケットイベントを追跡する

IBM Cloud Logs は、洞察やトレンドのためにデータを処理する方法や、高速検索や長期的なトレンド分析のためにデータを保存する場所を柔軟に選択できます。 合計コストの制御を維持しながら、得られた価値を最大化するためのツールを提供します。

Activity Tracker Event Routing のターゲットとして IBM Cloud Logs を使用してバケットイベントを追跡するには、「 ターゲットとして IBM Cloud ログインスタンスを設定 する」の手順に従って、 IBM Cloud Logs インスタンスをプロビジョニングし、サービス間認可を設定し、ターゲットを作成し、ルートを作成する。 ルートを作成するとき、バケツがある地域に対応する場所を選択します。例えば、 us-south。 設定を完了すると、選択したリージョンからのすべての Object Storage リクエストログが IBM Cloud Logs インスタンスに転送されます。 ログを表示するには、 IBM Cloud Logs UIを起動 します。

オプションとして、 TCOオプティマイザを 使用してログをフィルタリングし、特定の Object Storage インスタンスの情報のみを表示することができます。 デフォルトでは、 Activity Tracker Event Routing、選択した地域の全サービスのデータを取得する。 特定の Object Storage インスタンスにログを制限するには、「 ポリシーの作成 」の手順に従って、これらの設定で新しい TCO Optimizer ポリシーを追加および適用します:

  • アプリケーション ibm-audit-event
  • サブシステム=特定の Object Storage インスタンスのCRN、 CRNserviceName:instanceID

IBM Cloud Activity Tracker イベント・ルーティングを使用したルート・ログ

IBM Cloud Activity Tracker イベントルーティングを使用して、 IBM Cloud Object Storage 監査イベントのルーティングを構成してください。 プラットフォームサービスである Activity Tracker Event Routingを使用して、監査データのルーティング先を定義するターゲットとルートを構成することで、アカウントレベルで監査イベントを管理することができます。

Activity Tracker Event Routing は、以下のターゲットへの IBM COS バケット・ログのルーティングをサポートします。

IBM Cloud Object Storage バケットにアクティビティ追跡イベントを設定する(推奨)

イベントトラッキングは、バケットプロビジョニング時に IBM Cloud Object Storage バケットで有効にするか、バケット作成後にバケット設定を更新することで有効にすることができます。 イベント・トラッキングは、有効化後に行われた COS 要求にのみ適用されます。

デフォルトでは、バケツ作成などのグローバルアクションを報告するCOSイベントは、自動的に収集される。 フランクフルトにある Activity Tracker インスタンスを通じてグローバルアクションを監視することができます。

IBM COS は、オプションで以下のイベント・タイプの追跡もサポートします。

  • 管理イベント-バケットおよびオブジェクト構成の管理に関連した要求
  • データ読み取りイベント-オブジェクト・リストおよび読み取り要求に関連する要求
  • 書き込みデータ・イベント-これらは、オブジェクトの書き込みおよび削除に関連するすべてのイベントです。

イベントを生成する「管理」、「データの読み取り」、および「データの書き込み」アクションの完全なリストを確認するには、COS API イベントを参照してください。

COS リソース構成 API を使用して、バケットでのこれらのイベントのトラッキングを構成します。

イベントトラッキングが有効な場合、すべてのイベントは IBM Cloud Activity Tracker Event Router のデフォルトの受信場所に送られ、その受信場所はバケツの場所に基づく。 このデフォルトマッピングについては、 IBM COS Service Integrationを 参照。 Activity Tracker Event Routerルールを使用して、イベントを別の場所またはターゲットサービスにルーティングします。 詳しくは、「 ルールの管理 」を参照してください。

IBM Cloud Object Storage バケットにアクティビティ追跡イベントを設定する(レガシー)

COS リソース構成 API で Activity Tracker インスタンスのターゲット CRN を指定して、COS バケットで IBM Activity Tracking を有効にします。 COS イベントの経路を定義するには、CRN を指定します。

アクティビティー・トラッキング構成で CRN が設定されている場合、管理イベントは常に有効になります。

レガシー・モデルでは、以下のイベント・タイプのトラッキングをオプションで有効にすることもできます。

  • データ読み取りイベント-オブジェクト・リストおよび読み取り要求に関連する要求
  • 書き込みデータ・イベント-これらは、オブジェクトの書き込みおよび削除に関連するすべてのイベントです。

IBM Cloud 可観測性ルーティング・サービスは、お客様がプラットフォーム可観測性データのルーティングを管理するための標準化された方法です。 COS などのサービス固有のルーティング構成は非推奨になります。

お客様は、CRN を使用する これらのレガシー・ルーティング構成を削除 し、代わりに IBM Activity Tracker イベント・ルーティング・サービスを使用してイベントを他のロケーションにルーティングすることをお勧めします。

IBM COS は、デフォルト・ロケーションとは異なる CRN が指定されたレガシー構成を引き続きサポートします。

COS バケットでのレガシー・イベント・トラッキングから推奨イベント・トラッキングへのアップグレード

リソース構成 API を使用してレガシー構成からアップグレードするには、ターゲットの Activity Tracker インスタンス CRN を削除します。 イベントは、 COS サービス統合 で説明されているように、デフォルトの Activity Tracker イベント・ルーター受信ロケーションにルーティングされるようになりました。 このロケーションで Activity Tracker がホストするイベント検索のインスタンスをプロビジョンするか、アップグレードの前にルーティング・ルールを定義して、イベント・ロギングが中断されないようにします。

COS バケットでレガシー・イベント・トラッキング構成から推奨イベント・トラッキング構成に移行するためのパッチの例

このトピックの上部にある「UI」、「API」、または「Terraform」タブを選択すると、パッチの例が表示されます。

COS バケットでレガシー・イベント・トラッキング構成から推奨イベント・トラッキング構成に移行するための UI パッチの例

  1. IBM Cloud コンソールの リソース・リスト から、推奨されるイベント・トラッキング構成にアップグレードするバケットを含むサービス・インスタンスを選択します。 Object Storage コンソールに移動します。
  2. アップグレードしたいバケットを選択します。
  3. コンフィギュレーション・タブに移動する。
  4. 拡張構成セクションまでスクロールダウンし、 Activity Trackerの構成パネルを見つけます。
  5. パネルの右上隅をクリックし、「アップグレード」を選択します。
  6. このバケットのイベント・トラッキングをアップグレードすることを確認してください。

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 エスディーケー

 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)

 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::”
       }
 }