Google Security Operations 用にサードパーティ ID プロバイダを構成する

Google の Workforce Identity 連携機能を使用すると、サービス アカウント キーを使用せずに、Google Cloud リソースへのアクセス権を、オンプレミスまたはマルチクラウドのワークロードに付与できます。Workforce Identity 連携は、OpenID Connect(OIDC)をサポートする任意の ID プロバイダ(IdP)(Microsoft Azure、Okta、SAML 2.0 など)で使用できます。

Google Security Operations では、次の場合に、デフォルトの SSO ブローカーとして Google の Workforce Identity 連携を使用する必要があります。

  • FedRAMP High(またはそれ以上)のコンプライアンス要件のあるお客様。
  • Google Cloud で有効になっている Google Security Operations でエンタープライズ レベルの制御(Identity and Access Management(IAM)を使用したデータと機能のロールベースのアクセス制御(RBAC)など)にアクセスしているお客様。
  • Google Security Operations API へのプログラムによるアクセスにセルフサービス認証情報管理を使用しているお客様。

Google Security Operations は、サービス プロバイダを起点とする(SP を起点とする)SAML SSO をサポートしています。これにより、ユーザーは直接 Google セキュリティ オペレーションに移動できます。Google Security Operations は、Google Cloud Identity and Access Management(IAM)の Workforce Identity 連携を介してサードパーティ ID プロバイダ(IdP)にリクエストを発行します。

IdP でユーザー ID が認証されると、ユーザーは認証アサーションとともに Google セキュリティ オペレーションに戻ります。Google Cloud Workforce Identity 連携は、認証フローの仲介役として機能します。

Google Security Operations、Google Cloud IAM Workforce Identity 連携、IdP 間の通信

Google Security Operations、IAM Workforce Identity 連携、IdP 間の通信

コミュニケーションの概要は次のとおりです。

  1. ユーザーが Google Security Operations に移動します。
  2. Google Security Operations は、Google Cloud の Workforce Identity プールで IdP 情報を検索します。
  3. リクエストが IdP に送信されます。
  4. SAML アサーションは、Google Cloud の Workforce Identity プールに送信されます。
  5. 認証が成功すると、Google Security Operations は、Workforce Identity プールで Workforce プロバイダを構成したときに定義された SAML 属性のみを受け取ります。

IdP を起点とするログイン(IdP ダッシュボードからログインを開始する)はサポートされていません。組織でこの機能が必要な場合は、Google セキュリティ運用の担当者に連絡してこの機能をリクエストしてください。

このドキュメントでは、Google Cloud Workforce Identity 連携を使用してサードパーティの ID プロバイダ(IdP)を介した認証を設定する手順の概要を説明します。このドキュメントの手順を行うと、サードパーティの IdP を使用して Google Security Operations にアクセスし、Workforce Identity 連携を介して SAML SSO を使用して Google Security Operations へのアクセスを管理できます。

始める前に

次の手順では、gcloud コマンドを使用して構成を実行する方法について説明します。手順を Google Cloud コンソールで実行できる場合は、関連する IAM ドキュメントへのリンクが提供されます。

実装を計画する

次のセクションでは、このドキュメントの手順を実行する前に行う必要がある決定と情報について説明します。

Workforce Identity プールとワーカー プロバイダを定義する

このプロセスの一環として、Google Cloud Workforce Identity 連携を認証フローの中継点として構成します。これを行うには、次の Google Cloud リソースを作成します。

  • Workforce Identity プール: Workforce Identity プールを使用すると、人材(従業員など)に Google Security Operations へのアクセス権を付与できます。
  • Workforce プロバイダ: Workforce プロバイダは、Workforce Identity プールのサブリソースです。1 つの IdP の詳細が保存されます。

Workforce Identity プール、Workforce プロバイダ、Google Security Operations インスタンス(単一のお客様のサブドメインで識別される)の関係は次のとおりです。

  • Workforce Identity プールは組織レベルで定義されます。
  • 各 Google Security Operations インスタンスには、Workforce Identity プールが構成され、関連付けられています。
  • 1 つの Workforce Identity プールに複数の Workforce プロバイダを設定できます。
  • 各 Workforce プロバイダは、サードパーティの IdP を Workforce Identity プールと統合します。
  • この手順を使用して作成する Workforce Identity プールは、Google SecOps 専用である必要があります。 他の目的のために複数の Workforce Identity プールを管理することはできますが、Google SecOps 用に作成された Workforce Identity プールは共有できません。
  • Workforce Identity プールは、Google SecOps にバインドされたプロジェクトを含む同じ Google Cloud 組織内に作成することをおすすめします。

