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 範囲のみへのアクセス制限

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

ステップ時間の制限

Bitbucket Pipelines allows you to configure the maximum duration of a step explicitly. You may want to set the duration time to ensure you are not using unnecessary build minutes or to pinpoint the time needed to complete your builds successfully.

この手順では、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 をご参照ください。

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

さらにヘルプが必要ですか?

アトラシアン コミュニティをご利用ください。