Cloud Storage コンテキスト ログを収集する

以下でサポートされています。

このドキュメントでは、Cloud Storage を使用して Cloud Storage コンテキスト ログをエクスポートし、Google Security Operations に取り込む方法について説明します。パーサーは、Cloud Storage ログから受信した JSON データをクリーンアップして構造化します。次に、関連するフィールドを統合データモデル(UDM)にマッピングし、ラベルとメタデータでデータを拡充して、セキュリティ エコシステム内での一貫した表現と分析を実現します。

始める前に

次の前提条件を満たしていることを確認します。

  • Google SecOps インスタンス。
  • Cloud Storage が Google Cloud 環境で設定され、有効になっている。
  • Google Cloud への特権アクセスと適切な権限。

Cloud Storage バケットを作成する

  1. Google Cloud コンソールにログインします。
  2. [Cloud Storage バケット] のページに移動します。

    [バケット] に移動

  3. [作成] をクリックします。

  4. [バケットの作成] ページでユーザーのバケット情報を入力します。以下のステップでは、操作を完了した後に [続行] をクリックして、次のステップに進みます。

    1. [始める] セクションで、次の操作を行います。

      1. バケット名の要件を満たす一意の名前(google-storage-context-logs など)を入力します。
      2. 階層名前空間を有効にするには、展開矢印をクリックして [Optimize for file oriented and data-intensive workloads] セクションを開き、[このバケットで階層的な名前空間を有効にする] を選択します。

      3. バケットラベルを追加するには、展開矢印をクリックして [ラベル] セクションを開きます。

      4. [ラベルを追加] をクリックし、ラベルのキーと値を指定します。

    2. [データの保存場所の選択] セクションで、次の操作を行います。

      1. ロケーション タイプを選択してください。
      2. ロケーション タイプのメニューを使用して、バケット内のオブジェクト データが永続的に保存されるロケーションを選択します。

      3. クロスバケット レプリケーションを設定するには、[クロスバケット レプリケーションを設定する] セクションを開きます。

    3. [データのストレージ クラスを選択する] セクションで、バケットのデフォルトのストレージ クラスを選択します。あるいは、Autoclass を選択して、バケットデータのストレージ クラスを自動的に管理します。

    4. [オブジェクトへのアクセスを制御する方法を選択する] セクションで、[なし] を選択して公開アクセスの防止を適用し、バケットのオブジェクトの [アクセス制御モデル] を選択します。

    5. [オブジェクト データを保護する方法を選択する] セクションで、次の操作を行います。

      1. [データ保護] で、バケットに設定するオプションを選択します。
      2. オブジェクト データの暗号化方法を選択するには、[データ暗号化] というラベルの付いた展開矢印をクリックし、データの暗号化方法を選択します。
  5. [作成] をクリックします。

