このページでは、有効期間の短いサービス アカウントの認証情報を作成する方法について説明します。これにより、サービス アカウントの権限を借用できます。作成するトークンの種類に応じて、有効期間の短いトークンは、サービス アカウントに関連付けられた ID(ID トークンの場合)または権限(アクセス トークンの場合)を提供します。
システム アーキテクチャで一連のトークン生成呼び出しを使用する必要がある場合は、複数のサービス アカウントで構成される委任チェーンを使用できます。ほとんどの場合、このページで説明するように直接的な方法で十分です。
始める前に
- 
  
   
   
     
   
  
   
   
     
   
  
 
   
 
 
 
   
 
 
  
  
    
      Enable the IAM and Service Account Credentials APIs: Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable iam.googleapis.com iamcredentials.googleapis.com 
- 認証を設定する。 - Select the tab for how you plan to use the samples on this page: - Console- When you use the Cloud de Confiance console to access Cloud de Confiance by S3NS services and APIs, you don't need to set up authentication. - gcloud- Google Cloud CLI をインストールし、連携 ID を使用して gcloud CLI にログインします。 ログイン後、次のコマンドを実行して Google Cloud CLI を初期化します。 - gcloud init- Go- ローカル開発環境でこのページの Go サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。 - Google Cloud CLI をインストールし、連携 ID を使用して gcloud CLI にログインします。 - Create local authentication credentials for your user account: - gcloud auth application-default login - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳細については、 Cloud de Confiance 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。 - Java- ローカル開発環境でこのページの Java サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。 - Google Cloud CLI をインストールし、連携 ID を使用して gcloud CLI にログインします。 - Create local authentication credentials for your user account: - gcloud auth application-default login - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳細については、 Cloud de Confiance 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。 - Node.js- ローカル開発環境でこのページの Node.js サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。 - Google Cloud CLI をインストールし、連携 ID を使用して gcloud CLI にログインします。 - Create local authentication credentials for your user account: - gcloud auth application-default login - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳細については、 Cloud de Confiance 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。 - Python- ローカル開発環境でこのページの Python サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。 - Google Cloud CLI をインストールし、連携 ID を使用して gcloud CLI にログインします。 - Create local authentication credentials for your user account: - gcloud auth application-default login - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳細については、 Cloud de Confiance 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。 - REST- このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。 - Google Cloud CLI をインストールし、連携 ID を使用して gcloud CLI にログインします。 - 詳細については、 Cloud de Confiance 認証ドキュメントの REST を使用して認証するをご覧ください。 - IAM サービス アカウントについて理解します。 - サービス アカウントの権限借用について理解します。 - 必要なトークンの種類を理解し、次のセクションで説明されている必要な手順を実施します。 - 有効期間の短いアクセス トークンを作成する- ほとんどの Google API で、認証にアクセス トークンを利用できます。サービス アカウントの権限を借用してアクセス トークンを生成した場合、アクセス トークンに更新トークンがありません。つまり、トークンの有効期限が切れた場合は、権限借用プロセスを繰り返して新しいトークンを生成する必要があります。 - 詳細については、アクセス トークンをご覧ください。 - 有効期間の短いアクセス トークンを作成するには、次の操作を行います。 - 必要な権限を提供する- 直接リクエストには、認証情報をリクエストする呼び出し元と、認証情報が作成されるサービス アカウントの 2 つの ID が含まれます。権限を設定する方法は、呼び出し元がサービス アカウントとして認証されるか、ユーザー アカウントとして認証されるかによって異なります。 - ローカル開発環境で、このページで説明する REST コマンドまたは gcloud CLI コマンドを実行する場合、呼び出し元をユーザー認証情報で表すことができます。Compute Engine で実行されているアプリケーションなどの自動ワークロードの場合、呼び出し元はサービス アカウントで表す必要があります。 - サービス アカウント- 呼び出し元のアプリケーションがサービス アカウントを ID として使用する場合、次のプリンシパルが関係します。 - 発信者のサービス アカウント( - CALLER_SA)- このサービス アカウントは呼び出し元のアプリケーションを表し、有効期間の短い認証情報のリクエストを発行します。 
- 
    権限保持サービス アカウント( PRIV_SA)このサービス アカウントには、有効期間の短いトークンに必要な IAM ロールが付与されています。これは、有効期間の短いトークンが作成されるサービス アカウントです。 
 - PRIV_SAに有効期間の短い認証情報を作成する権限を- CALLER_SAに付与するには、- PRIV_SAに対するサービス アカウント トークン作成者ロール(- roles/iam.serviceAccountTokenCreator)を- CALLER_SAに付与します。- PRIV_SAに必要なロールを付与します。- コンソール- 
        Cloud de Confiance コンソールで、[サービス アカウント] ページに移動します。 
- プロジェクトを選択します。
- 権限を保持しているサービス アカウントのメールアドレス(PRIV_SA)をクリックします。
- [権限] タブをクリックします。
- [このサービス アカウントにアクセスできるプリンシパル] で、[アクセスを許可] をクリックします。
- 
        呼び出し元のアカウント( CALLER_SA)のメールアドレスを入力します。例: demo@my-project.s3ns.iam.gserviceaccount.com
- サービス アカウント トークン作成者ロール(roles/iam.serviceAccountTokenCreator)を選択します。
- [保存] をクリックして、サービス アカウントにロールを付与します。
 - gcloud- gcloud iam service-accounts add-iam-policy-bindingコマンドで、サービス アカウントにロールを付与します。- 後述のコマンドデータを使用する前に、次のように置き換えます。 - 
    PRIV_SA: トークンが生成される権限保持サービス アカウントのメールアドレス。
- 
    CALLER_SA: 有効期間の短いトークンをリクエストするアプリケーションを表すサービス アカウントのメールアドレス。
 - 次のコマンドを実行します。 - Linux、macOS、Cloud Shell- gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json - Windows(PowerShell)- gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json - Windows(cmd.exe)- gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json - 次のようなレスポンスが返されます。 - Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "serviceAccount:CALLER_SA" ], "role": "roles/iam.serviceAccountTokenCreator" } ], "etag": "BwXhCB4eyjY=", "version": 1 }- REST- 
        PRIV_SAの許可ポリシーを読み取ります。serviceAccounts.getIamPolicyメソッドで、サービス アカウントの許可ポリシーを取得します。リクエストのデータを使用する前に、次のように置き換えます。 - PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。
