Identity and Access Management(IAM)の分析コンテキスト ログを収集する

パーサーのバージョン: 1.0

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

このドキュメントでは、Cloud Storage を使用して IAM 分析ログを Google Security Operations にエクスポートして取り込む方法について説明します。パーサーは、IAM JSON データからユーザーとリソースの情報を抽出します。次に、抽出されたフィールドを UDM にマッピングし、関連するロールとリソースの関係を持つユーザー エンティティを作成します。これにより、Google SecOps プラットフォーム内のセキュリティ コンテキストが強化されます。

始める前に

次の前提条件を満たしていることを確認してください。

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

Cloud Storage バケットを作成する

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

    [バケット] に移動

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

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

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

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

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

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

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

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

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

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

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

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

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

IAM 分析ログのエクスポートを構成する

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

    • シンク名: わかりやすい名前を入力します(例: IAM-Analysis-Sink)。
    • [シンクの宛先]: [Cloud Storage ストレージ] を選択し、バケットの URI(gs://gcp-iam-analysis-logs/ など)を入力します。
    • ログフィルタ:

      logName="*iam*"
      resource.type="gce_instance"
      

Cloud Storage の権限を構成する

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

フィードを設定する

フィードを構成する手順は次のとおりです。

  1. [SIEM Settings] [>] [Feeds] に移動します。
  2. [Add New Feed] をクリックします。
  3. 次のページで [Configure a single feed] をクリックします。
  4. [Feed name] フィールドに、フィードの名前を入力します(例: IAM Analysis Logs )。
  5. [Source type] として [Google Cloud Storage V2] を選択します。
  6. [Log type] として [GCP IAM Analysis] を選択します。
  7. [Chronicle Service Account] フィールドの横にある [Get Service Account] をクリックします。
  8. [次へ] をクリックします。
  9. 次の入力パラメータの値を指定します。

    • Storage Bucket URI: Cloud Storage バケットの URL(gs://gcp-iam-analysis-logs/ など)。この URL は、末尾にスラッシュ(/)が付いている必要があります。
    • Source deletion options: 必要に応じて削除オプションを選択します。

    • Maximum File Age: 過去の指定した日数以内に変更されたファイルを含めます。デフォルトは 180 日です。

  10. [次へ] をクリックします。

  11. [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
accessControlLists.accesses.permission relations.entity.resource.attribute.permissions.name 未加工ログの accessControlLists.accesses.permission フィールドから直接取得します。
attachedResourceFullName relations.entity.resource.name 未加工ログの attachedResourceFullName フィールドから直接取得しますが、末尾のリソース名は削除されます。
relations.entity.resource.attribute.cloud.environment GOOGLE_CLOUD_PLATFORM に設定します。
relations.entity.resource.product_object_id STORAGE_BUCKET の場合、未加工ログの attachedResourceFullName フィールドから直接取得しますが、末尾のリソース名は削除されます。BigQuery データセットの場合、projectNameattachedResourceFullName から抽出)の後にコロンと datasetNameattachedResourceFullName から抽出)フィールドが続きます。
relations.entity.resource.resource_type 未加工ログの attachedResourceFullName フィールドのパターンによって決まります。
relations.entity_type SERVICE_ACCOUNT を除くすべてのエンティティで RESOURCE に設定します。SERVICE_ACCOUNT の場合は USER に設定します。
relations.relationship MEMBER に設定します。
metadata.collected_timestamp 未加工ログの timestamp フィールドから直接取得します。
metadata.entity_type USER に設定します。
metadata.product_name GCP IAM ANALYSIS に設定します。
metadata.vendor_name Google Cloud Platform に設定します。
iamBinding.role entity.user.attribute.roles.name 未加工ログの iamBinding.role フィールドから直接取得します。
identityList.identities.name entity.user.attribute.roles.type identityList.identities.name フィールドに文字列 serviceAccount が含まれている場合は、SERVICE_ACCOUNT に設定します。
entity.user.email_addresses identityList.identities.name フィールドに @ 記号が含まれている場合は、メールアドレスとして扱われます。
entity.user.userid identityList.identities.name フィールドに @ 記号が含まれていない場合は、userid として扱われます。
identityList.identities.product_object_id entity.user.product_object_id 未加工ログの identityList.identities.product_object_id フィールドから直接取得します。
timestamp timestamp 未加工ログの timestamp フィールドから直接取得します。

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