このページでは、Google Distributed Cloud(GDC)のエアギャップを組織の既存の ID プロバイダ(IdP)に接続する方法について説明します。IdP は、ユーザー ID を一元的に管理して保護し、認証サービスを提供するシステムです。既存の IdP に接続すると、ユーザーは組織の認証情報を使用して GDC にアクセスできます。GDC 内で別のアカウントを作成したり管理したりする必要はありません。このプロセスにより、シームレスで安全なログイン エクスペリエンスが実現します。IdP はグローバル リソースであるため、ユーザーは作業するゾーンに関係なく、同じ IdP を介して GDC にアクセスできます。
このページは、IdP に接続する IT 管理者やセキュリティ エンジニアなど、プラットフォーム管理者グループ内のユーザーを対象としています。詳細については、GDC エアギャップの対象読者に関するドキュメントをご覧ください。
次のいずれかを使用して、既存の ID プロバイダに接続できます。
始める前に
既存の ID プロバイダに接続する前に、初期設定が完了し、必要な権限があることを確認してください。
ID プロバイダの最初の接続設定
ユーザーが GDC のクラスタまたはダッシュボードにアクセスする前に、組織のインフラストラクチャ オペレーター グループのメンバーが IdP への初期接続を構成する必要があります。
これを行うには、チケット発行システムでチケットを開き、ID プロバイダに関する次の情報を提供します。
- サーバーの数とタイプ。
- ブロック ストレージの量(TB)。
- オブジェクト ストレージの容量(TB 単位)。
- OIDC の必須パラメータ:
- clientID: OpenID プロバイダへの認証リクエストを行うクライアント アプリケーションの ID。
- clientSecret: アプリケーションと OpenID プロバイダのみが知っているシークレット。
- issuerURL: 認可リクエストが OpenID に送信される URL。
- scopes: OpenID プロバイダに送信する追加のスコープ。
- userclaim: ユーザー名として使用する JSON ウェブトークン(JWT)クレーム。
- certificateAuthorityData: Base64 でエンコードされた OIDC プロバイダの PEM エンコード証明書。
- SAML プロバイダの必須パラメータ:
- idpCertificateDataList: SAML レスポンスを検証する IdP 証明書。これらの証明書は標準の Base64 エンコード形式と PEM 形式にする必要があります。IdP 証明書のローテーションを容易にするため、サポートされる証明書は 2 つまでです。
- idpEntityID: SAML プロバイダの SAML エンティティ ID(URI 形式で指定)。例:
https://www.idp.com/saml
。 - idpSingleSignOnURI: SAML プロバイダの SSO エンドポイントの URI。例:
https://www.idp.com/saml/sso
- 初期管理者のユーザー名またはユーザー名のグループ。
必要な権限
既存の ID プロバイダを接続するために必要な権限を取得するには、次の操作を行います。
- 組織の IAM 管理者に、IdP 連携管理者(
idp-federation-admin
)ロールの付与を依頼します。 - ID プロバイダの接続時に指定する初期管理者に、組織 IAM 管理者(
organization-iam-admin
)ロールがあることを確認します。
既存の ID プロバイダに接続する
ID プロバイダを接続するには、ID プロバイダから 1 つのクライアント ID とシークレットが必要です。既存の OIDC プロバイダまたは SAML プロバイダに接続できます。
既存の OIDC プロバイダに接続する
既存の OIDC プロバイダに接続するには、次の操作を行います。
コンソール
- GDC コンソールにログインします。次の例は、
org-1
という組織にログインした後のコンソールを示しています。 - ナビゲーション メニューで、[ID とアクセス権(IAM)] > [ID] をクリックします。
[Setup New Identity Provider] をクリックします。
[ID プロバイダの構成] セクションで、次の手順を完了して [次へ] をクリックします。
- [ID プロバイダ] プルダウン メニューで、[Open ID Connect(OIDC)] を選択します。
- ID プロバイダ名を入力します。
- [Google Distributed Cloud URL] フィールドに、GDC へのアクセスに使用する URL を入力します。
- [発行元 URI] フィールドに、ID プロバイダに認可リクエストが送信される URL を入力します。Kubernetes API サーバーは、この URL を使用してトークン検証用の公開鍵を検出します。URL には HTTPS を使用する必要があります。
- [クライアント ID] フィールドに、ID プロバイダへの認証リクエストを行うクライアント アプリケーションの ID を入力します。
- [クライアント シークレット] セクションで、[クライアント シークレットを構成する(推奨)] を選択します。
- [クライアント シークレット] フィールドに、ID プロバイダと Distributed Cloud 間の共有シークレットであるクライアント シークレットを入力します。
省略可: [接頭辞] フィールドに接頭辞を入力します。この接頭辞は、ユーザー クレームとグループ クレームの先頭に追加されます。接頭辞は、異なる ID プロバイダ構成を区別するために使用されます。たとえば、接頭辞を
myidp
に設定すると、ユーザー クレームはmyidpusername@example.com
、グループ クレームはmyidpgroup@example.com
になることがあります。ロールベースのアクセス制御(RBAC)権限をグループに割り当てるときは、接頭辞も含める必要があります。省略可: [暗号化] セクションで、[暗号化されたトークンを有効にする] を選択します。
暗号化トークンを有効にするには、IdP 連携管理者ロールが必要です。組織の IAM 管理者に、IdP 連携管理者(
idp-federation-admin
)ロールを付与するよう依頼します。- [キー ID] フィールドにキー ID を入力します。鍵 ID は、JSON ウェブ暗号化トークン(JWT)の公開鍵です。OIDC プロバイダが鍵 ID を設定してプロビジョニングします。
- [復号鍵] フィールドに、PEM 形式の復号鍵を入力します。復号鍵は、暗号化を復号する非対称鍵です。OIDC プロバイダが復号鍵を設定してプロビジョニングします。
[属性を構成する] セクションで、次の手順を完了して [次へ] をクリックします。
- [OIDC プロバイダの認証局] フィールドに、ID プロバイダの Base64 でエンコードされた PEM エンコード証明書を入力します。詳細については、https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail をご覧ください。
- 文字列を作成するには、ヘッダーを含めた証明書を
base64
でエンコードします。 - 結果の文字列は 1 行で含めます。例:
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
- 文字列を作成するには、ヘッダーを含めた証明書を
- [グループ クレーム] フィールドに、ユーザーのグループ情報を保持する ID プロバイダ トークンのクレームの名前を入力します。
- [ユーザー クレーム] フィールドに、各ユーザーを識別するクレームを入力します。多くのプロバイダのデフォルトのクレームは
sub
です。ID プロバイダによっては、email
やname
などの他のクレームを選択できます。名前が競合しないように、email
以外のクレームには、発行元の URL が先頭に付加されます。 - 省略可: [カスタム属性] セクションで [追加] をクリックし、ユーザーに関する追加のクレーム(部署やプロフィール写真の URL など)の Key-Value ペアを入力します。
- ID プロバイダで追加のスコープが必要な場合は、[スコープ] フィールドに、ID プロバイダに送信するスコープをカンマ区切りで入力します。
- [追加パラメータ] セクションに、ID プロバイダが必要とする追加の Key-Value ペア(カンマ区切り)を入力します。グループを承認する場合は、
resource=token-groups-claim
を渡します。
- [OIDC プロバイダの認証局] フィールドに、ID プロバイダの Base64 でエンコードされた PEM エンコード証明書を入力します。詳細については、https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail をご覧ください。
[Specify initial admins] セクションで、次の手順を完了して [Next] をクリックします。
- 個々のユーザーまたはグループを初期管理者として追加するかどうかを選択します。
- [ユーザー名またはグループ エイリアス] フィールドに、組織にアクセスするユーザーまたはグループのメールアドレスを入力します。管理者の場合は、メールアドレス(例:
kiran@example.com
)を入力します。接頭辞は、myidp-kiran@example.com
のようにユーザー名の前に付加されます。
選択内容を確認し、[設定] をクリックします。
新しい ID プロバイダ プロファイルが [ID プロファイル] リストに表示されます。
API
ID プロバイダを組織に接続するには、グローバル IdentityProviderConfig
カスタム リソースを作成します。
pa-idp-oidc.yaml
などのIdentityProviderConfig
カスタム リソース YAML ファイルを作成します。apiVersion: iam.global.gdc.goog/v1 kind: IdentityProviderConfig metadata: name: pa-idp-oidc namespace: platform spec: oidc: certificateAuthorityData: "IDP_BASE64_ENCODED_CERTIFICATE" clientID: IDP_CLIENT_ID clientSecret: IDP_CLIENT_SECRET groupPrefix: IDP_GROUP_PREFIX groupsClaim: IDP_GROUP_CLAIM issuerURI: IDP_ISSUER_URI scopes: openid email profile userClaim: IDP_USER_CLAIM userPrefix: IDP_USER_PREFIX
次の変数を置き換えます。
IDP_BASE64_ENCODED_CERTIFICATE
: IdP の Base64 エンコードされた証明書。IDP_CLIENT_ID
: IdP のクライアント ID。IDP_CLIENT_SECRET
: IdP のクライアント シークレット。IDP_GROUP_PREFIX
: IdP のグループの接頭辞。IDP_GROUP_CLAIM
: 情報をグループ化する IdP トークンのクレームの名前。IDP_ISSUER_URI
: IdP の発行元 URI。IDP_USER_CLAIM
: ユーザーの IdP トークンのクレームの名前。IDP_USER_PREFIX
: ユーザー IdP の接頭辞。
IdentityProviderConfig
カスタム リソースをグローバル API サーバーに適用します。kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f pa-idp-oidc.yaml
GLOBAL_API_SERVER_KUBECONFIG
変数を、グローバル API サーバーの kubeconfig ファイルへのパスに置き換えます。
既存の SAML プロバイダに接続する
既存の SAML プロバイダに接続する手順は次のとおりです。
コンソール
- GDC コンソールにログインします。
- ナビゲーション メニューで、[ID とアクセス] > [ID] をクリックします。
[ID プロバイダの構成] セクションで、次の手順を完了して [次へ] をクリックします。
- [ID プロバイダ] プルダウン メニューで、[Security Assertion Markup Language(SAML)] を選択します。
- ID プロバイダ名を入力します。
- [Identity ID] フィールドに、ID プロバイダに認証リクエストを行うクライアント アプリケーションの ID を入力します。
- [SSO URI] フィールドに、プロバイダのシングル サインオン エンドポイントの URL を入力します。例:
https://www.idp.com/saml/sso
。 [Identity provider prefix] フィールドに接頭辞を入力します。この接頭辞は、ユーザーとグループのクレームの先頭に追加されます。接頭辞は、異なる ID プロバイダ構成を区別するために使用されます。たとえば、接頭辞を
myidp
に設定すると、ユーザー クレームはmyidpusername@example.com
、グループ クレームはmyidpgroup@example.com
と表示されることがあります。RBAC 権限をグループに割り当てるときは、接頭辞も含める必要があります。セキュリティを強化するには、有効期間が 5 ~ 10 分のアサーションを発行するように SAML プロバイダを構成します。この設定は、SAML プロバイダの設定内で構成できます。
省略可: [SAML Assertions] セクションで、[Enable encrypted SAML assertions] を選択します。
暗号化された SAML アサーションを有効にするには、IdP 連携管理者ロールが必要です。組織 IAM 管理者に、IdP 連携管理者(
idp-federation-admin
)ロールの付与を依頼します。- [Encryption certificate] フィールドに、PEM 形式の暗号化証明書を入力します。暗号化証明書は、SAML プロバイダの生成後に受け取ります。
- [復号鍵] フィールドに復号鍵を入力します。復号鍵は、SAML プロバイダの生成後に受け取ります。
省略可: [SAML Signed requests] セクションで、[Enable signed SAML requests] をオンにします。
- [署名証明書] フィールドに、PEM ファイル形式の署名証明書を入力します。SAML プロバイダが署名証明書を設定して生成します。
- [署名鍵] フィールドに、PEM ファイル形式で署名鍵を入力します。SAML プロバイダが署名鍵を設定して生成します。
[属性を構成] ページで、次の手順を完了して [次へ] をクリックします。
- [IDP certificate] フィールドに、ID プロバイダの base64 でエンコードされた PEM エンコード証明書を入力します。詳細については、https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail をご覧ください。
- 文字列を作成するには、ヘッダーを含めた証明書を
base64
でエンコードします。 - 結果の文字列は 1 行で含めます。例:
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
。
- 文字列を作成するには、ヘッダーを含めた証明書を
- 追加の証明書がある場合は、[Additional IDP certificate] フィールドに入力します。
- [ユーザー属性] フィールドに、各ユーザーを識別する属性を入力します。多くのプロバイダのデフォルトの属性は
sub
です。ID プロバイダによっては、email
やname
などの他の属性を選択できます。名前が競合しないように、email
以外の属性には、発行元の URL が先頭に付加されます。 - [グループ属性] フィールドに、ユーザーのグループ情報を保持する ID プロバイダ トークンの属性の名前を入力します。
- 省略可: [属性のマッピング] 領域で [追加] をクリックし、ユーザーの部署やプロフィール写真の URL など、ユーザーに関する追加の属性の Key-Value ペアを入力します。
- [IDP certificate] フィールドに、ID プロバイダの base64 でエンコードされた PEM エンコード証明書を入力します。詳細については、https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail をご覧ください。
[Specify initial admins] セクションで、次の手順を完了して [Next] をクリックします。
- 個々のユーザーまたはグループを初期管理者として追加するかどうかを選択します。
- [ユーザー名] フィールドに、組織へのアクセスに使用するユーザーまたはグループのメールアドレスを入力します。管理者の場合は、メールアドレス(例:
kiran@example.com
)を入力します。接頭辞は、myidp-kiran@example.com
のようにユーザー名の前に付加されます。
[Review] ページで、続行する前に各 ID 構成のすべての値を確認します。[戻る] をクリックして前のページに戻り、必要な修正を行います。すべての値を仕様に合わせて構成したら、[設定] をクリックします。
API
ID プロバイダを組織に接続するには、グローバル IdentityProviderConfig
カスタム リソースを作成します。
pa-idp-saml.yaml
などのIdentityProviderConfig
カスタム リソース YAML ファイルを作成します。apiVersion: iam.global.gdc.goog/v1 kind: IdentityProviderConfig metadata: name: pa-idp-saml namespace: platform spec: saml: groupPrefix: IDP_GROUP_PREFIX groupsAttribute: IDP_GROUP_ATTRIBUTE idpCertificateDataList: - "IDP_BASE64_ENCODED_CERTIFICATE" idpEntityID: IDP_SAML_ENTITY_ID idpSingleSignOnURI: IDP_SAML_SSO_URI userAttribute: IDP_USER_ATTRIBUTE userPrefix: IDP_USER_PREFIX
次の変数を置き換えます。
IDP_GROUP_PREFIX
: IdP のグループの接頭辞。IDP_GROUP_ATTRIBUTE
: IdP のグループの属性。IDP_BASE64_ENCODED_CERTIFICATE
: IdP の Base64 エンコードされた証明書。IDP_SAML_ENTITY_ID
: IdP を一意に識別するための URL または URI。IDP_SAML_SSO_URI
: IdP の発行元 URI。IDP_USER_ATTRIBUTE
: IdP ユーザーの属性(メールなど)。IDP_USER_PREFIX
: ユーザーの IdP トークンのクレームの名前。
IdentityProviderConfig
カスタム リソースをグローバル API サーバーに適用します。kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f pa-idp-saml.yaml
GLOBAL_API_SERVER_KUBECONFIG
変数を、グローバル API サーバーの kubeconfig ファイルへのパスに置き換えます。
既存の ID プロバイダを削除する
GDC コンソールを使用して既存の ID プロバイダを削除します。
- GDC コンソールにログインします。
- プロジェクト セレクタで、ID プロバイダを削除する組織を選択します。
- ナビゲーション メニューで、[ID とアクセス] > [ID] をクリックします。
1 つ以上の ID プロバイダの名前の横にあるチェックボックスをオンにします。
選択した ID プロバイダの数と [削除] ボタンを含むメッセージが表示されます。
[削除] をクリックします。