- 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- POLICY_VERSION: 返されるポリシー バージョン。リクエストでは、最新のポリシー バージョン(ポリシー バージョン 3)を指定する必要があります。詳細については、ポリシーの取得時にポリシー バージョンを指定するをご覧ください。
 HTTP メソッドと URL: POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy リクエストの本文(JSON): { "options": { "requestedPolicyVersion": POLICY_VERSION } }リクエストを送信するには、次のいずれかのオプションを展開します。 次のような JSON レスポンスが返されます。 { "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }サービス アカウントにロールを付与していない場合、レスポンスには etag値のみが含まれます。このetag値を次のステップに含めます。
- 
        許可ポリシーを変更して、 CALLER_SAにサービス アカウント トークン作成者のロール(roles/iam.serviceAccountTokenCreator)を付与します。たとえば、前の手順のサンプル レスポンスを変更するには、次のコードを追加します。 { "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] } 
- 
        更新された許可ポリシーを書き込みます。 serviceAccounts.setIamPolicyメソッドは、サービス アカウントに更新後の許可ポリシーを設定します。リクエストのデータを使用する前に、次のように置き換えます。 - PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。
- 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- POLICY_VERSION: 返されるポリシー バージョン。リクエストでは、最新のポリシー バージョン(ポリシー バージョン 3)を指定する必要があります。詳細については、ポリシーの取得時にポリシー バージョンを指定するをご覧ください。
- 
    POLICY: 設定するポリシーの JSON 表現。ポリシーの形式については、ポリシー リファレンスをご覧ください。たとえば、前の手順で示した許可ポリシーを設定するには、 POLICYを次のように置き換えます。ここで、CALLER_SAは、有効期間が短いトークンを作成するサービス アカウントです。{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] } 
 HTTP メソッドと URL: POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy リクエストの本文(JSON): { "policy": POLICY }リクエストを送信するには、次のいずれかのオプションを展開します。 レスポンスには、更新された許可ポリシーが含まれます。 
 - ユーザー認証情報- Google Cloud CLI を使用して有効期間の短いトークンを生成する場合、またはローカル開発環境から有効期間の短いトークンを生成する場合は、ユーザー アカウントを使用してトークンを生成できます。多くの場合、独自のユーザー アカウントを使用できます。 - ユーザー アカウントを使用して有効期間の短いトークンを生成する場合、次の ID が関係します。 - 呼び出し元アカウント( - CALLER_ACCOUNT)- このユーザー アカウントは、権限を保持しているサービス アカウントに有効期間の短い認証情報を生成するために使用されます。 
- 権限保持サービス アカウント( - PRIV_SA)- このサービス アカウントには、有効期間の短いトークンに必要な IAM ロールが付与されています。これは、有効期間の短いトークンが作成されるサービス アカウントです。 
 - CALLER_ACCOUNTが- PRIV_SAに有効期間の短い認証情報を作成できるようにするには、- PRIV_SAに対するサービス アカウント トークン作成者ロール(- roles/iam.serviceAccountTokenCreator)を- CALLER_ACCOUNTに付与します。- PRIV_SAに必要なロールを付与します。- コンソール- 
        Cloud de Confiance コンソールで、[サービス アカウント] ページに移動します。 
- プロジェクトを選択します。
- 権限を保持しているサービス アカウントのメールアドレス(PRIV_SA)をクリックします。
- [権限] タブをクリックします。
- [このサービス アカウントにアクセスできるプリンシパル] で、[アクセスを許可] をクリックします。
- 
        呼び出し元のアカウントのプリンシパル ID( CALLER_ACCOUNT)を入力します。例: //iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com
- サービス アカウント トークン作成者ロール(roles/iam.serviceAccountTokenCreator)を選択します。
- [保存] をクリックして、ユーザー アカウントにロールを付与します。
 - gcloud- gcloud iam service-accounts add-iam-policy-bindingコマンドで、サービス アカウントにロールを付与します。- 後述のコマンドデータを使用する前に、次のように置き換えます。 - 
    PRIV_SA: トークンが生成される権限保持サービス アカウントのメールアドレス。
- 
    CALLER_ACCOUNT: 有効期間の短いトークンのリクエストに使用するユーザー アカウントのメールアドレス。
 - 次のコマンドを実行します。 - Linux、macOS、Cloud Shell- gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json - Windows(PowerShell)- gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json - Windows(cmd.exe)- gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json - 次のようなレスポンスが返されます。 - Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ], "role": "roles/iam.serviceAccountTokenCreator" } ], "etag": "BwX1ZbefjXU=", "version": 1 }- REST- 
        PRIV_SAの許可ポリシーを読み取ります。serviceAccounts.getIamPolicyメソッドで、サービス アカウントの許可ポリシーを取得します。リクエストのデータを使用する前に、次のように置き換えます。 - PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。
- 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- POLICY_VERSION: 返されるポリシー バージョン。リクエストでは、最新のポリシー バージョン(ポリシー バージョン 3)を指定する必要があります。詳細については、ポリシーの取得時にポリシー バージョンを指定するをご覧ください。
 HTTP メソッドと URL: POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy リクエストの本文(JSON): { "options": { "requestedPolicyVersion": POLICY_VERSION } }リクエストを送信するには、次のいずれかのオプションを展開します。 次のような JSON レスポンスが返されます。 { "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }サービス アカウントにロールを付与していない場合、レスポンスには etag値のみが含まれます。このetag値を次のステップに含めます。
- 
        許可ポリシーを変更して、 CALLER_ACCOUNTにサービス アカウント トークン作成者のロール(roles/iam.serviceAccountTokenCreator)を付与します。たとえば、前の手順のサンプル レスポンスを変更するには、次のコードを追加します。 { "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] } 
- 
        更新された許可ポリシーを書き込みます。 serviceAccounts.setIamPolicyメソッドは、サービス アカウントに更新後の許可ポリシーを設定します。リクエストのデータを使用する前に、次のように置き換えます。 - PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。
- 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- POLICY_VERSION: 返されるポリシー バージョン。リクエストでは、最新のポリシー バージョン(ポリシー バージョン 3)を指定する必要があります。詳細については、ポリシーの取得時にポリシー バージョンを指定するをご覧ください。
- 
    POLICY: 設定するポリシーの JSON 表現。ポリシーの形式については、ポリシー リファレンスをご覧ください。たとえば、前の手順で示した許可ポリシーを設定するには、 POLICYを次のように置き換えます。ここで、CALLER_ACCOUNTは、有効期間が短いトークンを作成するユーザー アカウントです。{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "CALLER_ACCOUNT" ] } ] } 
 HTTP メソッドと URL: POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy リクエストの本文(JSON): { "policy": POLICY }リクエストを送信するには、次のいずれかのオプションを展開します。 レスポンスには、更新された許可ポリシーが含まれます。 
 - アクセス トークンを生成する- gcloud CLI、REST API、または Cloud クライアント ライブラリと Google API クライアント ライブラリを使用して、OAuth 2.0 アクセス トークンを生成できます。 - REST API を使用していて、トークンの有効期間を延長できるようにシステムが構成されている場合は、有効期間がデフォルトより長いトークンを作成できます。Google Cloud CLI では、トークンの有効期間の設定はサポートされていません。 - 以下のサンプルは、ローカル開発環境で使用するように設計されています。呼び出し元は、サービス アカウントではなくユーザー アカウントである必要があります。 - サービス アカウントの OAuth 2.0 アクセス トークンを生成するには、次の手順を実施します。 - gcloud- 呼び出し元のユーザー アカウントで gcloud CLI にログインしていることを確認します。 
