Skip to main content

AWS 向け OIDC

概要

Bitriseのビルド中にOIDCトークンを生成して、AWSスコープの権限を持つAWSアイデンティティおよびアクセス管理(IAM)ロールと交換してください。

Bitriseのビルド中にOIDCトークンを生成して、AWSスコープの権限を持つAWSアイデンティティおよびアクセス管理(IAM)ロールと交換してください。

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

  • AWS アカウントに IAM OIDC プロバイダーを作成します。

  • カスタムの信頼ポリシーを追加します。つまり、ID トークンのルールを記述することになります。

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

IAM への OIDC アイデンティティプロバイダーの追加

AWS アカウントに IAM OIDC プロバイダーを設定します。

AWS ユーザーガイド

IAM OIDC プロバイダーの詳細については、 公式 AWS ユーザーガイド

  1. AWS アカウントにログインします。

  2. に移動 IAM

  3. 左側で検索 アクセス管理 そして選択してください ID プロバイダー

  4. クリック プロバイダーを追加

  5. [選択] OpenID コネクト

  6. を設定 プロバイダー URL フィールド: https://token.builds.bitrise.io

  7. を設定 オーディエンス フィールドへ sts.amazonaws.com

  8. クリック プロバイダーを追加

    2025-11-11-aws-iam-provider.png
  9. ID プロバイダー ページで、新しく作成した ID プロバイダーを選択し、ARN をコピーします。

    ARN は次のようになります。 arn:aws:iam::ACCOUNT_NUMBER:oidc-provider/token.builds.bitrise.io

カスタム信頼ポリシーの追加

AWS IAMにカスタム信頼ポリシーを追加して、Bitrise IDトークンのルールを記述します。

AWS ドキュメント

私たちのガイドは、Bitriseビルド用のAWSポリシーを設定するのに役立ちます。信頼ポリシーの詳細については、AWS ドキュメントをご覧ください カスタム信頼ポリシーを使用してロールを作成する

  1. AWS アカウントにログインします。

  2. に移動 IAM

  3. 左側で検索 アクセス管理 そして選択してください 役割

  4. クリック ロールを作成

    2025-11-11-aws-roles.png
  5. [選択] カスタム信頼ポリシー

    2025-11-11-custom-trust-policy.png
  6. カスタムトラストポリシーエディターでステートメントを作成して OIDC トークンのルールを設定します。

    ポリシーの作成

    ポリシーの作成方法の詳細については、AWS ドキュメントをご覧ください。 IAM ポリシーの作成

    • を追加 Principal: タイプは、以前に作成した ARN を含むフェデレーテッドユーザーセッションである必要があります。を参照してください。 Federated 以下の例では。

    • を追加 Actionsts:AssumeRoleWithWebIdentity 値。

    • アンダー Conditions、ID トークンのクレームと照合します。使用可能な文字列条件演算子は、以下にあります。 AWS ドキュメント

      以下の例では、オーディエンス、Bitriseプロジェクトスラッグ、ワークフロー名をチェックしています。

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Federated": "arn:aws:iam::ACCOUNT_NUMBER:oidc-provider/token.builds.bitrise.io"
                },
                "Action": "sts:AssumeRoleWithWebIdentity",
                "Condition": {
                    "StringEquals": {
                        "token.builds.bitrise.io:aud": "sts.amazonaws.com",
                        "token.builds.bitrise.io:app_slug": "APP_SLUG",
                        "token.builds.bitrise.io:workflow": "run-tests",
                    }
                }
            }
        ]
    }
  7. 完了したら、をクリックします [次へ]

  8. ロールに必要な権限を選択します。

    必要な権限は、AWS でアクセスしようとしているサービスによって異なります。たとえば、ビルド中に S3 バケットにファイルをアップロードするには、以下を選択します Amazon S3 フルアクセス

  9. 完了したら、をクリックします [次へ]

  10. ロールに名前を付け、必要に応じて説明を追加します。

  11. クリック ロールを作成 完了したら。

トークンの取得と交換

AWSでカスタムトラストポリシーを使用してOIDCアイデンティティプロバイダーを正常に設定すると、Bitriseビルドは選択したサービスとトークンを交換できます。次のことができます。

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

  • を使う AWS で認証する プロセス全体を処理する手順。

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

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

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

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

  3. を設定 トークン・オーディエンス への入力 sts.amazonaws.com

  4. を使う BITRISE_IDENTITY_TOKEN 環境変数:任意の CLI ツールまたは API エンドポイントに入力できます。

    でスクリプトを作成できます スクリプト トークン交換を実行し、応答から認証情報を抽出するステップ。認証情報として 3 つの Env Var が必要です

    • AWS_ACCESS_KEY_ID

    • AWS_SECRET_ACCESS_KEY

    • AWS_SESSION_TOKEN

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

    たとえば、短期間の認証情報を取得し、AWS CLI で現在の認証済みセッションの詳細を出力すると、次のようになります。

    # Perform the token exchange and save the response
    AWS_RESPONSE=$(aws sts assume-role-with-web-identity \
      --role-arn "arn:aws:iam::065600603509:role/OIDC-TEST" \
      --role-session-name "bitrise-${BITRISE_BUILD_NUMBER}" \
      --web-identity-token "$BITRISE_IDENTITY_TOKEN" \
      --output json)
    
    # Extract the credentials from the reponse
    export AWS_ACCESS_KEY_ID=$(echo "$AWS_RESPONSE" | jq -r '.Credentials.AccessKeyId')
    export AWS_SECRET_ACCESS_KEY=$(echo "$AWS_RESPONSE" | jq -r '.Credentials.SecretAccessKey')
    export AWS_SESSION_TOKEN=$(echo "$AWS_RESPONSE" | jq -r '.Credentials.SessionToken')
    
    # The AWS cli will automatically pick up the env vars from the section above
    aws sts get-caller-identity

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

ザ・ AWS による認証 ステップは OIDC トークンをリクエストし、AWS との認証情報の交換を行います。つまり、認証を実行するために独自のスクリプトを作成する必要はなく、Step が自動的に処理してくれます

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

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

  3. を設定 トークン・オーディエンス への入力 sts.amazonaws.com

  4. を設定 AWS ロール ARN という値に 設定した ID プロバイダー AWS マネジメントコンソールで。

    ドッカーログイン

    このステップのもう1つの便利な機能は、DockerをEC2コンテナレジストリに自動的にログインできることです。 Docker Step 設定でグループを入力し、次のように設定します。 true

    これは Linux スタックでのみサポートされています。

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