Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

CodeBuild の複数のアクセストークン

フォーカスモード
CodeBuild の複数のアクセストークン - AWS CodeBuild

CodeBuild は、AWS Secrets Manager のシークレットから、または AWS CodeConnections 接続を介したサードパーティープロバイダへのアクセストークンの調達をサポートします。シークレットまたは接続は、GitHub 、GitHub Enterprise、Bitbucket などの指定されたサードパーティープロバイダとのやり取りのデフォルトの認証情報として設定できます。

ソース認証情報は、次の 3 つの異なるレベルで設定できます。

  1. すべてのプロジェクトのアカウントレベルの認証情報: これらは、AWS アカウント内のすべてのプロジェクトのデフォルトの認証情報です。プロジェクトまたはソースレベルの認証情報が指定されていない場合、プロジェクトで使用されます。

  2. 特定のリポジトリのソースレベルの認証情報: これは、プロジェクトソースで Secrets Manager シークレットまたは CodeConnections 接続が定義されている場合です。これらの認証情報は、指定されたソースリポジトリでのオペレーションにのみ使用されます。これにより、同じプロジェクトで異なるアクセス許可スコープを持つ複数のアクセストークンを設定でき、デフォルトのアカウントレベルの認証情報を使用しないようにすることができます。

  3. プロジェクトレベルのフォールバック認証情報: プライマリソースタイプとして NO_SOURCE を使用してプロジェクトレベルのフォールバック認証情報を設定し、それにシークレットまたは接続を定義できます。これは、プロジェクトに複数のソースがあるものの、同じ認証情報をそれらのソースに使用する場合、またはプロジェクトのデフォルトのアカウントレベルの認証情報を使用しない場合に使用できます。

ステップ 1: Secrets Manager シークレットまたは CodeConnections 接続を作成

Secrets Manager シークレットまたは CodeConnections 接続を作成するには、次の手順に従います。

ステップ 2: CodeBuild プロジェクトの IAM ロールに Secrets Manager シークレットへのアクセスを許可

注記

続行する前に、Secrets Manager または CodeConnections で作成されたトークンにアクセスできるようにしておく必要があります。

CodeBuild プロジェクトの IAM ロールに Secrets Manager または CodeConnections へのアクセスを許可するには、次の IAM ポリシーを追加する必要があります。

CodeBuild プロジェクトの IAM ロールにアクセスを許可するには
  1. CodeBuild プロジェクトの CodeBuild が他の AWS のサービスとやり取りすることを許可 の手順に従って、CodeBuild プロジェクトの IAM ロールを作成します。

  2. 次のいずれかを行います。

    • CodeBuild プロジェクトロールに次の IAM ポリシーを追加して、シークレットへのアクセスを許可します。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "<secret-arn>" ] } ] }

      (オプション) AWS KMS カスタマーマネージドキーを使用して Secrets Manager シークレットを暗号化する場合は、次のポリシーステートメントを追加してアクセスを許可できます。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "<kms-key-arn>", "Condition": { "StringEquals": { "kms:EncryptionContext:SecretARN": "<secret-arn>" } } } ] }
    • CodeBuild プロジェクトロールに次の IAM ポリシーを追加して、接続へのアクセスを許可します。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeconnections:GetConnectionToken", "codeconnections:GetConnection" ], "Resource": [ <connection-arn> ] } ] }

ステップ 3: Secrets Manager または CodeConnections トークンを設定

Secrets Manager トークンまたは CodeConnections トークンを使用して、ソース認証情報を 3 つの異なるレベルで設定できます。

Secrets Manager または CodeConnections トークンをアカウントレベルの認証情報として設定

Secrets Manager シークレットまたは CodeConnections 接続をアカウントレベルの認証情報として設定し、プロジェクトで使用できます。