- gcloud auth print-access-tokenコマンドを使用して、サービス アカウントのトークンを生成します。- 後述のコマンドデータを使用する前に、次のように置き換えます。 - 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
 - 次のコマンドを実行します。 - Linux、macOS、Cloud Shell- gcloud auth print-access-token --impersonate-service-account=PRIV_SA - Windows(PowerShell)- gcloud auth print-access-token --impersonate-service-account=PRIV_SA - Windows(cmd.exe)- gcloud auth print-access-token --impersonate-service-account=PRIV_SA - 次のようなレスポンスが返されます。 - WARNING: This command is using service account impersonation. All API calls will be executed as [my-sa@my-project.s3ns.iam.gserviceaccount.com]. ya29.c.b0AXv0zTPnzTnDV8F8Aj5Fgy46Yf2v_v8eZIoKq7xGpfbpXuy23aQ1693m3gAuE8AZga7w6kdagN7a9bfdDYbdeoGY0CMHOClsCwIdutL7k_RFC672lOCbUgF5hS8Iu2nCA8hle-11LJXBLmaxFmH08ZTBJLuDrWSNd8cYqGYFunSC1K1qLIPBF18tsa0hxVgKPucI8b1A9L8_MK1JGLGcr0n7-zY77_lmbcdODG3NmIbLOGWOutjJgqSO_YoeCKK2QTUZIp5PG7RkKlXWnmYJA9pEahzNoQrs5sWZctc2bia9af_ITzqqlXC9h1Kj5-me6e8rd734MJvpagqYazRk0gGWpMb03XmMGpgPc_FBp4pnX9rGOzW83SNpcDz8zeFO1Q0Bo3N7CuZougjRce0y8I2_4rtw5ME_nV3wrCWa.................................................................................................................................................................................................................................................................................................. 
- 
    
 - REST- Service Account Credentials API の - serviceAccounts.generateAccessTokenメソッドによって、サービス アカウントの OAuth 2.0 アクセス トークンが生成されます。- リクエストのデータを使用する前に、次のように置き換えます。 - 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- 
    LIFETIME: アクセス トークンが期限切れになるまでの秒数。例:300sデフォルトでは、トークンの最大有効期間は 1 時間(3,600 秒)です。これらのトークンの最大有効期間を 12 時間(43,200 秒)まで延長するには、 constraints/iam.allowServiceAccountCredentialLifetimeExtensionリスト型制約が含まれる組織のポリシーにサービス アカウントを追加します。
 - HTTP メソッドと URL: - POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/PRIV_SA:generateAccessToken - リクエストの本文(JSON): - { "scope": [ "https://www.googleapis.com/auth/cloud-platform" ], "lifetime": "LIFETIME" }- リクエストを送信するには、次のいずれかのオプションを展開します。 - generateAccessTokenリクエストが成功した場合、レスポンスの本文には OAuth 2.0 アクセス トークンと有効期限が含まれます。- expireTimeに達するまで、サービス アカウントの代わりに- accessTokenをリクエストの認証に使用できます。- { "accessToken": "eyJ0eXAi...NiJ9", "expireTime": "2020-04-07T15:01:23.045123456Z" }- Go- Java- Node.js- Python- OpenID Connect(OIDC)ID トークンを作成する- ID トークンは、OpenID Connect(OIDC)仕様に準拠しています。ID トークンは一部のサービスとアプリケーションで使用できます。 - 詳細については、ID トークンをご覧ください。 - ID トークンを作成するには、次の操作を行います。 - 
ID トークンを作成するには、サービス アカウントの OpenID Connect ID トークン作成者のロール( roles/iam.serviceAccountOpenIdTokenCreator)を使用します。これは、他の種類のトークンに使用するロールとは異なります。
 - 必要な権限を提供する- 直接リクエストには、認証情報をリクエストする呼び出し元と、認証情報が作成されるサービス アカウントの 2 つの ID が含まれます。権限を設定する方法は、呼び出し元がサービス アカウントとして認証されるか、ユーザー アカウントとして認証されるかによって異なります。 - ローカル開発環境で、このページで説明する REST コマンドまたは gcloud CLI コマンドを実行する場合、呼び出し元をユーザー認証情報で表すことができます。Compute Engine で実行されているアプリケーションなどの自動ワークロードの場合、呼び出し元はサービス アカウントで表す必要があります。 - サービス アカウント- 呼び出し元のアプリケーションがサービス アカウントを ID として使用する場合、次のプリンシパルが関係します。 - 発信者のサービス アカウント( - CALLER_SA)- このサービス アカウントは呼び出し元のアプリケーションを表し、有効期間の短い認証情報のリクエストを発行します。 
- 
    権限保持サービス アカウント( PRIV_SA)このサービス アカウントには、有効期間の短いトークンに必要な IAM ロールが付与されています。これは、有効期間の短いトークンが作成されるサービス アカウントです。 
 - 有効期間の短い - PRIV_SAの認証情報を作成する権限を- CALLER_SAに付与するには、- PRIV_SAに対するサービス アカウントの OpenID Connect ID トークン作成者ロール(- roles/iam.serviceAccountOpenIdTokenCreator)を- CALLER_SAに付与します。- PRIV_SAに必要なロールを付与します。- コンソール- 
        Cloud de Confiance コンソールで、[サービス アカウント] ページに移動します。 
- プロジェクトを選択します。
- 権限を保持しているサービス アカウントのメールアドレス(PRIV_SA)をクリックします。
- [権限] タブをクリックします。
- [このサービス アカウントにアクセスできるプリンシパル] で、[アクセスを許可] をクリックします。
- 
        呼び出し元のアカウント( CALLER_SA)のメールアドレスを入力します。例: demo@my-project.s3ns.iam.gserviceaccount.com
- 
        サービス アカウントの OpenID Connect ID トークン作成者ロール(roles/iam.serviceAccountOpenIdTokenCreator)を選択します。
- [保存] をクリックして、サービス アカウントにロールを付与します。
 - gcloud- gcloud iam service-accounts add-iam-policy-bindingコマンドで、サービス アカウントにロールを付与します。- 後述のコマンドデータを使用する前に、次のように置き換えます。 - 
    PRIV_SA: トークンが生成される権限保持サービス アカウントのメールアドレス。
- 
    CALLER_SA: 有効期間の短いトークンをリクエストするアプリケーションを表すサービス アカウントのメールアドレス。
 - 次のコマンドを実行します。 - Linux、macOS、Cloud Shell- gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json - Windows(PowerShell)- gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json - Windows(cmd.exe)- gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json - 次のようなレスポンスが返されます。 - Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "serviceAccount:CALLER_SA" ], "role": "roles/iam.serviceAccountOpenIdTokenCreator" } ], "etag": "BwXhCB4eyjY=", "version": 1 }- REST- 
        PRIV_SAの許可ポリシーを読み取ります。serviceAccounts.getIamPolicyメソッドで、サービス アカウントの許可ポリシーを取得します。リクエストのデータを使用する前に、次のように置き換えます。 - PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。
