OIDC を使用して Pipelines とリソース サーバーを統合する

Bitbucket Pipelines OpenID Connect プロバイダー (OIDC IDP) を使用して、パイプラインが AWS、GCP、ボールトなどのリソース サーバーにアクセスできるようになります。つまり、Bitbucket に認証情報を格納することなく、ユーザーとそのチームがリソース サーバーにアクセスできます。

OpenID Connect は、OAuth 2.0 プロトコルを元にした単純な ID レイヤーです。クライアントは次を実行できます。

  • Bitbucket Pipelines によって実行される認証に基づいて、エンド ユーザーの身元を確認します。

  • 相互にやり取り可能で、REST のような方法でユーザーの基本的なプロファイル情報を取得します。

入門ガイド

OIDC を有効にするには、リソース サーバーの外部 OpenID Connect プロバイダーとして Pipelines を設定する必要があります。次のセクションでは、Bitbucket Pipelines で OpenID Connect を設定して、さまざまなリソース サーバー内のセットアップに関する詳細情報へのリンクを提供します。

OpenID Connect を統合するには、リポジトリで Pipelines を使用している必要があります。

Pipelines ビルドの OIDC を有効にする

Pipelines とリソース サーバーで OpenID Connect を使用するには、Bitbucket Pipelines YAML ファイルで oidc を「true」に設定する必要があります。

「oidc」が「true」と等しくなるように、bitbucket-pipelines.yml を編集します

1 2 3 4 5 6 7 8 9 image: amazon/aws-cli pipelines: default: - step: oidc: true max-time: 5 script: - aws sts assume-role-with-web-identity --role-arn arn:aws:iam::XXXXXX:role/projectx-build --role-session-name build-session --web-identity-token "$BITBUCKET_STEP_OIDC_TOKEN" --duration-seconds 1000

一意の識別子と要求を取得する

Bitbucket Pipelines を外部 OIDC IDP として設定するには、ワークスペース、リポジトリ、デプロイ環境の UUID を取得する必要があります。

  1. ODIC プロバイダーに関連付けるリポジトリの左側のナビゲーション サイドバーで、[リポジトリ設定] を選択します。

  2. 左側のサイドバーで、[Pipelines] 下の [OpenID Connect] を選択します。

  3. ID プロバイダーの URL対象者をコピーします。それらをアクセスできる場所に保管してください。Pipelines を外部 OpenID Connect プロバイダー (OIDC IDP) として設定するために必要な手順を完了して、クラウド環境でビルドを実行する前に、作成したロールを引き受けるようにビルドをセットアップする際に必要です。

ペイロードの例

[一意の識別子] 見出しの下に表示されるペイロードの例では、OpenID Connect を設定したり、リソース サーバー側でアクセス ポリシーを設定したりするのに必要なさまざまな要求を提供しています。

例では、値が「xxxxx」と表示されている要求は、パイプラインと現在使用している環境固有のものです。

OIDC の要求を表示するペイロードの例

UUID - UUID は、使いやすくするために「ペイロードの例」の下に表示されます。これは、OIDC のリソース サーバー側を設定するときにコピー & ペーストする必要があるためです。

デプロイ環境 - Bitbucket Cloud でこのビルドに関連付けたデプロイ環境です。表示するドロップダウン、OIDC を統合する環境の順に選択します。

アクセス ポリシーの設定

OpenID Connect と Bitbucket Pipelines を統合したら、リソース サーバー側でさまざまなアクセス ポリシーを設定できます。以下は、AWS、GCP、ボールトなど、主にリソース サーバー側で設定されているアクセス ポリシーの一覧です。

  • リポジトリごとのアクセス制限

  • 環境ごとのアクセス制限

  • Bitbucket Pipelines IP 範囲のみへのアクセス制限

  • ステップ時間の制限 - このアクセス ポリシーは、特定のリソース サーバーに依存しません。次の手順をご参照ください。

ステップ時間の制限

ステップの最大継続時間の既定値は 2 時間ですが、Bitbucket Pipelines ではステップの最大期間を明示的に設定できます。不要なビルド時間を使用しないようにしたり、ビルドを正常に完了するための所要時間を特定したりするために、ステップ時間を設定することをお勧めします。

この手順では、bitbucket-pipelines.yml を編集して、ビルドとワークフローに最適な「max-time」値を更新して、ステップの最大継続時間を設定します。次の例では、ステップの最大継続時間を 5 分に再設定しています。

1 2 3 4 5 6 7 8 9 image: amazon/aws-cli pipelines: default: - step: oidc: true max-time: 5 script: - aws sts assume-role-with-web-identity --role-arn arn:aws:iam::XXXXXX:role/projectx-build --role-session-name build-session --web-identity-token "$BITBUCKET_STEP_OIDC_TOKEN" --duration-seconds 1000

既定では、ステップの開始時に遅延が発生した場合に備えて、5 分間がバッファーとして追加されます。

bitbucket-pipelines.yml の設定に関する詳細については、Configure bitbucket-pipelines.yml support doc をご参照ください。

リソース サーバー固有のヘルプ

その他のヘルプ