AWS Management Console
AWS Management Console でアカウントレベルの認証情報として接続を設定するには
  1. [ソースプロバイダ] には、[Bitbucket][GitHub]、または [GitHub Enterprise] を選択します。

  2. [認証情報] で、次のいずれかを実行します。

    • [デフォルトソース認証情報] を選択し、アカウントのデフォルトソース認証情報を使用して、すべてのプロジェクトに適用します。

      1. ソースプロバイダに接続していない場合は、[デフォルトソース認証情報を管理] を選択します。

      2. [認証情報タイプ] では、認証情報タイプを選択します。

      3. [CodeConnections] を選択した場合は、既存の接続を使用するか、新しい接続を作成します。

        別の認証情報タイプを選択した場合は、[サービス] でトークンの保存に使用するサービスを選択し、以下を実行します。

        • [Secrets Manager] を選択した場合は、既存のシークレット接続を使用するか、新しいシークレットを作成して [保存] を選択できます。新しいシークレットの作成方法の詳細については、「Secrets Manager シークレットにトークンを作成して保存」を参照してください。

        • [CodeBuild] を選択した場合は、トークンまたはユーザー名とアプリパスワードを入力し、[保存] を選択します。

    • [カスタムソース認証情報] を選択し、カスタムソース認証情報を使用してアカウントのデフォルト設定を上書きします。

      1. [認証情報タイプ] では、認証情報タイプを選択します。

      2. [接続] で、既存の接続を使用するか、新規の接続を作成するかを選択します。

AWS CLI
AWS CLI でアカウントレベルの認証情報として接続を設定するには
  • ターミナル (Linux/macOS/Unix) またはコマンドプロンプト (Windows) を開きます。AWS CLI を使用して import-source-credentials コマンドを実行します。

    次のコマンドを使用して Secrets Manager のシークレットを設定します。

    aws codebuild import-source-credentials \ --token "<secret-arn>" \ --server-type <source-provider> \ --auth-type SECRETS_MANAGER \ --region <aws-region>

    次のコマンドを使用して CodeConnections 接続を設定します。

    aws codebuild import-source-credentials \ --token "<connection-arn>" \ --server-type <source-provider> \ --auth-type CODECONNECTIONS \ --region <aws-region>

    このコマンドを使用すると、アカウントレベルのデフォルトソース認証情報としてトークンをインポートできます。ImportSourceCredentials API を使用して認証情報をインポートする場合、CodeBuild は、より具体的な認証情報のセットがプロジェクトで設定されていない限り、ウェブフック、ビルドステータスレポート、git clone オペレーションなど、ソースプロバイダとのすべてのやり取りにそのトークンを使用します。

AWS Management Console でアカウントレベルの認証情報として接続を設定するには
  1. [ソースプロバイダ] には、[Bitbucket][GitHub]、または [GitHub Enterprise] を選択します。

  2. [認証情報] で、次のいずれかを実行します。

    • [デフォルトソース認証情報] を選択し、アカウントのデフォルトソース認証情報を使用して、すべてのプロジェクトに適用します。

      1. ソースプロバイダに接続していない場合は、[デフォルトソース認証情報を管理] を選択します。

      2. [認証情報タイプ] では、認証情報タイプを選択します。

      3. [CodeConnections] を選択した場合は、既存の接続を使用するか、新しい接続を作成します。

        別の認証情報タイプを選択した場合は、[サービス] でトークンの保存に使用するサービスを選択し、以下を実行します。

        • [Secrets Manager] を選択した場合は、既存のシークレット接続を使用するか、新しいシークレットを作成して [保存] を選択できます。新しいシークレットの作成方法の詳細については、「Secrets Manager シークレットにトークンを作成して保存」を参照してください。

        • [CodeBuild] を選択した場合は、トークンまたはユーザー名とアプリパスワードを入力し、[保存] を選択します。

    • [カスタムソース認証情報] を選択し、カスタムソース認証情報を使用してアカウントのデフォルト設定を上書きします。

      1. [認証情報タイプ] では、認証情報タイプを選択します。

      2. [接続] で、既存の接続を使用するか、新規の接続を作成するかを選択します。

これで、ビルドプロジェクトでトークンを使用して実行できるようになりました。詳細については、AWS CodeBuild でのビルドプロジェクトの作成およびAWS CodeBuild ビルドを手動で実行を参照してください。

複数のトークンをソースレベルの認証情報として設定

Secrets Manager シークレットまたは CodeConnections 接続をソースレベルの認証情報として使用するには、CodeBuild プロジェクトのトークンを直接参照し、ビルドを開始します。