- 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- POLICY_VERSION: 返されるポリシー バージョン。リクエストでは、最新のポリシー バージョン(ポリシー バージョン 3)を指定する必要があります。詳細については、ポリシーの取得時にポリシー バージョンを指定するをご覧ください。
 HTTP メソッドと URL: POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy リクエストの本文(JSON): { "options": { "requestedPolicyVersion": POLICY_VERSION } }リクエストを送信するには、次のいずれかのオプションを展開します。 次のような JSON レスポンスが返されます。 { "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }サービス アカウントにロールを付与していない場合、レスポンスには etag値のみが含まれます。このetag値を次のステップに含めます。
- 
        許可ポリシーを変更して、 CALLER_SAにサービス アカウントの OpenID Connect ID トークン作成者ロール(roles/iam.serviceAccountOpenIdTokenCreator)を付与します。たとえば、前の手順のサンプル レスポンスを変更するには、次のコードを追加します。 { "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountOpenIdTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] } 
- 
        更新された許可ポリシーを書き込みます。 serviceAccounts.setIamPolicyメソッドは、サービス アカウントに更新後の許可ポリシーを設定します。リクエストのデータを使用する前に、次のように置き換えます。 - PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。
- 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- POLICY_VERSION: 返されるポリシー バージョン。リクエストでは、最新のポリシー バージョン(ポリシー バージョン 3)を指定する必要があります。詳細については、ポリシーの取得時にポリシー バージョンを指定するをご覧ください。
- 
    POLICY: 設定するポリシーの JSON 表現。ポリシーの形式については、ポリシー リファレンスをご覧ください。たとえば、前の手順で示した許可ポリシーを設定するには、 POLICYを次のように置き換えます。ここで、CALLER_SAは、有効期間が短いトークンを作成するサービス アカウントです。{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountOpenIdTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] } 
 HTTP メソッドと URL: POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy リクエストの本文(JSON): { "policy": POLICY }リクエストを送信するには、次のいずれかのオプションを展開します。 レスポンスには、更新された許可ポリシーが含まれます。 
 - ユーザー認証情報- Google Cloud CLI を使用して有効期間の短いトークンを生成する場合、またはローカル開発環境から有効期間の短いトークンを生成する場合は、ユーザー アカウントを使用してトークンを生成できます。多くの場合、独自のユーザー アカウントを使用できます。 - ユーザー アカウントを使用して有効期間の短いトークンを生成する場合、次の ID が関係します。 - 呼び出し元アカウント( - CALLER_ACCOUNT)- このユーザー アカウントは、権限を保持しているサービス アカウントに有効期間の短い認証情報を生成するために使用されます。 
- 権限保持サービス アカウント( - PRIV_SA)- このサービス アカウントには、有効期間の短いトークンに必要な IAM ロールが付与されています。これは、有効期間の短いトークンが作成されるサービス アカウントです。 
 - CALLER_ACCOUNTが- PRIV_SAに有効期間の短い認証情報を作成できるようにするには、- PRIV_SAに対するサービス アカウントの OpenID Connect ID トークン作成者ロール(- roles/iam.serviceAccountOpenIdTokenCreator)を- CALLER_ACCOUNTに付与します。- PRIV_SAに必要なロールを付与します。- コンソール- 
        Cloud de Confiance コンソールで、[サービス アカウント] ページに移動します。 
- プロジェクトを選択します。
- 権限を保持しているサービス アカウントのメールアドレス(PRIV_SA)をクリックします。
- [権限] タブをクリックします。
- [このサービス アカウントにアクセスできるプリンシパル] で、[アクセスを許可] をクリックします。
- 
        呼び出し元のアカウントのプリンシパル ID( CALLER_ACCOUNT)を入力します。例: //iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com
- 
        サービス アカウントの OpenID Connect ID トークン作成者ロール(roles/iam.serviceAccountOpenIdTokenCreator)を選択します。
- [保存] をクリックして、ユーザー アカウントにロールを付与します。
 - gcloud- gcloud iam service-accounts add-iam-policy-bindingコマンドで、サービス アカウントにロールを付与します。- 後述のコマンドデータを使用する前に、次のように置き換えます。 - 
    PRIV_SA: トークンが生成される権限保持サービス アカウントのメールアドレス。
- 
    CALLER_ACCOUNT: 有効期間の短いトークンのリクエストに使用するユーザー アカウントのメールアドレス。
 - 次のコマンドを実行します。 - Linux、macOS、Cloud Shell- gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json - Windows(PowerShell)- gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json - Windows(cmd.exe)- gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json - 次のようなレスポンスが返されます。 - Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ], "role": "roles/iam.serviceAccountOpenIdTokenCreator" } ], "etag": "BwX1ZbefjXU=", "version": 1 }- REST- 
        PRIV_SAの許可ポリシーを読み取ります。serviceAccounts.getIamPolicyメソッドで、サービス アカウントの許可ポリシーを取得します。リクエストのデータを使用する前に、次のように置き換えます。 - PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。
- 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- POLICY_VERSION: 返されるポリシー バージョン。リクエストでは、最新のポリシー バージョン(ポリシー バージョン 3)を指定する必要があります。詳細については、ポリシーの取得時にポリシー バージョンを指定するをご覧ください。
 HTTP メソッドと URL: POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy リクエストの本文(JSON): { "options": { "requestedPolicyVersion": POLICY_VERSION } }リクエストを送信するには、次のいずれかのオプションを展開します。 次のような JSON レスポンスが返されます。 { "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }サービス アカウントにロールを付与していない場合、レスポンスには etag値のみが含まれます。このetag値を次のステップに含めます。
- 
        許可ポリシーを変更して、 CALLER_ACCOUNTにサービス アカウントの OpenID Connect ID トークン作成者ロール(roles/iam.serviceAccountOpenIdTokenCreator)を付与します。たとえば、前の手順のサンプル レスポンスを変更するには、次のコードを追加します。 { "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountOpenIdTokenCreator", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] } 
- 
        更新された許可ポリシーを書き込みます。 serviceAccounts.setIamPolicyメソッドは、サービス アカウントに更新後の許可ポリシーを設定します。リクエストのデータを使用する前に、次のように置き換えます。 - PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。
