Cloud Identity を Google SecOps と統合する

このドキュメントでは、Cloud Identity と Google Security Operations を統合する方法について説明します。

ユースケース

Cloud Identity統合は、Google SecOps 機能を使用して、以下のユースケースをサポートします。

  • アクセス制御の管理: 調査プレイブックから直接 IAM 構成を作成および更新します。
  • 監査ポリシー定義: アクセス変更を追跡するために利用可能なポリシーに関する情報を一覧表示します。
  • 検出器リスト属性を維持する: 監視のために、エンティティとインジケーターを特定の検出器 URL リストに追加します。

始める前に

設定する前にクラウドアイデンティティGoogle SecOps プラットフォームとの統合を行うには、以下の手順に従って環境が正しく構成されていることを確認してください。

  1. サービス アカウントを作成します
  2. ドメイン全体の権限をサービスアカウントに委任します
  3. プロジェクトに必要な API を有効にします
  4. 次のいずれかの認証方法を選択して構成します。
    • オプション 1: JSON キー: この方法は、静的で長期間有効な秘密鍵ファイルに依存します。この方法は、Workload Identity が環境で使用できない場合にのみ使用してください。
    • オプション 2: ワークロード ID (推奨): この方法は、サービス アカウントの偽装を使用して、有効期限の短い一時的なアクセス トークンを使用するため、秘密情報を保存する必要がなくなります。

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

インテグレーション用のサービス アカウントを作成する手順は次のとおりです。

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

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

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

  3. 名前と説明を入力し、[完了] をクリックしてアカウントを作成します。

ドメイン全体の権限をサービス アカウントに委任する

  1. ドメインの Google 管理コンソールから、メインメニュー>安全>アクセスとデータ制御> API コントロール
  2. [ドメイン全体の委任] ペインで、[ドメイン全体の委任を管理] を選択します。
  3. [新しく追加] をクリックします。
  4. クライアント IDフィールドに、サービスアカウントの作成セクションで取得したクライアント ID を入力します。
  5. ではOAuth スコープフィールドに、アプリケーションに必要なスコープをカンマ区切りで入力してください。

    https://www.googleapis.com/auth/cloud-platform,
    https://www.googleapis.com/auth/cloud-identity.policies,
    https://www.googleapis.com/auth/admin.directory.orgunit
    
  6. [承認] をクリックします。

サービスアカウントは、指定されたスコープを使用して、ドメイン全体のデータにアクセスする権限を与えられました。

プロジェクトに必要な API を有効にする

  1. Google Cloud コンソールで、[API とサービス] に移動します。

    [API とサービス] に移動

  2. [API とサービスの有効化] をクリックします。

  3. プロジェクトで以下の API を検索して有効化してください。

    • Admin SDK API (admin.googleapis.com)
    • クラウドアイデンティティ API (cloudidentity.googleapis.com)

JSON キーを構成する

統合を認証するには、静的 JSON キーファイルまたは Workload Identity 連携を使用します。環境のセキュリティを最大限に高めるには、Workload Identity メソッドを使用します。JSON 鍵メソッドは、インフラストラクチャで Workload Identity がサポートされていない場合にのみ使用してください。静的鍵は手動でローテーションする必要があり、認証情報の漏洩リスクが高まります。

インテグレーションの認証に必要な JSON キーファイルを生成するには、次の手順を行います。

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

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

  2. [キー] タブに移動します。

  3. [鍵を追加] をクリックします。

  4. [新しい鍵を作成] を選択します。

  5. キーのタイプは、JSON を選択し、[作成] をクリックします。JSON ファイルがパソコンにダウンロードされます。

  6. このファイルの内容全体をコピーし、統合構成時に User's Service Account JSON に貼り付けます。

Cloud Identity の権限を設定する