AWS Management Console
AWS Management Console で複数のトークンをソースレベルの認証情報として設定するには
  1. [ソースプロバイダー] で [GitHub] を選択します。

  2. [認証情報] で、次のいずれかを実行します。

    • [デフォルトソース認証情報] を選択し、アカウントのデフォルトソース認証情報を使用して、すべてのプロジェクトに適用します。

      1. GitHub に接続していない場合は、[デフォルトソース認証情報を管理] を選択します。

      2. [認証情報タイプ] では、[GitHub アプリ] を選択します。

      3. [接続] で、既存の接続を使用するか、新規の接続を作成するかを選択します。

    • [カスタムソース認証情報] を選択し、カスタムソース認証情報を使用してアカウントのデフォルト設定を上書きします。

      1. [認証情報タイプ] では、[GitHub アプリ] を選択します。

      2. [接続] で、既存の接続を使用するか、新規の接続を作成するかを選択します。

  3. [ソースを追加] を選択し、ソースプロバイダと認証情報を選択するプロセスを繰り返します。

AWS CLI
AWS CLI で複数のトークンをソースレベルの認証情報として設定するには
  • ターミナル (Linux/macOS/Unix) またはコマンドプロンプト (Windows) を開きます。AWS CLI を使用して create-project コマンドを実行します。

    以下のコマンドを使用します。

    aws codebuild create-project --region <aws-region> \ --name <project-name> \ --artifacts type=NO_ARTIFACTS \ --environment "type=LINUX_CONTAINER, computeType=BUILD_GENERAL1_SMALL, image=aws/codebuild/amazonlinux2-x86_64-standard:5.0" \ --service-role <service-role-name> \ --source "type=GITHUB, location=<github-repository-1>, auth={type=SECRETS_MANAGER,resource=<secret-or-connection-arn-1>}" \ --secondary-sources "type=GITHUB, location=<github-repository-2>, auth={type=SECRETS_MANAGER,resource=<secret-or-connection-arn-2>}, sourceIdentifier=secondary" aws codebuild start-build --region <aws-region> --project-name <project-name>
AWS Management Console で複数のトークンをソースレベルの認証情報として設定するには
  1. [ソースプロバイダー] で [GitHub] を選択します。

  2. [認証情報] で、次のいずれかを実行します。

    • [デフォルトソース認証情報] を選択し、アカウントのデフォルトソース認証情報を使用して、すべてのプロジェクトに適用します。

      1. GitHub に接続していない場合は、[デフォルトソース認証情報を管理] を選択します。

      2. [認証情報タイプ] では、[GitHub アプリ] を選択します。

      3. [接続] で、既存の接続を使用するか、新規の接続を作成するかを選択します。

    • [カスタムソース認証情報] を選択し、カスタムソース認証情報を使用してアカウントのデフォルト設定を上書きします。

      1. [認証情報タイプ] では、[GitHub アプリ] を選択します。

      2. [接続] で、既存の接続を使用するか、新規の接続を作成するかを選択します。

  3. [ソースを追加] を選択し、ソースプロバイダと認証情報を選択するプロセスを繰り返します。

プロジェクトレベルのソース認証情報のフォールバックを設定

プロジェクトレベルのソース認証情報のフォールバックを設定するには、プロジェクトのプライマリソースに NO_SOURCE を使用し、トークンを参照します。

aws codebuild create-project \ --name <project-name> \ --service-role <service-role-name> \ --artifacts type=NO_ARTIFACTS \ --environment "type=LINUX_CONTAINER, computeType=BUILD_GENERAL1_SMALL, image=aws/codebuild/amazonlinux2-x86_64-standard:5.0" \ --service-role <service-role-name> \ --source "type=NO_SOURCE, auth={type=SECRETS_MANAGER,resource=<secret-or-connection-arn>}, buildspec=<buildspec>" --secondary-sources "type=GITHUB, location=<github-repository>, sourceIdentifier=secondary" aws codebuild start-build --region <aws-region> --project-name <project_name>