Cloud Storage コンテキスト ログのエクスポートを構成する

  1. Google Cloud コンソールにログインします。
  2. [ロギング>ログルーター] に移動します。
  3. [シンクを作成] をクリックします。
  4. 次の構成パラメータを指定します。

    • シンク名: わかりやすい名前を入力します(例: Storage-Context-Sink)。
    • シンクの宛先: [Cloud Storage] を選択し、バケットの URI(例: gs://google-storage-context-logs/)を入力します。
    • ログフィルタ:

      logName="*storage*"
      resource.type="gcs_bucket"
      
  5. [作成] をクリックします。

Cloud Storage の権限を構成する

  1. [IAM と管理] > [IAM] に移動します。
  2. Cloud Logging サービス アカウントを見つけます。
  3. バケットに対する roles/storage.admin を付与します。

フィードを設定する

Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。

  • [SIEM 設定] > [フィード] > [新しいフィードを追加]
  • Content Hub > Content Packs > Get Started

Cloud ストレージ コンテキスト フィードを設定する方法

  1. [Google Cloud Compute platform] パックをクリックします。
  2. [GCP Google Cloud Storage Context] ログタイプを見つけて、[新しいフィードを追加] をクリックします。
  3. 次のフィールドに値を指定します。

    • ソースタイプ: Google Cloud Storage V2
    • ストレージ バケット URI: Cloud Storage バケットの URL(例: gs://compute-context-logs/)。この URL は、末尾にスラッシュ(/)が付いている必要があります。
    • Source deletion options: 必要に応じて削除オプションを選択します。
  • ファイルの最大経過日数: 指定した日数以内に変更されたファイルを含めます。デフォルトは 180 日です。

詳細オプション

  • フィード名: フィードを識別する事前入力された値。
  • アセットの名前空間: フィードに関連付けられた名前空間。
  • Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。
  1. [フィードを作成] をクリックします。

このプロダクト ファミリー内の異なるログタイプに対して複数のフィードを構成する方法については、プロダクト別にフィードを構成するをご覧ください。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
祖先 event.idm.entity.entity.resource.attribute.labels.value 祖先値は、未加工ログの ancestors 配列から抽出されます。
assetType event.idm.entity.entity.resource.type 未加工ログの assetType フィールドから直接マッピングされます。
insertId event.idm.entity.metadata.product_entity_id 未加工ログの insertId フィールドから直接マッピングされます。
labels.compute.googleapis.com/resource_name event.idm.entity.entity.resource.name 未加工ログの labels.compute.googleapis.com/resource_name フィールドから直接マッピングされます。
labels.k8s-pod/controller-revision-hash event.idm.entity.entity.file.sha1 未加工ログの labels.k8s-pod/controller-revision-hash フィールドから直接マッピングされます。
labels.k8s-pod/name event.idm.entity.entity.resource.attribute.labels.value 未加工ログの labels.k8s-pod/name フィールドから直接マッピングされます。
labels.k8s-pod/pod-template-generation event.idm.entity.entity.resource.attribute.labels.value 未加工ログの labels.k8s-pod/pod-template-generation フィールドから直接マッピングされます。
logName event.idm.entity.entity.resource.attribute.labels.value 未加工ログの logName フィールドから直接マッピングされます。
name event.idm.entity.entity.resource.name 未加工ログの name フィールドから直接マッピングされます。
receiveTimestamp event.idm.entity.entity.resource.attribute.creation_time 未加工ログの receiveTimestamp フィールドからタイムスタンプ形式に変換されます。
resource.data.iamConfiguration.publicAccessPrevention event.idm.entity.entity.resource.attribute.labels.value 未加工ログの resource.data.iamConfiguration.publicAccessPrevention フィールドから直接マッピングされます。
resource.data.id event.idm.entity.entity.resource.product_object_id 未加工ログの resource.data.id フィールドから直接マッピングされます。
resource.data.kind event.idm.entity.entity.resource.type 未加工ログの resource.data.kind フィールドから直接マッピングされます。
resource.data.labels.app_id event.idm.entity.entity.resource.attribute.labels.value 未加工ログの resource.data.labels.app_id フィールドから直接マッピングされます。
resource.data.labels.app_name event.idm.entity.entity.resource.attribute.labels.value 未加工ログの resource.data.labels.app_name フィールドから直接マッピングされます。
resource.data.labels.bucket_id event.idm.entity.entity.resource.attribute.labels.value 未加工ログの resource.data.labels.bucket_id フィールドから直接マッピングされます。
resource.data.labels.data_classification event.idm.entity.entity.resource.attribute.labels.value 未加工ログの resource.data.labels.data_classification フィールドから直接マッピングされます。
resource.data.labels.dept_name event.idm.entity.entity.resource.attribute.labels.value 未加工ログの resource.data.labels.dept_name フィールドから直接マッピングされます。
resource.data.labels.dept_no event.idm.entity.entity.resource.attribute.labels.value 未加工ログの resource.data.labels.dept_no フィールドから直接マッピングされます。
resource.data.labels.environment event.idm.entity.entity.resource.attribute.labels.value 未加工ログの resource.data.labels.environment フィールドから直接マッピングされます。
resource.data.labels.goog-composer-environment event.idm.entity.entity.resource.attribute.labels.value 未加工ログの resource.data.labels.goog-composer-environment フィールドから直接マッピングされます。
resource.data.labels.goog-composer-location event.idm.entity.entity.resource.attribute.labels.value 未加工ログの resource.data.labels.goog-composer-location フィールドから直接マッピングされます。
resource.data.labels.goog-composer-version event.idm.entity.entity.resource.attribute.labels.value 未加工ログの resource.data.labels.goog-composer-version フィールドから直接マッピングされます。
resource.data.labels.technical_contact event.idm.entity.entity.resource.attribute.labels.value 未加工ログの resource.data.labels.technical_contact フィールドから直接マッピングされます。
resource.data.labels.type event.idm.entity.entity.resource.attribute.labels.value 未加工ログの resource.data.labels.type フィールドから直接マッピングされます。
resource.data.location event.idm.entity.entity.location.name 未加工ログの resource.data.location フィールドから直接マッピングされます。
resource.data.projectNumber event.idm.entity.entity.resource.attribute.cloud.project.id 未加工ログの resource.data.projectNumber フィールドから直接マッピングされます。
resource.data.selfLink event.idm.entity.entity.url 未加工ログの resource.data.selfLink フィールドから直接マッピングされます。
resource.data.timeCreated event.idm.entity.entity.resource.attribute.creation_time 未加工ログの resource.data.timeCreated フィールドからタイムスタンプ形式に変換されます。
resource.data.updated event.idm.entity.entity.resource.attribute.last_update_time 未加工ログの resource.data.updated フィールドからタイムスタンプ形式に変換されます。
resource.discoveryDocumentUri event.idm.entity.entity.file.full_path 未加工ログの resource.discoveryDocumentUri フィールドから直接マッピングされます。
resource.labels.cluster_name event.idm.entity.entity.resource.attribute.labels.value 未加工ログの resource.labels.cluster_name フィールドから直接マッピングされます。
resource.labels.container_name event.idm.entity.entity.resource.attribute.labels.value 未加工ログの resource.labels.container_name フィールドから直接マッピングされます。
resource.labels.location event.idm.entity.entity.location.name 未加工ログの resource.labels.location フィールドから直接マッピングされます。
resource.labels.namespace_name event.idm.entity.entity.resource.attribute.labels.value 未加工ログの resource.labels.namespace_name フィールドから直接マッピングされます。
resource.labels.pod_name event.idm.entity.entity.resource.attribute.labels.value 未加工ログの resource.labels.pod_name フィールドから直接マッピングされます。
resource.labels.project_id event.idm.entity.entity.resource.attribute.cloud.project.id 未加工ログの resource.labels.project_id フィールドから直接マッピングされます。
resource.parent event.idm.entity.entity.resource.parent 未加工ログの resource.parent フィールドから直接マッピングされます。
resource.type event.idm.entity.entity.resource.type 未加工ログの resource.type フィールドから直接マッピングされます。
resource.version event.idm.entity.entity.resource.attribute.labels.value 未加工ログの resource.version フィールドから直接マッピングされます。
textPayload event.idm.entity.entity.resource.attribute.labels.value 未加工ログの textPayload フィールドから直接マッピングされます。
なし event.idm.entity.metadata.collected_timestamp 収集されたタイムスタンプはログエントリのタイムスタンプです。
なし event.idm.entity.metadata.entity_type RESOURCE にハードコードされています。
なし event.idm.entity.metadata.product_name GCP Storage Context にハードコードされています。
なし event.idm.entity.metadata.vendor_name Google Cloud Platform にハードコードされています。
なし event.idm.entity.entity.resource.attribute.cloud.environment GOOGLE_CLOUD_PLATFORM にハードコードされています。
なし event.idm.entity.entity.resource.resource_type STORAGE_BUCKET にハードコードされています。
なし event.timestamp イベントのタイムスタンプはログエントリのタイムスタンプです。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。