Workforce Identity プールと Workforce プロバイダに関する情報を事前定義すると、時間を節約できます。この情報は、IdP SAML アプリケーションと Workforce Identity 連携の両方を構成するときに使用します。

次の識別子の値を選択します。

  • Workforce Identity プール ID(WORKFORCE_POOL_ID): Workforce プールの範囲または目的を示す値を選択します。値は次の要件を満たす必要があります。
    • グローバルに一意である必要がある。
    • 使用できるのは、小文字の [a-z]、数字 [0-9]、ダッシュ [-] のみです。
    • 先頭は小文字の [a-z] にする必要があります。
    • 末尾は小文字の [a-z] または数字 [0-9] にする必要があります。
    • 長さは 4 ~ 61 文字です。
  • Workforce Identity プールの表示名(WORKFORCE_POOL_DISPLAY_NAME): Workforce プールのわかりやすい名前を定義します。
  • Workforce Identity プールの説明(WORKFORCE_POOL_DESCRIPTION): Workforce プールの詳細な説明を定義します。
  • Workforce プロバイダ ID(WORKFORCE_PROVIDER_ID): それが表す IdP を示す値を選択します。値は次の要件を満たす必要があります。
    • 使用できるのは、小文字の [a-z]、数字 [0-9]、ダッシュ [-] のみです。
    • 長さは 4~32 文字にできます。
  • Workforce プロバイダの表示名(WORKFORCE_PROVIDER_DISPLAY_NAME): Workforce プロバイダには、わかりやすい名前を定義します。32 文字未満で指定してください。
  • Workforce プロバイダの説明(WORKFORCE_PROVIDER_DESCRIPTION): Workforce プロバイダの詳細な説明を定義します。

IdP でユーザー属性とグループを定義する

IdP で SAML アプリケーションを作成する前に、Google Security Operations の機能へのアクセスを構成するために必要なユーザー属性とグループを特定します。詳細については、IAM を使用して機能のアクセス制御を構成するIAM で Google セキュリティ オペレーションの権限をご覧ください。

この情報は、このプロセスの次の段階で必要になります。

  • SAML アプリケーションを構成する場合は、計画中に定義されたグループを作成します。アサーションでグループ メンバーを渡すように IdP SAML アプリケーションを構成します。

  • ワーカー プロバイダを作成するときに、アサーションの属性とグループを Google Cloud の属性にマッピングします。この情報は、ユーザーの ID の一部としてアサーション クレームで送信されます。

  • Google Security Operations で役割ベースのアクセス制御を設定する場合は、ユーザー属性とグループ情報を使用して Google Security Operations 機能へのアクセスを構成します。

    Google Security Operations には、それぞれが特定の機能へのアクセスを許可する複数の事前定義ロールが用意されています。IdP SAML アプリケーションで定義されたグループを、これらの事前定義ロールにマッピングできます。

IdP を構成する

このセクションでは、Google Cloud Workforce Identity 連携および Google Security Operations と統合するために IdP SAML アプリケーションで必要な特定の構成についてのみ説明します。

  1. IdP で新しい SAML アプリケーションを作成します。

  2. 次の Assertion Consumer Service(ACS)URL を使用してアプリケーションを構成します。この URL は、サービス プロバイダによってはシングル サインオン URL とも呼ばれます。

    https://auth.backstory.chronicle.security/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    

    次のように置き換えます。

    • WORKFORCE_POOL_ID: Workforce Identity プールに定義した識別子。
    • WORKFORCE_PROVIDER_ID: Workforce プロバイダに定義した識別子。

      これらの値の説明については、実装を計画するをご覧ください。

  3. 次のエンティティ ID(SP エンティティ ID)を使用してアプリケーションを構成します。

    https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    

    次のように置き換えます。

    • WORKFORCE_POOL_ID: Workforce Identity プールに定義した識別子。
    • WORKFORCE_PROVIDER_ID: Workforce プロバイダに定義した識別子。
  4. IdP で名前識別子を構成して、SAML レスポンスで NameID フィールドが返されるようにします。

    これは、組織ポリシーをサポートする値(メールアドレスやユーザー名など)に設定できます。この値の設定については、IdP のドキュメントをご覧ください。この要件の詳細については、Workforce Identity 連携のトラブルシューティングをご覧ください。

  5. 必要に応じて、SAML アプリケーションでグループ属性を作成します。 これらは IdP の実装を計画したときに定義したものです。

  6. アプリケーション メタデータ XML ファイルをダウンロードします。次のセクションでは、Cloud Shell を使用して、ローカル システムから Google Cloud ホーム ディレクトリにこのファイルをアップロードします。