- 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- POLICY_VERSION: 返されるポリシー バージョン。リクエストでは、最新のポリシー バージョン(ポリシー バージョン 3)を指定する必要があります。詳細については、ポリシーの取得時にポリシー バージョンを指定するをご覧ください。
- 
    POLICY: 設定するポリシーの JSON 表現。ポリシーの形式については、ポリシー リファレンスをご覧ください。たとえば、前の手順で示した許可ポリシーを設定するには、 POLICYを次のように置き換えます。ここで、CALLER_ACCOUNTは、有効期間が短いトークンを作成するユーザー アカウントです。{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountOpenIdTokenCreator", "members": [ "CALLER_ACCOUNT" ] } ] } 
 HTTP メソッドと URL: POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy リクエストの本文(JSON): { "policy": POLICY }リクエストを送信するには、次のいずれかのオプションを展開します。 レスポンスには、更新された許可ポリシーが含まれます。 
 - ID トークンを生成する- OpenID Connect(OIDC)ID トークンは、gcloud CLI、REST API、または Cloud クライアント ライブラリと Google API クライアント ライブラリを使用して生成できます。 - 以下のサンプルは、ローカル開発環境で使用するように設計されています。呼び出し元は、サービス アカウントではなくユーザー アカウントである必要があります。 - OIDC ID トークンは 1 時間(3,600 秒)有効です。 - サービス アカウントの Google 署名 OIDC ID トークンを生成します。 - gcloud- 呼び出し元のユーザー アカウントで gcloud CLI にログインしていることを確認します。 
- gcloud auth print-identity-tokenコマンドを使用して、サービス アカウントのトークンを生成します。- 後述のコマンドデータを使用する前に、次のように置き換えます。 - 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- 
    AUDIENCE_NAME: トークンのオーディエンス。通常は、トークンのアクセスに使用されるアプリケーションまたはサービスの URL です。
 - 次のコマンドを実行します。 - Linux、macOS、Cloud Shell- gcloud auth print-identity-token --impersonate-service-account=PRIV_SA --audiences="AUDIENCE_NAME" - Windows(PowerShell)- gcloud auth print-identity-token --impersonate-service-account=PRIV_SA --audiences="AUDIENCE_NAME" - Windows(cmd.exe)- gcloud auth print-identity-token --impersonate-service-account=PRIV_SA --audiences="AUDIENCE_NAME" - 次のようなレスポンスが返されます。 - WARNING: This command is using service account impersonation. All API calls will be executed as [my-sa@my-project.s3ns.iam.gserviceaccount.com]. eyJhbGciOiJSUzI1NiIsImtpZDNhMDg4ZDRmZmMjJkYTVmZTM5MDZjY2MiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJ3d3cuZXhhbXBsJhenAiOiIxMTYzwNDYyMDk0ODIiLCJleHAiOjE2NTQ4ODU0MzEsImlhdCI6MTY1NDg4MTgzMSwiaXN6Ly9hY2NvdW50cy5nb29nbGUuY29tIiwic3ViIMDQ2MjA5NDgyIn0.F7mu8IHj5VQdu7ItFrnYAKyGd7YqXuOP_rFLc98q8BaFBycAF1zAQnSnwqnSUXba0UK9PDT_-IOry68qLwBObz4XlX9lk0ehpN0O0W9FcFToKLB6wefXXPd4h7xtuPe5KzmpSOqj2Qqv34HriGw00Nqd-oGSgNY_lZ4wGEf4rT4oQa_kEcrY57Q2G6pwd769BhgeFwoLi5aK_Cv2kvf_zfMszC-xlkP9zwWQ8XinJBwe-qcQBa4NTgrbueNtXsEjccBS366zmw 
- 
    
 - REST- Service Account Credentials API の - serviceAccounts.generateIdTokenメソッドによって、サービス アカウントの OIDC ID トークンが生成されます。- リクエストのデータを使用する前に、次のように置き換えます。 - 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- 
    AUDIENCE_NAME: トークンのオーディエンス。通常は、トークンのアクセスに使用されるアプリケーションまたはサービスの URL です。
 - HTTP メソッドと URL: - POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/PRIV_SA:generateIdToken - リクエストの本文(JSON): - { "audience": "AUDIENCE_NAME", "includeEmail": "true" }- リクエストを送信するには、次のいずれかのオプションを展開します。 - generateIdリクエストが成功した場合、レスポンス本文には 1 時間有効な ID トークンが含まれます。サービス アカウントの代わりに- tokenをリクエストの認証に使用できます。- { "token": "eyJ0eXAi...NiJ9" }- 自己署名 JSON Web Token(JWT)を作成する- 自己署名 JSON Web Token(JWT)はさまざまな状況で役立ちます。たとえば、次のような場合です。 - 独自のアプリケーション間での安全な通信を行う。このシナリオでは、1 つのアプリケーションが、認証目的で別のアプリケーションによって確認できるトークンに署名できます。
- ユーザー、アカウント、デバイスに関する任意のクレームを含む JWT に署名することにより、サービス アカウントを ID プロバイダとして扱う。
 - JWT を作成するには、次の操作を行います。 - 必要な権限を提供する- 直接リクエストには、認証情報をリクエストする呼び出し元と、認証情報が作成されるサービス アカウントの 2 つの ID が含まれます。権限を設定する方法は、呼び出し元がサービス アカウントとして認証されるか、ユーザー アカウントとして認証されるかによって異なります。 - ローカル開発環境で、このページで説明する REST コマンドまたは gcloud CLI コマンドを実行する場合、呼び出し元をユーザー認証情報で表すことができます。Compute Engine で実行されているアプリケーションなどの自動ワークロードの場合、呼び出し元はサービス アカウントで表す必要があります。 - サービス アカウント- 呼び出し元のアプリケーションがサービス アカウントを ID として使用する場合、次のプリンシパルが関係します。 - 発信者のサービス アカウント( - CALLER_SA)- このサービス アカウントは呼び出し元のアプリケーションを表し、有効期間の短い認証情報のリクエストを発行します。 
- 
    権限保持サービス アカウント( PRIV_SA)このサービス アカウントには、有効期間の短いトークンに必要な IAM ロールが付与されています。これは、有効期間の短いトークンが作成されるサービス アカウントです。 
 - PRIV_SAに有効期間の短い認証情報を作成する権限を- CALLER_SAに付与するには、- PRIV_SAに対するサービス アカウント トークン作成者ロール(- roles/iam.serviceAccountTokenCreator)を- CALLER_SAに付与します。- PRIV_SAに必要なロールを付与します。- コンソール- 
        Cloud de Confiance コンソールで、[サービス アカウント] ページに移動します。 
- プロジェクトを選択します。
- 権限を保持しているサービス アカウントのメールアドレス(PRIV_SA)をクリックします。
- [権限] タブをクリックします。
- [このサービス アカウントにアクセスできるプリンシパル] で、[アクセスを許可] をクリックします。
- 
        呼び出し元のアカウント( CALLER_SA)のメールアドレスを入力します。例: demo@my-project.s3ns.iam.gserviceaccount.com
- サービス アカウント トークン作成者ロール(roles/iam.serviceAccountTokenCreator)を選択します。
- [保存] をクリックして、サービス アカウントにロールを付与します。
 - gcloud- gcloud iam service-accounts add-iam-policy-bindingコマンドで、サービス アカウントにロールを付与します。- 後述のコマンドデータを使用する前に、次のように置き換えます。 - 
    PRIV_SA: トークンが生成される権限保持サービス アカウントのメールアドレス。
- 
    CALLER_SA: 有効期間の短いトークンをリクエストするアプリケーションを表すサービス アカウントのメールアドレス。
 - 次のコマンドを実行します。 - Linux、macOS、Cloud Shell- gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json - Windows(PowerShell)- gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json - Windows(cmd.exe)- gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json - 次のようなレスポンスが返されます。 - Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "serviceAccount:CALLER_SA" ], "role": "roles/iam.serviceAccountTokenCreator" } ], "etag": "BwXhCB4eyjY=", "version": 1 }- REST- 
        PRIV_SAの許可ポリシーを読み取ります。serviceAccounts.getIamPolicyメソッドで、サービス アカウントの許可ポリシーを取得します。リクエストのデータを使用する前に、次のように置き換えます。 - PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。
