OIDC を使用して Pipelines とリソース サーバーを統合する
Bitbucket Pipelines OpenID Connect プロバイダー (OIDC IDP) を使用して、パイプラインが AWS、GCP、ボールトなどのリソース サーバーにアクセスできるようになります。つまり、Bitbucket に認証情報を格納することなく、ユーザーとそのチームがリソース サーバーにアクセスできます。
OpenID Connect is a simple identity layer on top of the OAuth 2.0 protocol. It allows clients to:
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 を編集します
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 を取得する必要があります。
ODIC プロバイダーに関連付けるリポジトリの左側のナビゲーション サイドバーで、[リポジトリ設定] を選択します。
左側のサイドバーで、[Pipelines] 下の [OpenID Connect] を選択します。
ID プロバイダーの URL と対象者をコピーします。それらをアクセスできる場所に保管してください。Pipelines を外部 OpenID Connect プロバイダー (OIDC IDP) として設定するために必要な手順を完了して、クラウド環境でビルドを実行する前に、作成したロールを引き受けるようにビルドをセットアップする際に必要となります。
Customising your audiences
To customise your audiences, declare them under the (step or global) → oidc → audiences list, as shown in the example below:
options:
oidc:
audiences:
- https://your.service0.com
- https://your.service1.com
pipelines:
default:
- step:
oidc:
audiences:
- https://your.service0.com
- https://your.service1.com
script:
...There are some limitations to the audiences you can provide namely:
Maximum of 10 audiences allowed.
Maximum audience name length: 150 characters.
ペイロードの例
[一意の識別子] 見出しの下に表示されるペイロードの例では、OpenID Connect を設定したり、リソース サーバー側でアクセス ポリシーを設定したりするのに必要なさまざまな要求を提供しています。
例では、値が「xxxxx」と表示されている要求は、パイプラインと現在使用している環境固有のものです。
UUID - UUID は、使いやすくするために「ペイロードの例」の下に表示されます。これは、OIDC のリソース サーバー側を設定するときにコピー & ペーストする必要があるためです。
デプロイ環境 - Bitbucket Cloud でこのビルドに関連付けたデプロイ環境です。表示するドロップダウン、OIDC を統合する環境の順に選択します。
アクセス ポリシーの設定
OpenID Connect と Bitbucket Pipelines を統合したら、リソース サーバー側でさまざまなアクセス ポリシーを設定できます。以下は、AWS、GCP、ボールトなど、主にリソース サーバー側で設定されているアクセス ポリシーの一覧です。
リポジトリごとのアクセス制限
環境ごとのアクセス制限
Bitbucket Pipelines IP 範囲のみへのアクセス制限
ステップ時間の制限 - このアクセス ポリシーは、特定のリソース サーバーに依存しません。次の手順をご参照ください。
ステップ時間の制限
Bitbucket Pipelines では、ステップの最大期間を明示的に設定できます。不要なビルド時間を使用しないようにしたり、ビルドを正常に完了するための所要時間を特定したりするために、ステップ時間を設定することをお勧めします。
この手順では、bitbucket-pipelines.yml を編集して、ビルドとワークフローに最適な「max-time」値を更新して、ステップの最大継続時間を設定します。次の例では、ステップの最大継続時間を 5 分に再設定しています。
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 分間がバッファーとして追加されます。
For more information about configuring bitbucket-pipelines.yml, check out our Configure bitbucket-pipelines.yml support doc.
リソース サーバー固有のヘルプ
この内容はお役に立ちましたか?