Workforce Identity 連携を構成する

このセクションでは、前のセクションで作成した IdP SAML アプリケーションと Workforce Identity 連携を構成するために必要な特定の手順のみについて説明します。 Workforce Identity プールの管理の詳細については、Workforce Identity プール プロバイダを管理するをご覧ください。

  1. Google セキュリティ オペレーションにバインドされたプロジェクトに対して必要な権限を持つユーザーとして Google Cloud コンソールを開きます。このユーザーはすでに特定または作成されています。始める前にをご覧ください。

  2. Cloud Shell セッションを開始する

  3. gcloud CLI を使用して実行されるオペレーションに課金され、割り当てられる Google Cloud プロジェクトを設定します。たとえば、次の gcloud コマンドを使用します。

    gcloud config set billing/quota_project PROJECT_ID
    

    PROJECT_ID は、Google Security Operations 用に Google Cloud プロジェクトを構成するで作成した、Google Security Operations にバインドされたプロジェクトのプロジェクト ID に置き換えます。プロジェクトを識別するフィールドの詳細については、プロジェクトの作成と管理をご覧ください。

    割り当ての詳細については、次のドキュメントをご覧ください。

    エラーが発生した場合は、割り当てエラーをご覧ください。

Workforce Identity プールを作成して構成する

Workforce Identity プールを構成すると、外部 ID プロバイダ(IdP)と統合するか、Google Workspace または Cloud Identity と統合できます。

  1. Workforce Identity プールを作成します。

    • サードパーティの IdP の Workforce Identity プールを作成します。

      たとえば、次の gcloud コマンドを使用します。

      gcloud iam workforce-pools create WORKFORCE_POOL_ID\
            --location="global" \
            --organization="ORGANIZATION_ID" \
            --description="WORKFORCE_POOL_DESCRIPTION" \
            --display-name="WORKFORCE_POOL_DISPLAY_NAME"
      

      次のように置き換えます。

      • WORKFORCE_POOL_ID: Workforce Identity プールに定義した識別子。
      • ORGANIZATION_ID: 数値の組織 ID
      • WORKFORCE_POOL_DESCRIPTION: Workforce Identity プールの説明を指定します。
      • WORKFORCE_POOL_DISPLAY_NAME: Workforce Identity プールにユーザー フレンドリーな名前を指定します。
    • Google Workspace または Cloud Identity の Workforce Identity プールを作成します。

      Google Workspace または Cloud Identity を IdP として使用する場合は、コマンドに --allowed-services domain=backstory.chronicle.security フラグを追加します。

      gcloud iam workforce-pools create WORKFORCE_POOL_ID\
            --location="global" \
            --organization="ORGANIZATION_ID" \
            --description="WORKFORCE_POOL_DESCRIPTION" \
            --display-name="WORKFORCE_POOL_DISPLAY_NAME" \
            --allowed-services domain=backstory.chronicle.security
      

    Google Cloud コンソールを使用してこの構成を行うには、プールの作成をご覧ください。

  2. コマンドラインで Chronicle API を有効にするように求められたら、「Yes」と入力します。

