このページでは、Google Distributed Cloud(GDC)エアギャップを組織の既存の ID プロバイダ(IdP)に接続する方法について説明します。IdP は、ユーザー ID を一元管理して保護し、認証サービスを提供するシステムです。既存の IdP に接続すると、ユーザーは組織の認証情報を使用して GDC にアクセスできます。GDC 内で個別のアカウントを作成または管理する必要はありません。このプロセスにより、シームレスで安全なログイン エクスペリエンスが実現します。IdP はグローバル リソースであるため、ユーザーは作業するゾーンに関係なく、同じ IdP を介して GDC にアクセスできます。
このページは、IdP への接続を希望する IT 管理者やセキュリティ エンジニアなど、プラットフォーム管理者グループ内のユーザーを対象としています。詳細については、GDC エアギャップ ドキュメントの対象読者をご覧ください。
次のいずれかを使用して、既存の ID プロバイダに接続できます。
始める前に
既存の ID プロバイダに接続する前に、初期設定が完了していることを確認し、必要な権限をリクエストして、環境を準備する必要があります。
ID プロバイダ接続の初期設定
ユーザーが GDC クラスタまたはダッシュボードにアクセスする前に、組織のインフラストラクチャ オペレーター グループのメンバーが初期 IdP 接続を構成する必要があります。
これを行うには、チケット発行システムでチケットを開き、必要な ID プロバイダ情報を提供します。詳細については、顧客の ID プロバイダを組織に接続するをご覧ください。
IAM ロールをリクエストする
ID プロバイダ構成を作成、読み取り、更新、削除するには、IAM 組織管理者に連絡して IdP 連携管理者(idp-federation-admin)ロールをリクエストします。
ID プロバイダの接続時に指定する初期管理者に IAM 組織管理者(organization-iam-admin)ロールが付与されていることを確認します。
環境を準備する
kubeconfig を生成して、
kubectlアクセスを構成します。
既存の ID プロバイダに接続する
ID プロバイダを接続するには、ID プロバイダから 1 つのクライアント ID とシークレットを取得する必要があります。既存の OIDC プロバイダまたは SAML プロバイダに接続できます。
既存の OIDC プロバイダに接続する
既存の OIDC プロバイダに接続する手順は次のとおりです。
コンソール
- GDC コンソールにログインします。次の例は、
org-1という組織にログインした後のコンソールを示しています。
- ナビゲーション メニューで、[Identity and Access] > [Identity] をクリックします。
- [Add Identity Provider] をクリックします。
[ID プロバイダを構成する] セクションで、次の操作を行います。
- [ID プロバイダ] プルダウン メニューで、[Open ID Connect(OIDC)] を選択します。
- [ID プロバイダ名] を入力します。
- [発行元 URI] フィールドに、ID プロバイダに認可リクエストが送信される URL を入力します。Kubernetes API サーバーは、この URL を使用してトークン検証用の公開鍵を検出します。URL には必ず HTTPS が使用されます。
- [クライアント ID] フィールドに、ID プロバイダに認証リクエストを行うクライアント アプリケーションの ID を入力します。
- [クライアント シークレット] フィールドに、クライアント シークレットを入力します。これは、ID プロバイダと Distributed Cloud の間で共有されるシークレットです。
省略可: [ID プロバイダの接頭辞] フィールドに接頭辞を入力します。この接頭辞は、ユーザークレームとグループクレームの先頭に追加されます。接頭辞は、異なる ID プロバイダ構成を区別するために使用されます。たとえば、接頭辞を
myidpに設定すると、ユーザー クレームはmyidp-username@example.com、グループ クレームはmyidp-group@example.comになります。グループにロールベース アクセス制御(RBAC)権限を割り当てる場合も、接頭辞を含める必要があります。省略可: [暗号化] セクションで、[暗号化トークンを有効にする] を選択します。
暗号化トークンを有効にするには、IAM 組織管理者に IdP 連携管理者(
idp-federation-admin)ロールを付与するよう依頼します。- [キー ID] フィールドにキー ID を入力します。鍵 ID は、JSON Web Encryption(JWE)トークンの公開鍵を識別します。OIDC プロバイダが鍵 ID を設定してプロビジョニングします。
- [復号鍵] フィールドに、PEM 形式の復号鍵を入力します。復号鍵は、トークンの復号に使用される非対称鍵です。OIDC プロバイダが復号鍵を設定してプロビジョニングします。
[次へ] をクリックします。
[属性を構成する] セクションで、次の操作を行います。
- [OIDC プロバイダの認証局] フィールドに、ID プロバイダの base64 でエンコードされた PEM エンコード証明書を入力します。詳細については、Wikipedia の Privacy-Enhanced Mail をご覧ください。
- 文字列を作成するには、ヘッダーを含めた証明書を
base64でエンコードします。 - 結果の文字列は 1 行で含めます。例:
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
- 文字列を作成するには、ヘッダーを含めた証明書を
- [グループ クレーム] フィールドに、ユーザーのグループ情報を保持する ID プロバイダ トークンのクレームの名前を入力します。
- [User Claim] フィールドに、各ユーザーを識別するクレームを入力します。多くのプロバイダのデフォルトのクレームは
subです。ID プロバイダによっては、emailやnameなどの他のクレームを選択できます。名前が競合しないように、email以外のクレームには、発行元の URL が先頭に付加されます。 - 省略可: [カスタム属性] セクションで [ペアを追加] をクリックし、ユーザーに関する追加のクレーム(部門やプロフィール写真の URL など)の Key-Value ペアを入力します。
- ID プロバイダに追加のスコープが必要な場合は、[スコープ] フィールドに、ID プロバイダに送信するカンマ区切りのスコープを入力します。
- [追加パラメータ] セクションに、ID プロバイダが必要とする追加の Key-Value ペア(カンマ区切り)を入力します。グループを承認する場合は、
resource=token-groups-claimを渡します。 - [次へ] をクリックします。
- [OIDC プロバイダの認証局] フィールドに、ID プロバイダの base64 でエンコードされた PEM エンコード証明書を入力します。詳細については、Wikipedia の Privacy-Enhanced Mail をご覧ください。
[初期管理者を指定する] セクションで、次の操作を行います。
- 個々のユーザーまたはグループを初期管理者として追加するかどうかを選択します。
- [ユーザー名またはグループ エイリアス] フィールドに、組織にアクセスするユーザーまたはグループのメールアドレスを入力します。管理者の場合は、メールアドレス(
kiran@example.comなど)を入力します。接頭辞は、ユーザー名の前に追加されます(例:myidp-kiran@example.com)。 - [次へ] をクリックします。
選択内容を確認し、[設定] をクリックします。
新しい ID プロバイダ プロファイルが ID プロファイル リストに表示されます。
API
ID プロバイダを組織に接続するには、グローバル IdentityProviderConfig カスタム リソースを作成します。
IdentityProviderConfigカスタム リソース YAML ファイル(pa-idp-oidc.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.yamlGLOBAL_API_SERVER_KUBECONFIG変数は、グローバル API サーバーの kubeconfig ファイルのパスに置き換えます。
既存の SAML プロバイダに接続する
既存の SAML プロバイダに接続する手順は次のとおりです。
コンソール
- GDC コンソールにログインします。次の例は、
org-1という組織にログインした後のコンソールを示しています。
- ナビゲーション メニューで、[Identity and Access] > [Identity] をクリックします。
- [Add Identity Provider] をクリックします。
[ID プロバイダを構成する] セクションで、次の操作を行います。
- [ID プロバイダ] プルダウン メニューで、[Security Assertion Markup Language(SAML)] を選択します。
- [ID プロバイダ名] を入力します。
- [Identity ID] フィールドに、ID プロバイダに認証リクエストを行うクライアント アプリケーションの ID を入力します。
- [SSO URI] フィールドに、プロバイダのシングル サインオン エンドポイントの URL を入力します。例:
https://www.idp.com/saml/sso。 [ID プロバイダの接頭辞] フィールドに接頭辞を入力します。接頭辞は、ユーザーとグループのクレームの先頭に追加されます。接頭辞は、異なる ID プロバイダ構成を区別します。たとえば、
myidpの接頭辞を設定すると、ユーザー クレームがmyidp-username@example.comとして表示され、グループ クレームがmyidp-group@example.comとして表示されることがあります。グループに RBAC 権限を割り当てる際にも、この接頭辞を含める必要があります。セキュリティを強化するには、有効期間が 5 ~ 10 分のアサーションを発行するように SAML プロバイダを構成します。この設定は、SAML プロバイダの設定で構成できます。
省略可: [SAML アサーション] セクションで、[暗号化 SAML アサーションを有効にする] を選択します。
暗号化された SAML アサーションを有効にするには、IAM 組織管理者に IdP 連携管理者(
idp-federation-admin)ロールを付与するよう依頼します。- [暗号化アサーション証明書] フィールドに、暗号化証明書を PEM 形式で入力します。暗号化証明書は SAML プロバイダから取得します。
- [暗号化アサーション キー] フィールドに秘密鍵を入力します。復号鍵は、SAML プロバイダの生成後に受け取ります。
省略可: [SAML Signed Requests] セクションで、[Enable signed SAML requests] を選択します。
- [署名証明書] フィールドに、PEM ファイル形式の署名証明書を入力します。SAML プロバイダが署名証明書を発行します。
- [署名鍵] フィールドに、PEM ファイル形式の署名鍵を入力します。SAML プロバイダが署名鍵を設定して生成します。
[次へ] をクリックします。
[属性の構成] ページで、次の操作を行います。
- [IDP certificate] フィールドに、ID プロバイダの base64 でエンコードされた PEM エンコード証明書を入力します。詳細については、Wikipedia の Privacy-Enhanced Mail をご覧ください。
- 文字列を作成するには、ヘッダーを含めた証明書を
base64でエンコードします。 - 結果の文字列は 1 行で含めます。例:
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==。
- 文字列を作成するには、ヘッダーを含めた証明書を
- [追加の IDP 証明書] フィールドに、追加の証明書を入力します。
- [ユーザー属性] フィールドに、各ユーザーを識別する属性を入力します。多くのプロバイダのデフォルト属性は
subです。ID プロバイダによっては、emailやnameなどの他の属性を選択できます。名前が競合しないように、email以外の属性には、発行元の URL が先頭に付加されます。 - [グループ属性] フィールドに、ユーザーのグループ情報を保持する ID プロバイダ トークンの属性名を入力します。
- 省略可: [属性のマッピング] セクションで [ペアを追加] をクリックし、ユーザーに関する追加属性(部門やプロフィール写真の URL など)の Key-Value ペアを入力します。
- [次へ] をクリックします。
- [IDP certificate] フィールドに、ID プロバイダの base64 でエンコードされた PEM エンコード証明書を入力します。詳細については、Wikipedia の Privacy-Enhanced Mail をご覧ください。
[初期管理者を指定する] セクションで、次の操作を行います。
- 個々のユーザーまたはグループを初期管理者として追加するかどうかを選択します。
- [ユーザー名またはグループ エイリアス] フィールドに、組織にアクセスするユーザーまたはグループのメールアドレスを入力します。管理者の場合は、メールアドレス(
kiran@example.comなど)を入力します。接頭辞は、ユーザー名の前に追加されます(例:myidp-kiran@example.com)。 - [次へ] をクリックします。
[確認] ページで、各 ID 構成のすべての値を確認してから続行します。
[戻る] をクリックして前のページに戻り、必要な修正を行います。
[Setup] をクリックします。
新しい ID プロバイダ プロファイルが ID プロファイル リストに表示されます。
API
ID プロバイダを組織に接続するには、グローバル IdentityProviderConfig カスタム リソースを作成します。
IdentityProviderConfigカスタム リソース YAML ファイル(pa-idp-saml.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.yamlGLOBAL_API_SERVER_KUBECONFIG変数は、グローバル API サーバーの kubeconfig ファイルのパスに置き換えます。
既存の ID プロバイダを削除する
GDC コンソールを使用して既存の ID プロバイダを削除します。
- GDC コンソールにログインします。
- プロジェクト セレクタで、ID プロバイダを削除する組織を選択します。
- ナビゲーション メニューで、[Identity and Access] > [Identity] をクリックします。
1 つ以上の ID プロバイダの名前の横にあるチェックボックスをオンにします。
選択した ID プロバイダの数と [削除] ボタンを示すメッセージが表示されます。
[削除] をクリックします。