- 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- POLICY_VERSION: 返されるポリシー バージョン。リクエストでは、最新のポリシー バージョン(ポリシー バージョン 3)を指定する必要があります。詳細については、ポリシーの取得時にポリシー バージョンを指定するをご覧ください。
 HTTP メソッドと URL: POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy リクエストの本文(JSON): { "options": { "requestedPolicyVersion": POLICY_VERSION } }リクエストを送信するには、次のいずれかのオプションを展開します。 次のような JSON レスポンスが返されます。 { "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }サービス アカウントにロールを付与していない場合、レスポンスには etag値のみが含まれます。このetag値を次のステップに含めます。
- 
        許可ポリシーを変更して、 CALLER_SAにサービス アカウント トークン作成者のロール(roles/iam.serviceAccountTokenCreator)を付与します。たとえば、前の手順のサンプル レスポンスを変更するには、次のコードを追加します。 { "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] } 
- 
        更新された許可ポリシーを書き込みます。 serviceAccounts.setIamPolicyメソッドは、サービス アカウントに更新後の許可ポリシーを設定します。リクエストのデータを使用する前に、次のように置き換えます。 - PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。
- 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- POLICY_VERSION: 返されるポリシー バージョン。リクエストでは、最新のポリシー バージョン(ポリシー バージョン 3)を指定する必要があります。詳細については、ポリシーの取得時にポリシー バージョンを指定するをご覧ください。
- 
    POLICY: 設定するポリシーの JSON 表現。ポリシーの形式については、ポリシー リファレンスをご覧ください。たとえば、前の手順で示した許可ポリシーを設定するには、 POLICYを次のように置き換えます。ここで、CALLER_SAは、有効期間が短いトークンを作成するサービス アカウントです。{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] } 
 HTTP メソッドと URL: POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy リクエストの本文(JSON): { "policy": POLICY }リクエストを送信するには、次のいずれかのオプションを展開します。 レスポンスには、更新された許可ポリシーが含まれます。 
 - ユーザー認証情報- Google Cloud CLI を使用して有効期間の短いトークンを生成する場合、またはローカル開発環境から有効期間の短いトークンを生成する場合は、ユーザー アカウントを使用してトークンを生成できます。多くの場合、独自のユーザー アカウントを使用できます。 - ユーザー アカウントを使用して有効期間の短いトークンを生成する場合、次の ID が関係します。 - 呼び出し元アカウント( - CALLER_ACCOUNT)- このユーザー アカウントは、権限を保持しているサービス アカウントに有効期間の短い認証情報を生成するために使用されます。 
- 権限保持サービス アカウント( - PRIV_SA)- このサービス アカウントには、有効期間の短いトークンに必要な IAM ロールが付与されています。これは、有効期間の短いトークンが作成されるサービス アカウントです。 
 - CALLER_ACCOUNTが- PRIV_SAに有効期間の短い認証情報を作成できるようにするには、- PRIV_SAに対するサービス アカウント トークン作成者ロール(- roles/iam.serviceAccountTokenCreator)を- CALLER_ACCOUNTに付与します。- PRIV_SAに必要なロールを付与します。- コンソール- 
        Cloud de Confiance コンソールで、[サービス アカウント] ページに移動します。 
- プロジェクトを選択します。
- 権限を保持しているサービス アカウントのメールアドレス(PRIV_SA)をクリックします。
- [権限] タブをクリックします。
- [このサービス アカウントにアクセスできるプリンシパル] で、[アクセスを許可] をクリックします。
- 
        呼び出し元のアカウントのプリンシパル ID( CALLER_ACCOUNT)を入力します。例: //iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com
- サービス アカウント トークン作成者ロール(roles/iam.serviceAccountTokenCreator)を選択します。
- [保存] をクリックして、ユーザー アカウントにロールを付与します。
 - gcloud- gcloud iam service-accounts add-iam-policy-bindingコマンドで、サービス アカウントにロールを付与します。- 後述のコマンドデータを使用する前に、次のように置き換えます。 - 
    PRIV_SA: トークンが生成される権限保持サービス アカウントのメールアドレス。
- 
    CALLER_ACCOUNT: 有効期間の短いトークンのリクエストに使用するユーザー アカウントのメールアドレス。
 - 次のコマンドを実行します。 - Linux、macOS、Cloud Shell- gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json - Windows(PowerShell)- gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json - Windows(cmd.exe)- gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json - 次のようなレスポンスが返されます。 - Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ], "role": "roles/iam.serviceAccountTokenCreator" } ], "etag": "BwX1ZbefjXU=", "version": 1 }- REST- 
        PRIV_SAの許可ポリシーを読み取ります。serviceAccounts.getIamPolicyメソッドで、サービス アカウントの許可ポリシーを取得します。リクエストのデータを使用する前に、次のように置き換えます。 - PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。