Workforce Identity プロバイダを作成する

  1. SAML アプリケーション メタデータ ファイルを Cloud Shell ホーム ディレクトリにアップロードするには、 その他アイコン > をクリックします。ファイルはホーム ディレクトリにのみアップロードできます。Cloud Shell とローカル ワークステーションの間でファイルを転送するその他のオプションについては、Cloud Shell からファイルとフォルダをアップロードおよびダウンロードするをご覧ください。

  2. Cloud Shell で SAML アプリケーション メタデータ XML ファイルをアップロードしたディレクトリ パスをメモします。このパスは次のステップで必要になります。

  3. Workforce Identity プール プロバイダを作成し、IdP の詳細を指定します。

    たとえば、次の gcloud コマンドを使用します。

    gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \
          --workforce-pool="WORKFORCE_POOL_ID" \
          --location="global" \
          --display-name="WORKFORCE_PROVIDER_DISPLAY_NAME" \
          --description="WORKFORCE_PROVIDER_DESCRIPTION" \
          --idp-metadata-path=PATH_TO_METADATA_XML \
          --attribute-mapping="ATTRIBUTE_MAPPINGS"
    

    これらの値の詳細については、実装を計画するをご覧ください。

    次のように置き換えます。

    • WORKFORCE_PROVIDER_ID: Workforce プロバイダ ID に定義した値。
    • WORKFORCE_POOL_ID: Workforce Identity プール ID に定義した値。
    • WORKFORCE_PROVIDER_DISPLAY_NAME: Workforce プロバイダのわかりやすい名前。32 文字未満で指定してください。
    • WORKFORCE_PROVIDER_DESCRIPTION: 従業員プロバイダの説明。
    • PATH_TO_METADATA_XML: Cloud Shell を使用してアップロードしたアプリケーション メタデータ XML ファイルの Cloud Shell ディレクトリの場所(/path/to/sso_metadata.xml など)。
    • ATTRIBUTE_MAPPINGS: アサーション属性を Google Cloud 属性にマッピングする方法の定義。Common Expression Language を使用してこれらのマッピングを解釈します。例:

      google.subject=assertion.subject,google.display_name=assertion.attributes.name[0],google.groups=assertion.attributes.groups

      前の例では、次の属性をマッピングしています。

      • assertion.subjectgoogle.subject にマッピング。これは最小要件です。
      • assertion.attributes.name[0]google.display_name にマッピング。
      • assertion.attributes.groups: google.groups 属性。

      Google Security Operations SIEM や Google Security Operations SOAR を含む Google Security Operations に対してこの構成を行う場合は、Google Security Operations SOAR に必要な次の属性もマッピングする必要があります。

      • attribute.first_name
      • attribute.last_name
      • attribute.user_email
      • google.groups

      Google Security Operations SOAR のユーザーのプロビジョニングとマッピングの詳細を確認する。

      デフォルトでは、Google Security Operations は、大文字と小文字は区別されないアサーション属性名(_assertion.attributes.groups__assertion.attributes.idpGroup__assertion.attributes.memberOf_)からグループ情報を読み取ります。

      アサーションでグループ メンバー情報を渡すように SAML アプリケーションを構成する場合は、グループ属性名を _group__idpGroup__memberOf_ のいずれかに設定します。

      コマンド例では、assertion.attributes.groupsassertion.attributes.idpGroup または assertion.attributes.memberOf に置き換えることができます。これは、IdP SAML アプリケーションで構成したグループ属性の名前を表します。アサーションのグループ メンバーシップ情報が含まれます。

      次の例では、複数のグループを google.groups 属性にマッピングしています。

      google.groups="(has(assertion.attributes.idpGroup) ? assertion.attributes.idpGroup : []) + (has(assertion.attributes.groups) ? assertion.attributes.groups : []) + (has(assertion.attributes.memberof) ? assertion.attributes.memberof : [])"

      次の例では、特殊文字を含むグループ http://schemas.xmlsoap.org/ws/2005/05/identity/claims/groupgoogle.groups にマッピングしています。

      google.groups="assertion.attributes['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/group']"

      属性のマッピングの詳細については、属性のマッピングをご覧ください。

      Google Cloud コンソールを使用してこの構成を行うには、SAML プロバイダを作成するをご覧ください。

Google セキュリティ オペレーションへのログインを許可するロールを付与する

次の手順は、IAM を使用して特定のロールを付与し、ユーザーが Google セキュリティ オペレーションにログインできるようにする方法について説明します。前の手順で作成した Google セキュリティ オペレーションにバインドされた Google Cloud プロジェクトを使用して構成を行います。