組織のリソースを管理するために統合に必要な管理権限を定義するには、以下の手順に従ってください。

  1. Google 管理コンソールで、[アカウント] > [管理者ロール] に移動します。
  2. [新しいロールを作成] をクリックします。
  3. 新しいカスタムロールの名前を指定して、[続行] をクリックします。
  4. [権限の選択] ページで、[Admin API] 権限セクションに移動します。
  5. [Admin API の権限] で、次の権限を選択します。
    • Organization Units
    • Users
    • Groups
  6. [続行] をクリックします。
  7. 新しいカスタムロールを作成するには、[ロールを作成] をクリックします。
カスタムの役割をユーザーに割り当てる

次の手順に沿って、ユーザー アカウントにロールを割り当て、インテグレーションがユーザーに代わってアクションを実行できるようにします。

  1. 新しいユーザーを作成するには、[ディレクトリ> ユーザー] ページに移動します。
  2. サービス アカウントに関連付けられている新しいユーザーを追加します。
  3. 新しく作成したユーザーの設定を開きます。ユーザー アカウントのタブが開きます。
  4. [管理者ロールと権限] をクリックします。
  5. edit [編集] をクリックします。
  6. 作成したカスタムロールを選択します。
  7. 選択したロールの切り替えを [割り当て済み] に切り替えます。

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

この方法または JSON キーの方法を選択して、統合を認証します。Workload Identity は、サービス アカウントの権限借用を使用して有効期間の短い一時アクセス トークンを使用するため、長期的なシークレット認証情報の漏洩リスクを最小限に抑えることができ、推奨される安全なアプローチです。

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

Workload Identity を使用するには、Google SecOps インスタンスにサービス アカウントの権限借用を許可する必要があります。この手順により、インスタンスは Google Cloud リソースに安全にアクセスできます。

  1. Google SecOps で、[コンテンツ ハブ] > [レスポンス統合] に移動します。
  2. 構成する統合を選択し、Workload Identity Email フィールドにサービス アカウントのメールアドレスを入力します。
  3. Delegated Email フィールドに、統合でユーザーになりすますメールアドレスを入力します。
  4. [保存] > [テスト] をクリックします。テストは失敗することが想定されます。
  5. [テスト] の右にある close_small をクリックし、gke-init-python@... または soar-python@... で始まる ID メールアドレスのエラー メッセージを検索します。

    この一意のメールアドレスをコピーして、統合構成時に Workload Identity Email に貼り付けます。

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

Google SecOps インスタンスの一意の ID を取得したら、Google Cloud リソースにアクセスするための承認を行う必要があります。この手順により、サービス アカウントの権限借用が有効になり、プラットフォームは静的キーを必要とせずに、有効期間の短いトークンを生成してユーザーに代わって操作できます。

  1. Google Cloud コンソールで、[IAM と管理] > [サービス アカウント] に移動します。
  2. ターゲット サービス アカウントを選択し、[権限> アクセス権を付与] に移動します。
  3. 一意のメールアドレスを [新しいプリンシパル] フィールドに貼り付けます。
  4. サービス アカウント トークン作成者ロール(roles/iam.serviceAccountTokenCreator)を割り当てます。

統合のパラメータ

Cloud Identity の統合には、次のパラメータが必要です。

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

省略可。

サービス アカウント キーの JSON ファイルの内容。

このパラメータまたは Workload Identity メールのいずれかを構成できます。この方法を使用するには、サービス アカウントの作成時にダウンロードしたキーファイルから JSON 文字列全体を貼り付けます。

Workload Identity Email

省略可。

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

このパラメータまたはサービス アカウント JSON ファイルの内容のいずれかを構成できます。

このメソッドをサービス アカウントの権限借用に使用するには、Google SecOps サービス アカウントにサービス アカウント トークン作成者のロールを付与する必要があります。

Delegated Email

必須。

統合がアクションを実行するために使用するメールアドレス。

このアカウントに、必要な統合タスクを実行するための適切な委任権限が環境内で付与されていることを確認します。

Verify SSL

省略可。

選択すると、Cloud Identity サーバーに接続するときに SSL 証明書が検証されます。

