ポリシー インテリジェンス を Google SecOps と統合する

このドキュメントでは、ポリシー インテリジェンスを Google Security Operations と統合する方法について説明します。

ユースケース

Policy Intelligence の統合は、次のユースケースをサポートしています。

  • 休眠中のサービス アカウントを特定する: 特定の期間内に認証されていないサービス アカウントを自動的に特定し、未使用の ID のクリーンアップを容易にして、攻撃対象領域を削減します。

  • ID の不正使用を調査する: インシデントの調査中にサービス アカウントの最終認証時刻を取得し、疑わしい侵害期間中にアカウントがアクティブだったかどうかを判断します。

  • コンプライアンス監査を自動化する: サービス アカウントの認証メタデータをわかりやすいレポートにコンパイルして、ID アクセスと使用状況のモニタリングに関する規制要件を満たします。

エンドポイント

統合は、さまざまなアクションにさまざまなパラメータを使用して、Policy Intelligence API 内の単一の activities:query エンドポイントとやり取りします。統合のエンドポイントの例を次に示します。

[https://policyintelligence.googleapis.com/v1/projects/](https://policyintelligence.googleapis.com/v1/projects/)PROJECT_ID/locations/global/activityTypes/serviceAccountLastAuthentication/activities:query

始める前に

Google SecOps で ポリシー インテリジェンス の統合を構成する前に、次の前提条件の手順を完了します。

  1. カスタムの Identity and Access Management ロールを作成して構成する。

  2. サービス アカウントを作成します。

  3. 次のいずれかの認証方法を選択して構成します。

    • オプション 1: Workload Identity(推奨): この方法では、サービス アカウントの権限借用を使用して有効期間の短いトークンを使用します。

    • オプション 2: サービス アカウントの JSON キー: この方法は、静的で有効期間の長いシークレット キーファイルに依存します。

IAM ロールを作成して構成する

統合に必要な権限を付与するには、プロジェクトにカスタムロールを作成します。

  1. Google Cloud コンソールで、[IAM と管理] > [ロール] に移動します。

    [ロール] に移動

  2. [追加カスタムの役割を作成] をクリックします。

  3. タイトル(例: SecOps Policy Intelligence Analyst)、説明、一意の ID を指定します。

  4. [ロールのリリース段階] を [一般提供] に設定します。

  5. ロールに次の権限を追加します。

    • policyanalyzer.serviceAccountLastAuthenticationActivities.query
  6. [作成] をクリックします。

サービス アカウントを作成する

  1. Google Cloud コンソールで、[IAM と管理] > [サービス アカウント] に移動します。

    [サービス アカウント] に移動

  2. [追加サービス アカウントを作成] をクリックします。

  3. 名前と説明を入力し、[作成して続行] をクリックします。

  4. [このサービス アカウントにプロジェクトへのアクセスを許可する] ステップで、作成したカスタムロールを割り当てます。

  5. [完了] をクリックします。サービス アカウントのメールアドレスをメモします。

Workload Identity の認証情報を構成する

Workload Identity は、サービス アカウントの権限借用を使用して有効期間の短いアクセス トークンを使用するため、推奨されるアプローチです。

一意のインスタンス ID を特定する

接続を確立するには、Google SecOps インスタンスにサービス アカウントの権限借用を許可する必要があります。

  1. Google SecOps で、[コンテンツ ハブ] > [レスポンス統合] に移動します。

  2. [Policy Intelligence] インテグレーションを選択し、Workload Identity Email にサービス アカウントのメールアドレスを入力します。

  3. [保存] > [テスト] をクリックします。テストは失敗することが想定されます。

  4. [テスト] の横にある close_small ボタンをクリックし、gke-init-python@... または soar-python@... で始まる ID メールアドレスを見つけます。

  5. この一意のメールアドレスをコピーします。

Google Cloudでインスタンス ID を承認する

  1. Google Cloud コンソールで、[IAM と管理] > [サービス アカウント] に移動します。

    [サービス アカウント] に移動

  2. ターゲット サービス アカウントを選択し、[権限> アクセス権を付与] に移動します。

  3. 一意のメールアドレスを [新しいプリンシパル] フィールドに貼り付け、サービス アカウント トークン作成者ロール(roles/iam.serviceAccountTokenCreator)を割り当てます。

割り当てプロジェクトへのアクセス権を付与する

Workload Identity で認証するには、API の使用量と課金を追跡する Quota Project ID が必要です。

  1. Google Cloud コンソールで、割り当てプロジェクトとして使用されるプロジェクトの [IAM] に移動します。

    IAM に移動

  2. サービス アカウントを見つけて、[プリンシパルを編集](編集)をクリックします。

  3. [別のロールを追加] をクリックし、[Service Usage コンシューマー](roles/serviceusage.serviceUsageConsumer)を選択します。

  4. [保存] をクリックします。

JSON キーを構成する

静的で有効期間の長いシークレット キーファイルは、手動でローテーションする必要があります。この方法は、Workload Identity 認証が使用できない場合にのみ使用してください。

  1. Google Cloud コンソールで、[IAM と管理>サービス アカウント] に移動し、サービス アカウントを選択します。

    [サービス アカウント] に移動

  2. [鍵] タブに移動し、[鍵を追加 > 新しい鍵を作成] をクリックします。

  3. [JSON] を選択し、[作成] をクリックします。ブラウザによって JSON ファイルがパソコンにダウンロードされます。

統合のパラメータ

Pub/Sub の統合には、次のパラメータが必要です。

パラメータ 説明
Service Account JSON File Content

省略可。

サービス アカウント キーの JSON ファイルの完全なコンテンツ。

サービス アカウント キー認証用にこのパラメータを構成します。

Workload Identity Email

省略可。

サービス アカウントのクライアント メールアドレス。

このパラメータは、Workload Identity を使用して認証する場合にのみ構成します。構成されている場合は、Quota Project ID も指定する必要があります。Service Account JSON File Content は無視されます。

Project ID

省略可。

Pub/Sub でターゲットとするプロジェクト ID。

値が指定されていない場合、インテグレーションはサービス アカウント認証情報から ID を取得します。

Quota Project ID

省略可。

API の使用量と請求額に使用されるプロジェクト ID。

このパラメータは、Workload Identity 認証を使用する場合に必要です。

値が指定されていない場合、インテグレーションはサービス アカウント認証情報から ID を取得します。

Verify SSL

必須。

サーバーへの接続用の SSL 証明書を検証します。デフォルトで有効。

Google SecOps で統合を構成する手順については、統合を構成するをご覧ください。

必要に応じて、後の段階で変更できます。統合インスタンスを構成すると、ハンドブックで使用できるようになります。複数のインスタンスの構成とサポートの詳細については、複数のインスタンスのサポートをご覧ください。

操作

アクションの詳細については、 デスクから保留中のアクションに対応すると手動による対策を実行するをご覧ください。

Ping

Ping アクションを使用して、ポリシー インテリジェンス への接続をテストします。

このアクションは Google SecOps エンティティに対して実行されません。

アクションの入力

なし

アクションの出力

Ping アクションは次の出力を提供します。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用不可
出力メッセージ 利用可能
スクリプトの結果 利用可能
出力メッセージ

ケースウォールで Ping アクションを実行すると、次の出力メッセージが表示されます。

出力メッセージ メッセージの説明
Successfully connected to the Google Cloud Policy Intelligence server with the provided connection parameters! アクションが成功しました。
Failed to connect to the Google Cloud Policy Intelligence server!

操作を実行できませんでした。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、Ping アクションを使用した場合のスクリプト結果出力の値を示します。

スクリプトの結果名 値
is_success True または False

サービス アカウントのアクティビティを検索する

[Search Service Account Activity] アクションを使用して、ポリシー インテリジェンスでサービス アカウントに関連するアカウント アクティビティを検索します。

このアクションは Google SecOps エンティティに対して実行されません。

アクションの入力

Search Service Account Activity アクションには、次のパラメータが必要です。

パラメータ 説明
Project ID Optional

サービス アカウントのアクティビティを検索するプロジェクトの名前。

値を指定しない場合、アクションは統合構成からプロジェクト ID を抽出します。

Service Account Resource Name 必須

アクティビティの取得に使用されるサービス アカウントのリソース名を含むカンマ区切りのリスト。

Max Activities To Return 必須

サービス アカウントに対して返すアクティビティの数。

最大数は 1,000 です。

デフォルトでは、このアクションは 50 個のアクティビティを返します。

アクションの出力

[Search Service Account Activity] アクションは次の出力を提供します。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用可能
出力メッセージ 利用可能
スクリプトの結果 利用可能
JSON の結果

次の例は、Search Service Account Activity アクションを使用した場合に受信する JSON 結果の出力を示しています。

[
  {
    "Entity": "//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT@ENTITY_ID",
    "EntityResult": [
      {
        "fullResourceName": "//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT@ENTITY_ID",
        "activityType": "serviceAccountLastAuthentication",
        "observationPeriod": {
          "startTime": "2023-05-23T07:00:00Z",
          "endTime": "2023-08-20T07:00:00Z"
        },
        "activity": {
          "lastAuthenticatedTime": "2023-08-20T07:00:00Z",
          "serviceAccount": {
            "serviceAccountId": "SERVICE_ACCOUNT_ID",
            "projectNumber": "PROJECT_NUMBER",
            "fullResourceName": "//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT@ENTITY_ID"
          }
        }
      }
    ]
  }
]
出力メッセージ

ケースウォールで [Search Service Account Activity] アクションを実行すると、次の出力メッセージが表示されます。

出力メッセージ メッセージの説明

Successfully found activity for the following service accounts in Google Cloud Policy Intelligence: SERVICE_ACCOUNTS

No activity was found for the following service accounts in Google Cloud Policy Intelligence: SERVICE_ACCOUNTS

No activity was found for the provided service accounts in Google Cloud Policy Intelligence

アクションが成功しました。
Error executing action "Search Service Account Activity". Reason: ERROR_REASON

操作を実行できませんでした。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、[Search Service Account Activity] アクションを使用した場合のスクリプト結果の出力値を示します。

スクリプトの結果名 値
is_success True または False

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