この例では、gcloud コマンドを使用します。Google Cloud コンソールを使用するには、単一のロールを付与するをご覧ください

  1. Google Security Operations アプリケーションにアクセスできるユーザーまたはグループに Chronicle API 閲覧者(roles/chronicle.viewerのロールを付与します。

    次の例では、以前に作成した Workforce Identity プールと Workforce プロバイダを使用して管理されている ID に Chronicle API 閲覧者ロールを付与します。

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role roles/chronicle.viewer \
      --member "principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/*"
    

    次のように置き換えます。

    Chronicle API 閲覧者のロールを特定のグループに付与するには、次のコマンドを実行します。

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role roles/chronicle.viewer \
      --member "principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
    

    GROUP_IDは、マッピングされた google.groups クレーム内のグループです。

  2. 組織の要件を満たすように追加の IAM ポリシーを構成します。

Google Security Operations 機能のアクセス制御を確認または構成する

google.groups 属性にマッピングされた属性またはグループを使用して Workforce Identity 連携を構成した場合、この情報は Google Security Operations に渡され、Google Security Operations にロールベースのアクセス制御(RBAC)を構成できます。機能。

Google Security Operations インスタンスに既存の RBAC 構成がある場合は、元の構成が期待どおりに動作していることを確認します。

Google Security Operations RBAC をまだ構成していない場合は、IAM を使用して機能のアクセス制御を構成するで機能へのアクセスの制御を確認してください。

Workforce Identity 連携の構成を変更する

Workforce Identity プールまたは workforce プロバイダを更新する必要がある場合は、構成の更新について Workforce Identity プール プロバイダの管理をご覧ください。

SAML 従業員プール プロバイダの作成鍵管理セクションで、IdP 署名鍵を更新してから、最新のアプリケーション メタデータ XML ファイルで Workforce プロバイダ構成を更新する方法について説明しています。

従業員プロバイダ構成を更新する gcloud コマンドの例を次に示します。

gcloud iam workforce-pools providers update-saml WORKFORCE_PROVIDER_ID \
    --workforce-pool=WORKFORCE_POOL_ID \
    --location="global" \
    --display-name="WORKFORCE_PROVIDER_DISPLAY_NAME" \
    --description="WORKFORCE_PROVIDER_DESCRIPTION" \
    --idp-metadata-path=PATH_TO_METADATA_XML \
    --attribute-mapping="ATTRIBUTE_MAPPINGS"

次のように置き換えます。

  • WORKFORCE_PROVIDER_ID: Workforce プロバイダ ID に定義した値。
  • WORKFORCE_POOL_ID: Workforce Identity プール ID に定義した値。
  • WORKFORCE_PROVIDER_DISPLAY_NAME: Workforce プロバイダのわかりやすい名前。値は 32 文字未満で指定してください。
  • WORKFORCE_PROVIDER_DESCRIPTION: 従業員プロバイダの説明。
  • PATH_TO_METADATA_XML: 更新されたアプリケーション メタデータ XML ファイルの場所(例: /path/to/sso_metadata_updated.xml)。
  • ATTRIBUTE_MAPPINGS: Google Cloud 属性にマッピングされたアサーション属性。例:

    google.subject=assertion.subject,google.display_name=assertion.attributes.name[0],google.groups=assertion.attributes.memberOf

Google SecOps RBAC が期待どおりに機能し続けるようにするには、Google SecOps でロールの定義に使用するすべてのグループに google.groups 属性をマッピングします。

構成に関する問題のトラブルシューティング

このプロセス中にエラーが発生した場合は、Workforce Identity 連携のトラブルシューティングを参照して一般的な問題を解決してください。次のセクションでは、このドキュメントの手順を行う際に発生する一般的な問題について説明します。

それでも問題が解決しない場合は、Google SecOps の担当者に連絡して、Chrome ネットワーク ログファイルをお知らせください。

Workforce Identity プール プロバイダの作成時に command not found エラーが発生する

Workforce Identity プールのプロバイダを作成して IdP の詳細を指定すると、次のエラーが発生します。

Error: bash: --attribute-mapping=google.subject=assertion.subject,
google.display_name=assertion.attributes.name[0],
google.groups=assertion.attributes.groups: command not found

PATH_TO_METADATA_XML が、SAML アプリケーション メタデータ XML ファイルを Cloud Shell ホーム ディレクトリにアップロードした場所であることを確認します。

エラー The caller does not have permission

gcloud projects add-iam-policy-binding コマンドを実行してユーザーまたはグループに役割を付与すると、次のエラーが発生します。

ERROR: (gcloud.organizations.add-iam-policy-binding) User [ ] does not have
permission to access organizations instance [538073083963:getIamPolicy]
(or it may not exist): The caller does not have permission

必要な権限があることを確認します。詳細については、必要なロールをご覧ください。

次のステップ

このドキュメントの手順を完了したら、次の操作を行います。