デフォルトで有効になっています。

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

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

操作

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

Ping

Ping アクションを使用して、Cloud Identity への接続をテストします。

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

アクションの入力

このアクションに必要な入力パラメータはありません。

アクションの出力

[Ping] アクションでは、次の出力が提供されます。

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

Ping アクションは、次の出力メッセージを返すことができます。

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

Successfully connected to the Cloud Identity server with the provided connection parameters!

アクションが成功しました。
Failed to connect to the Cloud Identity server! Error is ERROR_REASON

操作に失敗しました。

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

スクリプトの結果

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

スクリプトの結果名
is_success true または false

エンティティを検出器の URL リストに追加する

エンティティをクラウド アイデンティティ ポリシーの検出リストに追加するには、検出 URL リストにエンティティを追加 アクションを使用します。

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

  • URL
  • ドメイン

アクションの入力

Add Entity To Detector URL List アクションには、次のパラメーターが必要です。

パラメータ 説明
Detector Policy ID

必須。

更新する検出器ポリシーの一意の識別子。

URL

省略可。

検出器リストに追加する URL をカンマ区切りで指定します。

Domain

省略可。

検出器リストに追加するドメインをカンマで区切ったリスト。

アクションの出力

Add Entity To Detector URL List アクションは、以下の出力を提供します。

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

次の例は、Add Entity To Detector URL List アクションを使用したときに受信される JSON 結果出力を示しています。

{
 "type": "ADMIN",
 "customer": "customers/<CUSTOMER_ID>",
 "policyQuery": {
   "query": "entity.org_units.exists(org_unit, org_unit.org_unit_id == orgUnitId('<ORG_UNIT_ID>'))",
   "orgUnit": "orgUnits/<ORG_UNIT_ID>"
 },
 "setting": {
   "type": "settings/detector.url_list",
   "value": {
     "displayName": "test_url_list_detector",
     "description": "test_url_list_detector desc",
     "urlList": {
       "urls": [
         "[http://example.com](http://example.com)",
         "example.org",
         "bad_entity.com"
       ]
     }
   }
 }
}
出力メッセージ

Add Entity To Detector URL List アクションは、以下の出力メッセージを返すことができます。

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

Successfully blocked the following URLs using Cloud Identity: ENTITY_IDENTIFIER

アクションが成功しました。
Error executing action "Add Entity To Detector URL List". Reason: ERROR_REASON

操作に失敗しました。

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

スクリプトの結果

以下の表は、Add Entity To Detector URL List アクションを使用した場合のスクリプト結果出力の値を示しています。

スクリプトの結果名
is_success true または false

ポリシーを作成

Cloud Identity 内に新しいポリシーエントリを作成するには、ポリシーの作成 アクションを使用します。

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

アクションの入力

Create Policy アクションには、以下のパラメーターが必要です。

パラメータ 説明
Policy Entry

必須。

追加するポリシーエントリの設定を表す JSON オブジェクト。

ポリシー構成の例

以下の構成例は、Policy Entry パラメータの構造化方法を示しています。

例 1:URL リスト検出器

{
  "type": "ADMIN",
  "customer": "customers/<CUSTOMER_ID>",
  "policyQuery": {
    "orgUnit": "orgUnits/<ORG_UNIT_ID>",
    "sortOrder": 1
  },
  "setting": {
    "type": "settings/detector.url_list",
    "value": {
      "displayName": "BlockUrlDetector",
      "description": "Blocked urls for security reasons",
      "urlList": {
        "urls": [
          "www.medium.com",
          "medium.com",
          "wikipedia.org"
        ]
      }
    }
  }
}

例 2:DLP ルール

