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 の公式ドキュメント。
-
Google クラウドコンソールで、以下にアクセスしてください。 IAM と管理者 それから ワークロード ID フェデレーション。
-
の中にID プールを作成します。セクションで、以下のフィールドに値を入力します。
-
[名前]: プールの名前。この名前はプール ID として使用され、プール ID を後で変更することはできません。
-
[説明]: プールの目的。
-
-
アンダー プロバイダーをプールに追加、Bitriseをプロバイダーとして追加してください:
-
の中に プロバイダーを選択してください。 フィールド、選択 オープンID コネクト (OIDC)。
-
プロバイダー名: 名前を入力します。わかりやすくするために、以下を使用することをおすすめします
ビットライズ。 -
発行者の URL:
https://token.builds.bitrise.io。 -
オーディエンス: 選択 許可されたオーディエンス。トークンを使用する際、GCP は許可されたオーディエンスが、でエンコードされたオーディエンスと一致するかどうかを確認します
aud請求。Bitriseでは、OIDCサービスを提供するステップでオーディエンスを設定できます GCP によるトークンの取得と交換.
-
-
クリック 。
-
アンダー プロバイダー属性を設定します。、必要な属性マッピング値を設定します。
-
ザ・
google.subjectキーはユーザー固有の識別子です。assertion.subトークンをリクエストするビルドを識別します。 -
を使う
attribute.NAME最大 50 個のカスタムアトリビュートを追加するフォーマット。各アトリビュートには、次の値が含まれます。assertion.VALUEフォーマット。Bitrise トークンで利用可能な属性のリストは、こちらで確認できます OIDC トークンの情報.
明示的なマッピングが必要
使用したいすべての属性をマップする必要があります。Google では、明示的にマップされた属性のみを使用できます。詳細はこちらをご覧ください。 Google のドキュメントにある属性マッピング。
-
-
オプションで、属性条件を追加します。また、サービスアカウントを作成するときに、プールレベルで属性に基づいて ID トークンを直接フィルタリングすることもできます。
最終的な設定は次のようになるかもしれません。

Google サービスアカウントをワークロード ID プールに接続する
GCP サービスで OIDC 認証を使い始めるには、ワークロード ID プールを Google サービスアカウントに接続する必要があります。
-
サービスアカウントの作成。
-
サービスアカウントのなりすましを使用して ID プールへのアクセスを許可する。
サービスアカウントを作成する
-
Google クラウドコンソールで、 IAM と管理者 そして サービスアカウント。
-
クリック サービスアカウントを作成。
-
表示名、一意のサービスアカウント ID、および説明を追加します。
-
クリック 。
-
アンダー 権限、必要なロールをすべて追加してください。
IAM の条件
オプションで、をクリックすることで、以前にマッピングされた属性値に基づいて IAM 条件を追加できます IAM 条件を追加。
-
クリック 。
ワークロード ID プールへのアクセス権の付与
-
Google クラウドコンソールで、 IAM と管理者 そして ワークロード ID フェデレーション。
-
ID プールを選択します。
-
クリック 。
-
選択してください サービスアカウントになりすましてアクセスを許可する オプション。
-
作成したサービスアカウントを選択します。
-
プリンシパル (サービスアカウントにアクセスできる ID) を選択します。
使用可能なオプションは、ID プールのプロバイダー属性マッピングのキーに限定されます。たとえば、属性マッピングを使用するとします
google.subject=assertion.sub、セット属性名 件名に、属性値へsub。Bitriseトークンの利用可能な値はこちらで確認できます -
クリック 。
-
ダイアログで、Bitrise OIDCトークン用に作成したプロバイダーを選択します。
-
OIDC ID トークンパスを追加します。
https://token.builds.bitrise.ioそしてフォーマットを次のように設定します テキスト。 -
クリック そして、そのファイルをアクセス可能な場所に保存します。
GCP によるトークンの取得と交換
ワークロードIDプールを正常に設定してGoogleサービスアカウントに接続すると、BitriseビルドはGCPとトークンを交換できます。次のことができます。
-
でトークンを取得する OIDC アイデンティティートークンを取得 ステップ1を実行してから、スクリプトを使用して認証情報の交換を行います。
-
を使う GCP による認証 プロセス全体を処理するステップ。
OIDC ID トークンの取得ステップの使用
ザ・ OIDC ID トークンの取得ステップ という環境変数を公開します。 BITRISE_IDENTITY_TOKEN。この Env Var をスクリプトで使用して、AWS と認証情報を交換できます
-
Bitriseでワークフローエディターを開きます。
-
を追加 OIDC アイデンティティートークンを取得 ワークフローへのステップ。
-
を使う
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 での認証ステップの使用
-
Bitriseでワークフローエディターを開きます。
-
を追加 GCP による認証 ワークフローにステップアップ。
-
を設定 クライアントコンフィグ と トークン・オーディエンス インプット:
-
トークンオーディエンスは、Google CloudでワークロードIDプールを設定するときに設定した許可オーディエンスと一致する必要があります。
-
ザ・ クライアント設定 input は、プロセスの最後にダウンロードしたファイルを指している必要があります。
-
このステップでは、認証情報が正しい形式で公開されます。その後は、gcloud CLI によるあらゆる種類のアクションが問題なく機能します。