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

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

ユースケース

ポリシー インテリジェンス の統合では、次のユースケースがサポートされています。

  • 休眠状態のサービス アカウントを特定する: 特定の期間内に認証されていないサービス アカウントを自動的に特定して、未使用の 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. [addカスタムの役割を作成] をクリックします。

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

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

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

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

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

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

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

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

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

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

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

Workload Identity 認証情報を構成する

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

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

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

  1. Google SecOps で、[Content Hub] > [Response Integrations] に移動します。

  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 アクションを使用して、Policy Intelligence への接続をテストします。

このアクションは 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

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

[サービス アカウント アクティビティを検索] アクションを使用して、Policy Intelligence でサービス アカウントに関連するアクティビティを検索します。

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

アクションへの入力

「サービス アカウント アクティビティを検索」アクションには、次のパラメータが必要です。

パラメータ 説明
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 のプロフェッショナルから回答を得ることができます。