- 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- POLICY_VERSION: 返されるポリシー バージョン。リクエストでは、最新のポリシー バージョン(ポリシー バージョン 3)を指定する必要があります。詳細については、ポリシーの取得時にポリシー バージョンを指定するをご覧ください。
 HTTP メソッドと URL: POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy リクエストの本文(JSON): { "options": { "requestedPolicyVersion": POLICY_VERSION } }リクエストを送信するには、次のいずれかのオプションを展開します。 次のような JSON レスポンスが返されます。 { "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }サービス アカウントにロールを付与していない場合、レスポンスには etag値のみが含まれます。このetag値を次のステップに含めます。
- 
        許可ポリシーを変更して、 CALLER_ACCOUNTにサービス アカウント トークン作成者のロール(roles/iam.serviceAccountTokenCreator)を付与します。たとえば、前の手順のサンプル レスポンスを変更するには、次のコードを追加します。 { "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] } 
- 
        更新された許可ポリシーを書き込みます。 serviceAccounts.setIamPolicyメソッドは、サービス アカウントに更新後の許可ポリシーを設定します。リクエストのデータを使用する前に、次のように置き換えます。 - PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。
- 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- POLICY_VERSION: 返されるポリシー バージョン。リクエストでは、最新のポリシー バージョン(ポリシー バージョン 3)を指定する必要があります。詳細については、ポリシーの取得時にポリシー バージョンを指定するをご覧ください。
- 
    POLICY: 設定するポリシーの JSON 表現。ポリシーの形式については、ポリシー リファレンスをご覧ください。たとえば、前の手順で示した許可ポリシーを設定するには、 POLICYを次のように置き換えます。ここで、CALLER_ACCOUNTは、有効期間が短いトークンを作成するユーザー アカウントです。{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "CALLER_ACCOUNT" ] } ] } 
 HTTP メソッドと URL: POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy リクエストの本文(JSON): { "policy": POLICY }リクエストを送信するには、次のいずれかのオプションを展開します。 レスポンスには、更新された許可ポリシーが含まれます。 
 - JWT を生成する- 自己署名 JWT を生成します。 - REST- Service Account Credentials API の - serviceAccounts.signJwtメソッドでは、サービス アカウントのシステムで管理する秘密鍵を使用して JWT に署名します。- リクエストのデータを使用する前に、次のように置き換えます。 - 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- 
    JWT_PAYLOAD: 署名する JWT ペイロード。これは JWT クレームセットを含む JSON オブジェクトです。ご希望のユースケースに必要なクレームを含め、呼び出すサービスの検証要件を満たしてください。Google API を呼び出す場合は、クレーム要件について Google の認証ガイドをご覧ください。exp(有効期限)クレームは、今後 12 時間以内にする必要があります。Google API を呼び出す場合は、expクレームは 1 時間以内に設定する必要があります。次の例のペイロードには、Google API を呼び出すクレームが含まれています。ここで、 EXPは有効期限を表す整数タイムスタンプです。{ \"iss\": \"PRIV_SA\", \"sub\": \"PRIV_SA\", \"aud\": \"https://firestore.googleapis.com/\", \"iat\": 1529350000, \"exp\": EXP } 
 - HTTP メソッドと URL: - POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/PRIV_SA:signJwt - リクエストの本文(JSON): - { "payload": "JWT_PAYLOAD" }- リクエストを送信するには、次のいずれかのオプションを展開します。 - signJwtリクエストが成功した場合、レスポンスの本文には、署名付きの JWT と JWT の署名に使用された署名鍵 ID が含まれています。サービス アカウントの代わりに、- signedJwt値を署名なしトークンとして使用してリクエストを直接認証できます。トークンは、リクエストで指定された有効期限まで有効です。- { "keyId": "42ba1e...fc0a", "signedJwt": "eyJ0eXAi...NiJ9" }- 自己署名バイナリ オブジェクト(blob)を作成する- 自己署名バイナリ オブジェクト(blob)は、データの送信元がわかっているときにバイナリデータを送信する際に使用されます(blob は自己署名であるため)。blob は、署名を作成するために使用できる Cloud Storage オブジェクトで、署名付き URL を含むさまざまな認証フローで必要になります。署名の詳細については、Cloud Storage のドキュメントをご覧ください。 - 自己署名バイナリ オブジェクトを作成するには、次の操作を行います。 - 必要な権限を提供する- 直接リクエストには、認証情報をリクエストする呼び出し元と、認証情報が作成されるサービス アカウントの 2 つの ID が含まれます。権限を設定する方法は、呼び出し元がサービス アカウントとして認証されるか、ユーザー アカウントとして認証されるかによって異なります。 - ローカル開発環境で、このページで説明する REST コマンドまたは gcloud CLI コマンドを実行する場合、呼び出し元をユーザー認証情報で表すことができます。Compute Engine で実行されているアプリケーションなどの自動ワークロードの場合、呼び出し元はサービス アカウントで表す必要があります。 - サービス アカウント- 呼び出し元のアプリケーションがサービス アカウントを ID として使用する場合、次のプリンシパルが関係します。 - 発信者のサービス アカウント( - CALLER_SA)- このサービス アカウントは呼び出し元のアプリケーションを表し、有効期間の短い認証情報のリクエストを発行します。 
- 
    権限保持サービス アカウント( PRIV_SA)このサービス アカウントには、有効期間の短いトークンに必要な IAM ロールが付与されています。これは、有効期間の短いトークンが作成されるサービス アカウントです。 
 - PRIV_SAに有効期間の短い認証情報を作成する権限を- CALLER_SAに付与するには、- PRIV_SAに対するサービス アカウント トークン作成者ロール(- roles/iam.serviceAccountTokenCreator)を- CALLER_SAに付与します。- PRIV_SAに必要なロールを付与します。- コンソール- 
        Cloud de Confiance コンソールで、[サービス アカウント] ページに移動します。 
- プロジェクトを選択します。
- 権限を保持しているサービス アカウントのメールアドレス(PRIV_SA)をクリックします。
- [権限] タブをクリックします。
- [このサービス アカウントにアクセスできるプリンシパル] で、[アクセスを許可] をクリックします。
- 
        呼び出し元のアカウント( CALLER_SA)のメールアドレスを入力します。例: demo@my-project.s3ns.iam.gserviceaccount.com
- サービス アカウント トークン作成者ロール(roles/iam.serviceAccountTokenCreator)を選択します。
- [保存] をクリックして、サービス アカウントにロールを付与します。
 - gcloud- gcloud iam service-accounts add-iam-policy-bindingコマンドで、サービス アカウントにロールを付与します。- 後述のコマンドデータを使用する前に、次のように置き換えます。 - 
    PRIV_SA: トークンが生成される権限保持サービス アカウントのメールアドレス。
- 
    CALLER_SA: 有効期間の短いトークンをリクエストするアプリケーションを表すサービス アカウントのメールアドレス。
 - 次のコマンドを実行します。 - Linux、macOS、Cloud Shell- gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json - Windows(PowerShell)- gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json - Windows(cmd.exe)- gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json - 次のようなレスポンスが返されます。 - Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "serviceAccount:CALLER_SA" ], "role": "roles/iam.serviceAccountTokenCreator" } ], "etag": "BwXhCB4eyjY=", "version": 1 }- REST- 
        PRIV_SAの許可ポリシーを読み取ります。serviceAccounts.getIamPolicyメソッドで、サービス アカウントの許可ポリシーを取得します。リクエストのデータを使用する前に、次のように置き換えます。 - PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。