{
  "type": "ADMIN",
  "customer": "customers/<CUSTOMER_ID>",
  "policyQuery": {
    "query": "entity.org_units.exists(org_unit, org_unit.org_unit_id == orgUnitId('<ORG_UNIT_ID>'))",
    "orgUnit": "orgUnits/<ORG_UNIT_ID>",
    "sortOrder": 1
  },
  "setting": {
    "type": "settings/rule.dlp",
    "value": {
      "display_name": "TestRule",
      "description": "GoogleSecOps URL Blocklist Rule. Keeps state of blocked URLs. Manual modification is not advised",
      "triggers": [
        "google.workspace.chrome.url.v1.navigation"
      ],
      "condition": {
        "contentCondition": "url.matches_url_list('policies/<DETECTOR_POLICY_ID>')"
      },
      "action": {
        "chromeAction": {
          "blockContent": {
            "actionParams": {
              "customEndUserMessage": {
                "unsafeHtmlMessageBody": "(EQ)🚫 BlockedAccess denied."
              }
            }
          }
        }
      },
      "state": "ACTIVE"
    }
  }
}

アクションの出力

Create Policyアクションは、以下の出力を提供します。

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

次の例は、Create Policyアクションを使用したときに受信される JSON 結果出力を示しています。

{
  "type": "ADMIN",
  "customer": "customers/<CUSTOMER_ID>",
  "policyQuery": {
    "query": "entity.org_units.exists(org_unit, org_unit.org_unit_id == orgUnitId('<ORG_UNIT_ID>'))",
    "orgUnit": "orgUnits/<ORG_UNIT_ID>"
  },
  "setting": {
    "type": "settings/rule.dlp",
    "value": {
      "display_name": "test_create_rule",
      "triggers": [
        "google.workspace.chrome.file.v1.download"
      ],
      "state": "ACTIVE",
      "action": {
        "chromeAction": {
          "warnUser": {}
        }
      }
    }
  }
}
出力メッセージ

Create Policyアクションは、以下の出力メッセージを返すことができます。

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

Successfully added a new policy in Cloud Identity.

アクションが成功しました。
Error executing action "Create Policy". Reason: ERROR_REASON

操作に失敗しました。

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

スクリプトの結果

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

スクリプトの結果名
is_success true または false

ポリシーの一覧表示

List Policiesアクションを使用して、Cloud Identity から既存のポリシーのリストを取得します。

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

アクションの入力

List Policies アクションには、以下のパラメーターが必要です。

パラメータ 説明
Organization Unit Name

必須。

ポリシーを一覧表示する組織単位の名称。

Policy Type Filter

省略可。

リストをフィルタリングするために使用されるポリシーの種類。可能な値:AdminSystem、またはBoth

デフォルト値は Both です。

Settings Type Filter

省略可。

ポリシーをその設定タイプでフィルタリングするために使用される正規表現パターン。このフィルターは API リクエストに直接適用されます。

Settings Display Name Filter

省略可。

ポリシー設定をフィルタリングするために使用される表示名をカンマで区切ったリスト。

Max Results To Return

省略可。

アクション実行時に返される結果の最大数。デフォルト値は 50 です。最大値は100です。

アクションの出力

List Policies アクションは、以下の出力を提供します。

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

次の例は、List Policies アクションを使用したときに受信される JSON 結果出力を示しています。

[
  {
    "name": "policies/123",
    "customer": "customers/123",
    "type": "ADMIN",
    "policy_query": {
      "query": "entity.org_units.exists(org_unit, org_unit.org_unit_id == orgUnitId('12345'))",
      "orgUnit": "orgUnits/12345",
      "sortOrder": 1
    },
    "setting": {
      "type": "settings/rule.dlp",
      "value": {
        "display_name": "Test DLP Rule"
      }
    }
  }
]
出力メッセージ

List Policiesアクションは、以下の出力メッセージを返すことができます。

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

Successfully listed policies based on the provided criteria in Cloud Identity.

No policies found based on the provided criteria in Cloud Identity.

アクションが成功しました。
Error executing action "List Policies". Reason: ERROR_REASON

操作に失敗しました。

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

スクリプトの結果

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

スクリプトの結果名
is_success true または false

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