0 / 0
資料の 英語版 に戻る

ワークロード ID フェデレーションの例

最終更新: 2024年11月28日
ワークロード ID フェデレーションの例

Google BigQuery、 Google Cloud Pub/Sub、および Google Cloud Storage 接続のワークロード ID フェデレーションは、 OpenID Connect (OIDC) または SAML 2.0をサポートする任意の ID プロバイダーによってサポートされます。

これらの例は、 AWS と Amazon Cognito および Microsoft Azure用です。

AWS

Amazon Cognito でのワークロード ID フェデレーションの構成

  1. Amazon 資料の説明に従って、Cognito を使用して OIDC ID プロバイダー (IdP) を作成します。

    詳細については、Amazon Cognitoを始めるを参照してください。

  2. AWS コンソールを使用して、 IdP でグループとユーザーを作成します。 または、 AWS CLI を使用できます。

    CLIENT_ID=YourClientId
    ISSUER_URL=https://cognito-idp.YourRegion.amazonaws.com/YourPoolId
    POOL_ID=YourPoolId
    USERNAME=YourUsername
    PASSWORD=YourPassword
    GROUPNAME=YourGroupName
    
    aws cognito-idp admin-create-user --user-pool-id $POOL_ID --username $USERNAME --temporary-password Temp-Pass1
    aws cognito-idp admin-set-user-password --user-pool-id $POOL_ID --username $USERNAME --password $PASSWORD --permanent
    aws cognito-idp create-group --group-name $GROUPNAME --user-pool-id $POOL_ID
    aws cognito-idp admin-add-user-to-group --user-pool-id $POOL_ID --username $USERNAME --group-name $GROUPNAME
    
  3. AWS コンソールから、 「ホストされた UI の表示 (View Hosted UI)」 をクリックし、ブラウザーで IDP UI にログインして、新しいパスワード・チャレンジが解決されたことを確認します。

  4. AWS CLI を使用して IdToken を取得します。

    aws cognito-idp admin-initiate-auth --auth-flow ADMIN_USER_PASSWORD_AUTH --client-id $CLIENT_ID --auth-parameters USERNAME=$USERNAME,PASSWORD=$PASSWORD --user-pool-id $POOL_ID
    

    Amazon Cognito User Pools 認証フローの詳細については、AdminInitiateAuth を参照してください。

Amazon Cognito 用に Google Cloud を構成する

Google Cloudでプロバイダーを作成する場合は、以下の設定を使用します。

  • 「発行者 (URL)」https://cognito-idp.YourRegion.amazonaws.com/YourPoolIdに設定します。
  • 「許可されたオーディエンス」 をクライアント ID に設定します。
  • 「属性マッピング」の下で、 google.subjectassertion.subにマップします。

Amazon Cognito ワークロード ID 連携との接続を作成します

  1. 「アクセス・トークンを使用したワークロード ID フェデレーション」 認証方式を選択します。

  2. 「セキュリティー・トークン・サービス対象者」 フィールドには、以下の形式を使用します。

    //iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID
    
  3. 「サービス・アカウント E メール」に、偽名を使用する Google サービス・アカウントの E メール・アドレスを入力します。 詳細については、外部ワークロード用のサービスアカウントの作成を参照してください。

  4. (オプション) サービス・アカウント・トークン存続時間 の値を秒単位で指定します。 サービス・アカウント・アクセス・トークンのデフォルトの存続時間は 1 時間です。 詳細については、URL ソースのクレデンシャルを参照してください。

  5. 「トークン・フォーマット」Text に設定します。

  6. 「トークン・タイプ」ID token に設定します。

Azure

Azure でのワークロード ID フェデレーションの構成

  1. AzureADのアプリケーションプリンシパルとサービスプリンシパルを作成します。

  2. アプリケーションの 「アプリケーション ID URI」 を設定します。 デフォルトのアプリケーション ID URI (api://APPID) を使用することも、カスタム URI を指定することもできます。

    管理対象 ID の作成手順はスキップできます。

  3. 指示に従って新しいアプリケーションシークレットを作成し、REST APIでアクセストークンを取得してください。

    詳細については、「 Azureでワークロード ID フェデレーションを構成する」を参照してください。

Azure 用に Google Cloud を構成します。

  1. 指示に従ってください:ワークロード ID フェデレーションを構成する
  2. 指示に従ってください:ワークロード ID プールとプロバイダを作成します。 プロバイダーを構成するときは、以下の設定を使用します。
    • 「発行者 (URL)」https://sts.windows.net/TENANTID/に設定します。ここで、 TENANTID は、 Azure Active Directoryのセットアップ時に受け取ったテナント ID です。
    • 「許可されるオーディエンス (Allowed audience)」 を、アプリ登録のセットアップ時に受け取ったクライアント ID に設定します。 または、 Azureでアプリケーション ID をセットアップしたときに使用した別の アプリケーション ID URI を指定します。
    • 「属性マッピング」の下で、 google.subjectassertion.subにマップします。

Azure ワークロード ID 連携を使用した接続の作成

  1. 以下のいずれかの認証方式を選択します。

    • アクセス・トークンを使用したワークロード ID のフェデレーション
    • トークン URL を使用した ワークロード ID のフェデレーション
  2. Security Token Serviceのオーディエンス・フィールドには、『Authenticate a workload that uses REST API』に記載されている形式を使用する。 次に例を示します。

    //iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID
    
  3. 「サービス・アカウント E メール」に、偽名を使用する Google サービス・アカウントの E メール・アドレスを入力します。 詳細については、外部ワークロード用のサービスアカウントの作成を参照してください。

  4. (オプション) サービス・アカウント・トークン存続時間 の値を秒単位で指定します。 サービス・アカウント・アクセス・トークンのデフォルトの存続時間は 1 時間です。 詳細については、URL ソースのクレデンシャルを参照してください。

  5. 「トークン URL を使用したワークロード ID フェデレーション」を指定した場合は、以下の値を使用します。

    • トークン URL: https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token。 この URL は、 Azureからトークンをフェッチします。
    • HTTP メソッド: POST
    • HTTP ヘッダー: "Content-Type"="application/x-www-form-urlencoded;charset=UTF-8","Accept"="application/json"
    • 要求本体: grant_type=client_credentials&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&scope=APPLICATION_ID_URI/.default
  6. 「トークン・タイプ」で、 OpenID Connect (OIDC) 仕様に準拠する ID プロバイダーの 「ID トークン」 を選択します。 詳しくは、トークン・タイプを参照のこと。

  7. 「トークン・フォーマット」 オプションは、その認証の選択によって異なります。

    • アクセス・トークンを使用したワークロード ID フェデレーション: 「アクセス・トークン」 フィールドにロー・トークン値を指定した場合は、 「テキスト」 を選択します。
    • トークン URL を使用した Workload Identity Federation: access_tokenという名前のフィールドに返されるアクセス・トークンを使用した、JSON 形式のトークン URL からの応答の場合は、以下の設定を使用します。
      • トークン・フォーマット: JSON
      • トークン・フィールド名: access_token

もっと見る