NO_SOURCE を使用する場合、通常、buildspec は外部ソースを使用して buildspec を取得するように直接設定されていないため、ソースモデル内で提供されます。通常、NO_SOURCE ソースは buildspec 内からすべての関連するリポジトリのクローンを作成します。設定済みの認証情報をこれらのオペレーションで使用できるようにするには、buildspec で git-credential-helper オプションを有効にします。

env: git-credential-helper: yes

ビルド中、CodeBuild は設定されたトークンから AuthServer フィールドを読み取り、その特定のサードパーティソースプロバイダへのすべての git リクエストにトークン認証情報を使用します。

追加のセットアップオプション

AWS CloudFormation テンプレートを使用して、Secrets Manager のアカウントレベルの認証情報を設定できます。次の AWS CloudFormation テンプレートを使用して、アカウントレベルの認証情報を設定できます。

Parameters: GitHubToken: Type: String NoEcho: true Default: placeholder Resources: CodeBuildAuthTokenSecret: Type: AWS::SecretsManager::Secret Properties: Description: CodeBuild auth token Name: codebuild-auth-token SecretString: !Join - '' - - '{"ServerType":"GITHUB","AuthType":"PERSONAL_ACCESS_TOKEN","Token":"' - !Ref GitHubToken - '"}' Tags: - Key: codebuild:source:provider Value: github - Key: codebuild:source:type Value: personal_access_token CodeBuildSecretsManagerAccountCredential: Type: AWS::CodeBuild::SourceCredential Properties: ServerType: GITHUB AuthType: SECRETS_MANAGER Token: !Ref CodeBuildAuthTokenSecret
注記

同じスタック内にプロジェクトも作成する場合は、AWS CloudFormation 属性 DependsOn を使用して、プロジェクトの前に AccountCredential が作成されていることを確認します。

AWS CloudFormation テンプレートを使用して、Secrets Manager の複数のソースレベルの認証情報を設定することもできます。次の AWS CloudFormation テンプレートを使用して、複数のトークンを使用して複数のソースを取り込むことができます。

Parameters: GitHubTokenOne: Type: String NoEcho: true Default: placeholder GitHubTokenTwo: Type: String NoEcho: true Default: placeholder Resources: CodeBuildSecretsManagerProject: Type: AWS::CodeBuild::Project Properties: Name: codebuild-multitoken-example ServiceRole: <service-role> Environment: Type: LINUX_CONTAINER ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/amazonlinux2-x86_64-standard:5.0 Source: Type: GITHUB Location: <github-repository-one> Auth: Type: SECRETS_MANAGER Resource: !Ref CodeBuildAuthTokenSecretOne SecondarySources: - Type: GITHUB Location: <github-repository-two> Auth: Type: SECRETS_MANAGER Resource: !Ref CodeBuildAuthTokenSecretTwo SourceIdentifier: secondary Artifacts: Type: NO_ARTIFACTS LogsConfig: CloudWatchLogs: Status: ENABLED CodeBuildProjectIAMRoleSecretAccess: Type: AWS::IAM::RolePolicy Properties: RoleName: <role-name> PolicyName: CodeBuildProjectIAMRoleSecretAccessPolicy PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - secretsmanager:GetSecretValue Resource: - !Ref CodeBuildAuthTokenSecretOne - !Ref CodeBuildAuthTokenSecretTwo CodeBuildAuthTokenSecretOne: Type: AWS::SecretsManager::Secret Properties: Description: CodeBuild auth token one Name: codebuild-auth-token-one SecretString: !Join - '' - - '{"ServerType":"GITHUB","AuthType":"PERSONAL_ACCESS_TOKEN","Token":"' - !Ref GitHubTokenOne - '"}' Tags: - Key: codebuild:source:provider Value: github - Key: codebuild:source:type Value: personal_access_token CodeBuildAuthTokenSecretTwo: Type: AWS::SecretsManager::Secret Properties: Description: CodeBuild auth token two Name: codebuild-auth-token-two SecretString: !Join - '' - - '{"ServerType":"GITHUB","AuthType":"PERSONAL_ACCESS_TOKEN","Token":"' - !Ref GitHubTokenTwo - '"}' Tags: - Key: codebuild:source:provider Value: github - Key: codebuild:source:type Value: personal_access_token
プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.