GitHub での および GitHub Enterprise Server アクセス CodeBuild - AWS CodeBuild

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

GitHub での および GitHub Enterprise Server アクセス CodeBuild

では GitHub、個人用アクセストークン、OAuthアプリ、Secrets Manager シークレット、または GitHub アプリ接続を使用して、ソースプロバイダーにアクセスできます。 GitHub Enterprise Server では、個人用アクセストークン、Secrets Manager シークレット、または GitHub アプリ接続を使用してソースプロバイダーにアクセスできます。

GitHub GitHub および GitHub Enterprise Server のアプリケーション接続

App を使用して GitHub に接続できます CodeBuild。 GitHub App 接続は を通じてサポートされていますAWS CodeConnections

ソースプロバイダーアクセスを使用すると、 GitHub ウェブフックイベントを使用して にサブスクライブしてビルドをトリガーしたり、 CreateWebhookでセルフホストアクション GitHub ランナーを使用する AWS CodeBuildで を使用したりできます CodeBuild。

注記

CodeConnections は、 よりも少ないリージョンで使用できます CodeBuild。クロスリージョン接続は で使用できます CodeBuild。オプトインリージョンで作成された接続は、他のリージョンでは使用できません。詳細については、「AWS CodeConnections エンドポイントとクォータ」を参照してください。

ステップ 1: GitHub アプリケーションへの接続を作成する (コンソール)

CodeBuild コンソールを使用して でプロジェクトの接続を追加するには、次の手順に従います GitHub。

への接続を作成するには GitHub
  • 「 への接続を作成する」の「 デベロッパーツールユーザーガイド」の手順に従います。 GitHub

ステップ 2: 接続を使用するためのアクセス許可を CodeBuild プロジェクトIAMロールに付与する

接続によって提供される GitHub トークンを使用するアクセス許可を CodeBuild プロジェクトIAMロールに付与できます。

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

  2. 手順に従って、次のIAMポリシーを CodeBuild プロジェクトロールに追加し、接続へのアクセスを許可します。

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

ステップ 3: 新しい接続を使用する CodeBuild ように を設定する

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

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

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

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

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

      2. 認証情報タイプ でGitHub アプリケーション を選択します。

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

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

      1. 認証情報タイプ でGitHub アプリケーション を選択します。

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

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

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

    aws codebuild import-source-credentials --auth-type CODECONNECTIONS --server-type GITHUB --token <connection-arn>

CodeBuild プロジェクトに複数のトークンを設定することもできます。詳細については、「ソースレベルの認証情報として複数のトークンを設定する」を参照してください。

GitHub および GitHub Enterprise Server アクセストークン

アクセストークンの前提条件

開始する前に、 GitHub アクセストークンに適切なアクセス許可スコープを追加する必要があります。

の場合 GitHub、個人用アクセストークンには次のスコープが必要です。

  • repo: プライベートリポジトリのフルコントロールを許可します。

  • repo:status: パブリックおよびプライベートリポジトリのコミットステータスへの読み取り/書き込みアクセスを許可します。

  • admin:repo_hook: リポジトリフックのフルコントロールを許可します。このスコープは、トークンに repo スコープがある場合は必要ありません。

  • admin:org_hook : 組織フックを完全に制御できます。このスコープは、組織のウェブフック機能を使用している場合にのみ必要です。

詳細については、 GitHub ウェブサイトのOAuth「アプリの範囲を理解する」を参照してください。

きめ細かな個人用アクセストークンを使用している場合、ユースケースによっては、個人用アクセストークンに次のアクセス許可が必要になる場合があります。

  • コンテンツ: 読み取り専用 : プライベートリポジトリへのアクセスを許可します。このアクセス許可は、ソースとしてプライベートリポジトリを使用している場合に必要です。

  • コミットステータス: 読み取りと書き込み: コミットステータスを作成するアクセス許可を付与します。このアクセス許可は、プロジェクトでウェブフックがセットアップされている場合、またはレポートビルドステータス機能が有効になっている場合に必要です。

  • ウェブフック: 読み取りと書き込み: ウェブフックを管理するアクセス許可を付与します。このアクセス許可は、プロジェクトでウェブフックが設定されている場合に必要です。

  • プルリクエスト: 読み取り専用 : プルリクエストにアクセスするためのアクセス許可を付与します。このアクセス許可は、ウェブフックにプルリクエストイベントに対するFILE_PATHフィルターがある場合に必要です。

  • 管理: 読み取りおよび書き込み: このアクセス許可は、セルフホスト GitHub アクションランナー機能を で使用している場合に必要です CodeBuild。詳細については、「リポジトリの登録トークンを作成する」および「」を参照してくださいでセルフホストアクション GitHub ランナーを使用する AWS CodeBuild

注記

組織リポジトリにアクセスする場合は、組織をアクセストークンのリソース所有者として指定してください。

詳細については、 GitHub ウェブサイトの「きめ細かな個人用アクセストークンに必要なアクセス許可」を参照してください。

アクセストークン GitHub で接続する (コンソール)

コンソールを使用してアクセストークン GitHub を使用してプロジェクトを に接続するには、プロジェクトを作成するときに次の操作を行います。詳細については、ビルドプロジェクトの作成 (コンソール) を参照してください。

  1. ソースプロバイダー で、 を選択しますGitHub

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

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

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

      2. 認証情報タイプ で個人用アクセストークン を選択します。

      3. デフォルトのソース認証情報 を選択した場合サービスでトークンの保存に使用するサービスを選択し、以下を実行します。

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

        • の使用を選択した場合はCodeBuildGitHub 個人用アクセストークンを入力し、保存 を選択します。

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

      1. 認証情報タイプ で個人用アクセストークン を選択します。

      2. 接続 で、既存のシークレット接続を使用するか、新しいシークレットを作成するかを選択します。

