Skip to main content

GCP のための OIDC

概要

Bitriseのビルド中にOIDCトークンを生成して、Google Cloud Platformでスコープ付きアクセストークンと交換してください

Bitriseのビルド中にOIDCトークンを生成して、Googleクラウドプラットフォーム(GCP)でスコープアクセストークンと交換してください。

GCP で OIDC トークンを使用するには、以下を行う必要があります。

  • ワークロード ID プールを作成します。

  • Google サービスアカウントを ID プールに接続します。

Bitriseでは、次のいずれかを使用してトークンを取得できます OICD アイデンティティートークンを取得 ステップ 1 または GCP で認証する ステップ 1。

ワークロード ID プールの作成

GCP でワークロード ID プールを作成して、ワークロード ID フェデレーションを有効にします。

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

ワークロードアイデンティティフェデレーションによる認証がGCPでどのように機能するかについては、以下を参照してください。 Google の公式ドキュメント。

  1. Google クラウドコンソールで、以下にアクセスしてください。 IAM と管理者 それから ワークロード ID フェデレーション

  2. の中にID プールを作成します。セクションで、以下のフィールドに値を入力します。

    • [名前]: プールの名前。この名前はプール ID として使用され、プール ID を後で変更することはできません。

    • [説明]: プールの目的。

  3. アンダー プロバイダーをプールに追加、Bitriseをプロバイダーとして追加してください:

    • の中に プロバイダーを選択してください。 フィールド、選択 オープンID コネクト (OIDC)

    • プロバイダー名: 名前を入力します。わかりやすくするために、以下を使用することをおすすめします ビットライズ

    • 発行者の URL: https://token.builds.bitrise.io

    • オーディエンス: 選択 許可されたオーディエンス。トークンを使用する際、GCP は許可されたオーディエンスが、でエンコードされたオーディエンスと一致するかどうかを確認します aud 請求。Bitriseでは、OIDCサービスを提供するステップでオーディエンスを設定できます GCP によるトークンの取得と交換.

  4. クリック 続行

  5. アンダー プロバイダー属性を設定します。、必要な属性マッピング値を設定します。

    • ザ・ google.subject キーはユーザー固有の識別子です。 assertion.sub トークンをリクエストするビルドを識別します。

    • を使う attribute.NAME 最大 50 個のカスタムアトリビュートを追加するフォーマット。各アトリビュートには、次の値が含まれます。 assertion.VALUE フォーマット。Bitrise トークンで利用可能な属性のリストは、こちらで確認できます OIDC トークンの情報.

    明示的なマッピングが必要

    使用したいすべての属性をマップする必要があります。Google では、明示的にマップされた属性のみを使用できます。詳細はこちらをご覧ください。 Google のドキュメントにある属性マッピング

  6. オプションで、属性条件を追加します。また、サービスアカウントを作成するときに、プールレベルで属性に基づいて ID トークンを直接フィルタリングすることもできます。

最終的な設定は次のようになるかもしれません。

2025-11-18-oidc-gcp.png

Google サービスアカウントをワークロード ID プールに接続する

GCP サービスで OIDC 認証を使い始めるには、ワークロード ID プールを Google サービスアカウントに接続する必要があります。

  • サービスアカウントの作成。

  • サービスアカウントのなりすましを使用して ID プールへのアクセスを許可する。

サービスアカウントを作成する

  1. Google クラウドコンソールで、 IAM と管理者 そして サービスアカウント

  2. クリック サービスアカウントを作成

  3. 表示名、一意のサービスアカウント ID、および説明を追加します。

  4. クリック 作成して続行

  5. アンダー 権限、必要なロールをすべて追加してください。

    IAM の条件

    オプションで、をクリックすることで、以前にマッピングされた属性値に基づいて IAM 条件を追加できます IAM 条件を追加

  6. クリック [完了]

ワークロード ID プールへのアクセス権の付与

  1. Google クラウドコンソールで、 IAM と管理者 そして ワークロード ID フェデレーション

  2. ID プールを選択します。

  3. クリック アクセスを許可

  4. 選択してください サービスアカウントになりすましてアクセスを許可する オプション。

  5. 作成したサービスアカウントを選択します。

  6. プリンシパル (サービスアカウントにアクセスできる ID) を選択します。

    使用可能なオプションは、ID プールのプロバイダー属性マッピングのキーに限定されます。たとえば、属性マッピングを使用するとしますgoogle.subject=assertion.sub、セット属性名 件名に、属性値sub。Bitriseトークンの利用可能な値はこちらで確認できます

  7. クリック [保存]

  8. ダイアログで、Bitrise OIDCトークン用に作成したプロバイダーを選択します。

  9. OIDC ID トークンパスを追加します。 https://token.builds.bitrise.io そしてフォーマットを次のように設定します テキスト

  10. クリック 設定をダウンロードする そして、そのファイルをアクセス可能な場所に保存します。

GCP によるトークンの取得と交換

ワークロードIDプールを正常に設定してGoogleサービスアカウントに接続すると、BitriseビルドはGCPとトークンを交換できます。次のことができます。

  • でトークンを取得する OIDC アイデンティティートークンを取得 ステップ1を実行してから、スクリプトを使用して認証情報の交換を行います。

  • を使う GCP による認証 プロセス全体を処理するステップ。

OIDC ID トークンの取得ステップの使用

ザ・ OIDC ID トークンの取得ステップ という環境変数を公開します。 BITRISE_IDENTITY_TOKEN。この Env Var をスクリプトで使用して、AWS と認証情報を交換できます

  1. Bitriseでワークフローエディターを開きます。

  2. を追加 OIDC アイデンティティートークンを取得 ワークフローへのステップ。

  3. を使う BITRISE_IDENTITY_TOKEN 環境変数:ファイルに書き込んで更新する クライアントライブラリ設定ファイル Env Var を含むファイルを参照します。これは以下のように設定できます。 スクリプト ステップ:

    tmpfile="$(mktemp)"       
    printf '%s' "$BITRISE_IDENTITY_TOKEN" > "$tmpfile"
    
    # Replace the token path in client library configuration
    
    gcloud auth login --cred-file=/path/to/updated-client-library-config.json
    gcloud auth list

    その後、gcloud CLI が自動的にそれらをピックアップして使用します。CLI によるあらゆる種類のアクションは単純に機能します

GCP での認証ステップの使用

  1. Bitriseでワークフローエディターを開きます。

  2. を追加 GCP による認証 ワークフローにステップアップ。

  3. を設定 クライアントコンフィグトークン・オーディエンス インプット:

    • トークンオーディエンスは、Google CloudでワークロードIDプールを設定するときに設定した許可オーディエンスと一致する必要があります。

    • ザ・ クライアント設定 input は、プロセスの最後にダウンロードしたファイルを指している必要があります。

このステップでは、認証情報が正しい形式で公開されます。その後は、gcloud CLI によるあらゆる種類のアクションが問題なく機能します。