サードパーティの ID プロバイダを構成する
Cloud Identity、Google Workspace、またはサードパーティの ID プロバイダ(Okta や Azure AD など)を使用してユーザー、グループ、認証を管理できます。
このページでは、Workforce Identity 連携を構成してサードパーティの ID プロバイダを使用する方法について説明します。
Google の Workforce Identity 連携を使用すると、サービス アカウント キーを使用せずに、オンプレミスまたはマルチクラウドのワークロードに Google Cloudリソースへのアクセス権を付与できます。Workforce Identity 連携は、OpenID Connect(OIDC)や SAML 2.0 をサポートする任意の IdP(Microsoft Entra ID、Active Directory Federation Services(AD FS)、Okta など)で使用できます。
Google Security Operations では、次の SSO ブローカーとして Google の Workforce Identity 連携を使用する必要があります。
- FedRAMP High(またはそれ以上)のコンプライアンス要件があるお客様。
- Google Cloudによって有効になっている Google Security Operations のエンタープライズ レベルのコントロール(Identity and Access Management(IAM)を使用したデータと機能のロールベース アクセス制御(RBAC)など)にアクセスしているお客様。
- Chronicle API のプログラマティック アクセスにセルフサービス認証情報管理を使用しているお客様。
Google Security Operations は、サービス プロバイダを起点とする(SP を起点とする)SAML SSO をサポートしています。これにより、ユーザーは Google Security Operations に直接移動できます。Google Security Operations は、 Google Cloud Identity and Access Management(IAM)Workforce Identity 連携を通じて、サードパーティの ID プロバイダ(IdP)にリクエストを発行します。
IdP がユーザー ID を認証すると、ユーザーは認証アサーションとともに Google Security Operations に戻ります。 Google Cloud Workforce Identity 連携は、認証フローの仲介役として機能します。
Google Security Operations、IAM Workforce Identity 連携、IdP 間の通信
大まかな通信は次のとおりです。
- ユーザーが Google Security Operations に移動します。
- Google Security Operations は、 Google Cloud Workforce Identity プールで IdP 情報を検索します。
- リクエストが IdP に送信されます。
- SAML アサーションは、 Google Cloud Workforce Identity プールに送信されます。
- 認証に成功すると、Google Security Operations は、Workforce Identity プールで Workforce プロバイダを構成したときに定義した SAML 属性のみを受け取ります。
Google Security Operations 管理者は、ID プロバイダでグループを作成し、アサーションでグループ メンバーシップ情報を渡すように SAML アプリケーションを構成してから、ユーザーとグループを Google Security Operations の IAM の事前定義ロールに関連付けます。
IdP を起点とするログイン(IdP ダッシュボードからログインを開始する)はサポートされていません。組織でこの機能が必要な場合は、Google Security Operations の担当者に連絡してリクエストしてください。
このドキュメントでは、 Google Cloud Workforce Identity 連携を使用してサードパーティの ID プロバイダ(IdP)による認証を設定する際の概要について説明します。このドキュメントの手順を完了すると、サードパーティの IdP を使用して Google Security Operations にアクセスし、Workforce Identity 連携を使用して SAML SSO を使用して Google Security Operations へのアクセスを管理できるようになります。
始める前に
- Cloud Shell、
gcloud
コマンド、 Google Cloud コンソールに精通している必要があります。 - Google Security Operations 用に Google Cloud プロジェクトを構成するの手順に沿って、Google Security Operations にバインドするプロジェクトを設定します。
- Google Cloud Workforce Identity 連携について理解する。
- このドキュメントの手順を実施するための権限を付与されていることを確認してください。オンボーディング プロセスの各フェーズに必要な権限については、必要なロールをご覧ください。
次の手順では、gcloud
コマンドを使用して構成を行う方法について説明します。 Google Cloud コンソールで実行できる手順については、関連する IAM ドキュメントへのリンクが提供されています。
実装を計画する
次のセクションでは、このドキュメントの手順を実行する前に決める事項と定義する情報について説明します。
Workforce Identity プールとワーカー プロバイダを定義する
このプロセスの一環として、 Google Cloud Workforce Identity 連携を認証フローの仲介役として構成します。これを行うには、次の Google Cloud リソースを作成します。
- Workforce プール: 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 プールは共有できません。
Google SecOps にバインドされたプロジェクトを含む同じ Google Cloud組織に Workforce Identity プールを作成することをおすすめします。
Workforce Identity プールと Workforce プロバイダに関する情報を事前に定義しておくと、時間を節約できます。この情報は、IdP SAML アプリケーションと Workforce Identity 連携の両方を構成するときに使用します。
次の ID の値を選択します。
- 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 Security Operations の権限をご覧ください。
この情報は、このプロセスの次のフェーズで必要になります。
SAML アプリケーションを構成する際に、計画時に定義したグループを作成します。アサーションでグループ メンバーシップを渡すように IdP SAML アプリケーションを構成します。
Workforce プロバイダを作成するときに、アサーション属性とグループを Google Cloud 属性にマッピングします。この情報は、ユーザーの ID の一部としてアサーション クレームで送信されます。
Google Security Operations でロールベース アクセス制御を設定する場合は、ユーザー属性とグループ情報を使用して、Google Security Operations の機能へのアクセスを構成します。
Google Security Operations には、それぞれ特定の機能へのアクセスを許可する複数の事前定義ロールが用意されています。IdP SAML アプリケーションで定義されたグループを、これらの事前定義されたロールにマッピングできます。
SOAR 関連機能へのアクセスを構成する管理者用の IdP グループを作成します。オンボーディング プロセスでこのグループ名を指定して、グループ メンバーに Google SecOps の SOAR 関連機能へのユーザーとグループのアクセス権を構成する権限を付与します。
IdP を構成する
このセクションでは、 Google Cloud Workforce Identity 連携と Google Security Operations と統合するために IdP SAML アプリケーションで必要な特定の構成のみについて説明します。
IdP で新しい SAML アプリケーションを作成します。
サービス プロバイダによってはシングル サインオン URL とも呼ばれる次の Assertion Consumer Service(ACS)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 プロバイダに定義した識別子。値の説明については、実装を計画するをご覧ください。
次のエンティティ 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 プロバイダに定義した識別子。
IdP で名前 ID を構成して、SAML レスポンスで
NameID
フィールドが返されるようにします。これは、組織ポリシーをサポートする値(メールアドレスやユーザー名など)に設定できます。この値の構成については、IdP のドキュメントをご覧ください。この要件の詳細については、Workforce Identity 連携のトラブルシューティングをご覧ください。
必要に応じて、SAML アプリケーションでグループ属性を作成します。 これらは、IdP の実装を計画したときに定義しました。
アプリケーション メタデータ XML ファイルをダウンロードします。次のセクションでは、Cloud Shell を使用して、このファイルをローカル システムから Google Cloud ホーム ディレクトリにアップロードします。
Workforce Identity 連携を構成する
このセクションでは、前のセクションで作成した IdP SAML アプリケーションを使用して Workforce Identity 連携を構成するために必要な具体的な手順のみ説明します。Workforce Identity プールの管理の詳細については、Workforce Identity プール プロバイダを管理するをご覧ください。
Google Security Operations にバインドされたプロジェクトに対する必要な権限を持つユーザーとして Google Cloud コンソールを開きます。このユーザーはすでに特定または作成してあります。始める前にをご覧ください。
Cloud Shell セッションを開始する
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 と統合できます。
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
: 数値の組織 IDWORKFORCE_POOL_DESCRIPTION
: Workforce Identity プールの説明を指定します。WORKFORCE_POOL_DISPLAY_NAME
: Workforce Identity プールにユーザー フレンドリーな名前を指定します。
Google Cloud コンソールを使用してこの構成を行うには、プールを作成するをご覧ください。
Google Workspace または Cloud Identity を使用して Google SecOps にログインする場合は、次のフラグを追加します。
--allowed-services domain=backstory.chronicle.security
と--disable-programmatic-signin
をコマンドに追加します。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 \ --disable-programmatic-signin
このコマンドは、 Google Cloudへのログインをサポートしていない Workforce Identity プールを作成します。ログイン機能を有効にするには、シナリオごとに適切なフラグを使用する必要があります。
コマンドラインで Chronicle API を有効にするように求められたら、「
Yes
」と入力します。
Workforce Identity プール プロバイダを作成する
Workforce Identity プール プロバイダは、 Google Cloud 組織と IdP との関係を記述するエンティティです。
> をクリックして、SAML アプリケーション メタデータ ファイルを Cloud Shell のホーム ディレクトリにアップロードします。ファイルをアップロードできるのはホーム ディレクトリに限られます。Cloud Shell とローカル ワークステーションの間でファイルを転送するその他のオプションについては、Cloud Shell からファイルとフォルダをアップロードおよびダウンロードするをご覧ください。
[More]Cloud Shell で SAML アプリケーション メタデータ XML ファイルをアップロードしたディレクトリ パスをメモします。このパスは次のステップで必要になります。
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
: Workforce プロバイダの説明。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.subject
はgoogle.subject
にマッピング。これは最小要件です。assertion.attributes.name[0]
はgoogle.display_name
にマッピング。assertion.attributes.groups
をgoogle.groups
属性に設定します。
Google Security Operations(Google Security Operations SIEM と Google SecOps SOAR を含む)に対してこの構成を行う場合は、Google SecOps SOAR で必要な次の属性もマッピングする必要があります。
attribute.first_name
attribute.last_name
attribute.user_email
google.groups
詳細については、Google SecOps SOAR のユーザーのプロビジョニングとマッピングをご覧ください。
デフォルトでは、Google Security Operations は、大文字と小文字を区別しないアサーション属性名(
_assertion.attributes.groups_
、_assertion.attributes.idpGroup_
、_assertion.attributes.memberOf_
)からグループ情報を読み取ります。アサーションでグループ メンバー情報を渡すように SAML アプリケーションを構成する場合は、グループ属性名を
_group_
、_idpGroup_
、または_memberOf_
に設定します。コマンドの例では、
assertion.attributes.groups
をassertion.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/group
をgoogle.groups
にマッピングしています。google.groups="assertion.attributes['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/group']"
属性のマッピングの詳細については、属性のマッピングをご覧ください。
Google Cloud コンソールを使用してこの構成を行うには、SAML プロバイダを作成するをご覧ください。
Google Security Operations へのログインを有効にするためのロールを付与する
次の手順では、ユーザーが Google Security Operations にログインできるように IAM を使用して特定のロールを付与する方法について説明します。先ほど作成した Google Security Operations にバインドされた Google Cloud プロジェクトを使用して構成を行います。
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/*"
以下を置き換えます。
PROJECT_ID
: Google Security Operations 用に Google Cloud プロジェクトを構成するで構成した Google Security Operations にバインドされたプロジェクトのプロジェクト ID。プロジェクトを識別するフィールドの説明については、プロジェクトの作成と管理をご覧ください。WORKFORCE_POOL_ID
: Workforce Identity プール 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
クレーム内のグループ)を置き換えます。
組織の要件を満たすように追加の IAM ポリシーを構成します。
必須: 認証を完了してユーザーが Google SecOps プラットフォームにアクセスできるようにするには、Google SecOps の SOAR 側からユーザー アクセスを構成する必要があります。詳細については、Google SecOps プラットフォームでユーザーをマッピングするをご覧ください。
Google Security Operations の機能アクセス制御を確認または構成する
google.groups
属性にマッピングされた属性またはグループを使用して Workforce Identity 連携を構成した場合、この情報は Google Security Operations に渡され、Google Security Operations の機能に対するロールベース アクセス制御(RBAC)を構成できます。
Google Security Operations インスタンスに既存の RBAC 構成がある場合は、元の構成が想定どおりに機能することを確認します。
アクセス制御を構成していない場合は、IAM を使用して機能アクセス制御を構成するで、機能へのアクセス制御について確認してください。
Workforce Identity 連携の構成を変更する
Workforce Identity プールまたは Workforce プロバイダを更新する必要がある場合は、構成の更新について Workforce Identity プール プロバイダを管理するをご覧ください。
SAML 従業員プール プロバイダの作成の鍵管理セクションで、IdP 署名鍵を更新してから、最新のアプリケーション メタデータ XML ファイルで Workforce プロバイダ構成を更新する方法について説明しています。
以下に、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
: Workforce プロバイダの説明。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.groups
属性を Google SecOps でロールの定義に使用されるすべてのグループにマッピングします。
構成に関する問題のトラブルシューティング
このプロセスでエラーが発生した場合は、Workforce Identity 連携のトラブルシューティングで一般的な問題の解決方法を確認してください。次のセクションでは、このドキュメントの手順で操作する際に発生する一般的な問題について説明します。
それでも問題が解決しない場合は、Google SecOps の担当者に連絡して、Chrome ネットワーク ログファイルをお知らせください。
コマンドが見つかりません
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
必要な権限があることを確認します。詳細については、必要なロールをご覧ください。
次のステップ
このドキュメントの手順を完了したら、以下のことを行います。
Google Security Operations インスタンスを Google Cloud サービスにリンクする手順を行います。
監査ロギングをまだ設定していない場合は、Google Security Operations 監査ロギングを有効にして続行してください。
Google Security Operations を構成する場合は、Google Security Operations でユーザーのプロビジョニング、認証、マッピングを行うの追加手順を行います。
機能へのアクセスを構成するには、IAM を使用した機能のアクセス制御を構成すると IAM での Google Security Operations の権限の追加手順を行います。
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。