アクセストークン (CLI) GitHub を使用して接続する

アクセストークンを使用してプロジェクトを AWS CLI に接続するには GitHub 、次の手順に従います。 AWS CLI で を使用する方法については、 AWS CodeBuild「」を参照してくださいコマンドラインリファレンス

  1. import-source-credentials コマンドを実行します。

    aws codebuild import-source-credentials --generate-cli-skeleton

    JSON形式のデータが出力に表示されます。 AWS CLI がインストールされているローカルコンピュータまたはインスタンス上の場所にあるファイル ( などimport-source-credentials.json) にデータをコピーします。コピーされたデータを次のように変更して、結果を保存します。

    { "serverType": "server-type", "authType": "auth-type", "shouldOverwrite": "should-overwrite", "token": "token", "username": "username" }

    以下に置き換えます:

    • server-type: 必須値。この認証情報に使用されるソースプロバイダー。有効な値は、GITHUB、BITBUCKET、GITHUB_ENTERPRISE、GITLAB、および GITLAB_SELF_ ですMANAGED。

    • auth-type: 必須値。リポジトリへの接続に使用される認証のタイプ。有効な値は、OAUTH、BASIC_AUTH、PERSONAL_ACCESS_TOKEN、CODECONNECTIONS、および SECRETS_ ですMANAGER。では GitHub、PERSONAL_ACCESS_TOKEN のみが許可されます。BASIC_AUTH は Bitbucket アプリのパスワードでのみ許可されます。

    • should-overwrite: オプションの値。リポジトリソースの認証情報が上書きされないようにするには、false に設定します。リポジトリソースの認証情報を上書きするには、true に設定します。デフォルト値は true です。

    • token: 必須値。 GitHub または GitHub Enterprise Server の場合、これは個人用アクセストークンです。Bitbucket の場合、これは個人用アクセストークンまたはアプリパスワードです。認証タイプ の場合CODECONNECTIONS、これは接続 ですARN。認証タイプ SECRETS_ の場合MANAGER、これはシークレット ですARN。

    • username: オプションの値。このパラメータは、 GitHub および GitHub Enterprise Server ソースプロバイダーでは無視されます。

  2. アカウントをアクセストークンに接続するには、ステップ 1 で保存した import-source-credentials.json ファイルが含まれるディレクトリに切り替え、もう一度 import-source-credentials コマンドを実行します。

    aws codebuild import-source-credentials --cli-input-json file://import-source-credentials.json

    JSON形式のデータは、Amazon リソースネーム () とともに出力に表示されますARN。

    { "arn": "arn:aws:codebuild:region:account-id:token/server-type" }
    注記

    同じサーバータイプと認証タイプを持つ import-source-credentials コマンドを 2 回目に実行した場合、保存されたアクセストークンが更新されます。

    アカウントがアクセストークンで接続されたら、 create-projectを使用して CodeBuild プロジェクトを作成できます。詳細については、「ビルドプロジェクトの作成 (AWS CLI)」を参照してください。

  3. 接続されたアクセストークンを表示するには、list-source-credentials コマンドを実行します。

    aws codebuild list-source-credentials

    JSON形式のsourceCredentialsInfosオブジェクトが出力に表示されます。

    { "sourceCredentialsInfos": [ { "authType": "auth-type", "serverType": "server-type", "arn": "arn" } ] }

    sourceCredentialsObject には、接続されたソース認証情報のリストが含まれています。

    • authType は、認証情報により使用される認証のタイプです。これは、OAUTH、、BASIC_AUTHPERSONAL_ACCESS_TOKENCODECONNECTIONSまたは ですSECRETS_MANAGER

    • serverType は、ソースプロバイダーのタイプです。これは、GITHUB、、GITHUB_ENTERPRISEBITBUCKETGITLABまたは ですGITLAB_SELF_MANAGED

    • arn はトークンARNの です。

  4. ソースプロバイダーから切断してアクセストークンを削除するには、 で delete-source-credentials コマンドを実行しますARN。

    aws codebuild delete-source-credentials --arn arn-of-your-credentials

    JSON形式のデータは、削除された認証情報ARNの とともに返されます。

    { "arn": "arn:aws:codebuild:region:account-id:token/server-type" }

GitHub OAuth アプリ

GitHub を使用して接続する OAuth (コンソール)

コンソールを使用してプロジェクトを OAuth アプリ GitHub に接続するには、プロジェクトを作成するときに次の操作を行います。詳細については、ビルドプロジェクトの作成 (コンソール) を参照してください。

  1. ソースプロバイダー で、 を選択しますGitHub

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

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

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

      2. 認証情報タイプ で、 を選択しますOAuth

      3. デフォルトのソース認証情報 を選択した場合サービスでトークンの保存に使用するサービスを選択し、以下を実行します。

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

        • の使用を選択した場合はCodeBuild「 に接続」を選択して続行します GitHub

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

      1. 認証情報タイプ で、 を選択しますOAuth

      2. 接続 で、既存のシークレット接続を使用するか、新しいシークレットを作成するかを選択します。

承認されたOAuthアプリケーションを確認するには、 のアプリケーションに移動し GitHub、aws-codesuite AWS CodeBuild (region)が所有する という名前のアプリケーションがリストされていることを確認します。