- 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- POLICY_VERSION: 返されるポリシー バージョン。リクエストでは、最新のポリシー バージョン(ポリシー バージョン 3)を指定する必要があります。詳細については、ポリシーの取得時にポリシー バージョンを指定するをご覧ください。
 HTTP メソッドと URL: POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy リクエストの本文(JSON): { "options": { "requestedPolicyVersion": POLICY_VERSION } }リクエストを送信するには、次のいずれかのオプションを展開します。 次のような JSON レスポンスが返されます。 { "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }サービス アカウントにロールを付与していない場合、レスポンスには etag値のみが含まれます。このetag値を次のステップに含めます。
- 
        許可ポリシーを変更して、 CALLER_SAにサービス アカウント トークン作成者のロール(roles/iam.serviceAccountTokenCreator)を付与します。たとえば、前の手順のサンプル レスポンスを変更するには、次のコードを追加します。 { "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] } 
- 
        更新された許可ポリシーを書き込みます。 serviceAccounts.setIamPolicyメソッドは、サービス アカウントに更新後の許可ポリシーを設定します。リクエストのデータを使用する前に、次のように置き換えます。 - PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。
- 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- POLICY_VERSION: 返されるポリシー バージョン。リクエストでは、最新のポリシー バージョン(ポリシー バージョン 3)を指定する必要があります。詳細については、ポリシーの取得時にポリシー バージョンを指定するをご覧ください。
- 
    POLICY: 設定するポリシーの JSON 表現。ポリシーの形式については、ポリシー リファレンスをご覧ください。たとえば、前の手順で示した許可ポリシーを設定するには、 POLICYを次のように置き換えます。ここで、CALLER_SAは、有効期間が短いトークンを作成するサービス アカウントです。{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] } 
 HTTP メソッドと URL: POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy リクエストの本文(JSON): { "policy": POLICY }リクエストを送信するには、次のいずれかのオプションを展開します。 レスポンスには、更新された許可ポリシーが含まれます。 
 - ユーザー認証情報- Google Cloud CLI を使用して有効期間の短いトークンを生成する場合、またはローカル開発環境から有効期間の短いトークンを生成する場合は、ユーザー アカウントを使用してトークンを生成できます。多くの場合、独自のユーザー アカウントを使用できます。 - ユーザー アカウントを使用して有効期間の短いトークンを生成する場合、次の ID が関係します。 - 呼び出し元アカウント( - CALLER_ACCOUNT)- このユーザー アカウントは、権限を保持しているサービス アカウントに有効期間の短い認証情報を生成するために使用されます。 
- 権限保持サービス アカウント( - PRIV_SA)- このサービス アカウントには、有効期間の短いトークンに必要な IAM ロールが付与されています。これは、有効期間の短いトークンが作成されるサービス アカウントです。 
 - CALLER_ACCOUNTが- PRIV_SAに有効期間の短い認証情報を作成できるようにするには、- PRIV_SAに対するサービス アカウント トークン作成者ロール(- roles/iam.serviceAccountTokenCreator)を- CALLER_ACCOUNTに付与します。- PRIV_SAに必要なロールを付与します。- コンソール- 
        Cloud de Confiance コンソールで、[サービス アカウント] ページに移動します。 
- プロジェクトを選択します。
- 権限を保持しているサービス アカウントのメールアドレス(PRIV_SA)をクリックします。
- [権限] タブをクリックします。
- [このサービス アカウントにアクセスできるプリンシパル] で、[アクセスを許可] をクリックします。
- 
        呼び出し元のアカウントのプリンシパル ID( CALLER_ACCOUNT)を入力します。例: //iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com
- サービス アカウント トークン作成者ロール(roles/iam.serviceAccountTokenCreator)を選択します。
- [保存] をクリックして、ユーザー アカウントにロールを付与します。
 - gcloud- gcloud iam service-accounts add-iam-policy-bindingコマンドで、サービス アカウントにロールを付与します。- 後述のコマンドデータを使用する前に、次のように置き換えます。 - 
    PRIV_SA: トークンが生成される権限保持サービス アカウントのメールアドレス。
- 
    CALLER_ACCOUNT: 有効期間の短いトークンのリクエストに使用するユーザー アカウントのメールアドレス。
 - 次のコマンドを実行します。 - Linux、macOS、Cloud Shell- gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json - Windows(PowerShell)- gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json - Windows(cmd.exe)- gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json - 次のようなレスポンスが返されます。 - Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ], "role": "roles/iam.serviceAccountTokenCreator" } ], "etag": "BwX1ZbefjXU=", "version": 1 }- REST- 
        PRIV_SAの許可ポリシーを読み取ります。serviceAccounts.getIamPolicyメソッドで、サービス アカウントの許可ポリシーを取得します。リクエストのデータを使用する前に、次のように置き換えます。 - PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。
- 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- POLICY_VERSION: 返されるポリシー バージョン。リクエストでは、最新のポリシー バージョン(ポリシー バージョン 3)を指定する必要があります。詳細については、ポリシーの取得時にポリシー バージョンを指定するをご覧ください。
 HTTP メソッドと URL: POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy リクエストの本文(JSON): { "options": { "requestedPolicyVersion": POLICY_VERSION } }リクエストを送信するには、次のいずれかのオプションを展開します。 次のような JSON レスポンスが返されます。 { "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }サービス アカウントにロールを付与していない場合、レスポンスには etag値のみが含まれます。このetag値を次のステップに含めます。
- 
        許可ポリシーを変更して、 CALLER_ACCOUNTにサービス アカウント トークン作成者のロール(roles/iam.serviceAccountTokenCreator)を付与します。たとえば、前の手順のサンプル レスポンスを変更するには、次のコードを追加します。 { "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] } 
- 
        更新された許可ポリシーを書き込みます。 serviceAccounts.setIamPolicyメソッドは、サービス アカウントに更新後の許可ポリシーを設定します。リクエストのデータを使用する前に、次のように置き換えます。 - PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。
- 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- POLICY_VERSION: 返されるポリシー バージョン。リクエストでは、最新のポリシー バージョン(ポリシー バージョン 3)を指定する必要があります。詳細については、ポリシーの取得時にポリシー バージョンを指定するをご覧ください。
- 
    POLICY: 設定するポリシーの JSON 表現。ポリシーの形式については、ポリシー リファレンスをご覧ください。たとえば、前の手順で示した許可ポリシーを設定するには、 POLICYを次のように置き換えます。ここで、CALLER_ACCOUNTは、有効期間が短いトークンを作成するユーザー アカウントです。{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "CALLER_ACCOUNT" ] } ] } 
 HTTP メソッドと URL: POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy リクエストの本文(JSON): { "policy": POLICY }リクエストを送信するには、次のいずれかのオプションを展開します。 レスポンスには、更新された許可ポリシーが含まれます。 
 - 自己署名 blob を生成する- サービス アカウントの自己署名 blob を生成します。 - REST- Service Account Credentials API の - serviceAccounts.signBlobメソッドでは、サービス アカウントのシステムで管理する秘密鍵を使用して blob に署名します。- リクエストのデータを使用する前に、次のように置き換えます。 - 
    PRIV_SA: 有効期間の短いトークンが作成される権限保持サービス アカウントのメールアドレス。
- 
    BLOB_PAYLOAD: base64 でエンコードされたバイトの文字列。例:VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cu。
 - HTTP メソッドと URL: - POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/PRIV_SA:signBlob - リクエストの本文(JSON): - { "payload": "BLOB_PAYLOAD" }- リクエストを送信するには、次のいずれかのオプションを展開します。 - signBlobリクエストが成功した場合、レスポンスの本文には、署名 blob と blob の署名に使用された署名鍵 ID が含まれています。サービス アカウントの代わりに、- signedBlob値を署名なしトークンとして使用してリクエストを直接認証できます。トークンは、サービス アカウントのシステムで管理する秘密鍵が期限切れになるまで有効です。この鍵の ID はレスポンスの- keyIdフィールドの値です。- { "keyId": "42ba1e...fc0a", "signedBlob": "eyJ0eXAi...NiJ9" }- 特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。 - 最終更新日 2025-10-22 UTC。 [[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-10-22 UTC。"],[],[]]