CodeBuild でソースプロバイダにアクセストークンを使用する - AWS CodeBuild

CodeBuild でソースプロバイダにアクセストークンを使用する

このサンプルでは、アクセストークンを使用して GitHub または Bitbucket に接続する方法を示します。GitHub または GitHub Enterprise Server の場合、個人用アクセストークンを使用します。Bitbucket では、アプリのパスワードを使用します。

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

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

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

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

  • repo:status: ステータスをコミットするためのアクセスを許可します。

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

詳細については、GitHub ウェブサイトの Understanding Scopes for OAuth Apps を参照してください。

Bitbucket では、アプリパスワードに次のスコープが必要です。

  • repository:read: 承認側ユーザーがアクセスできるすべてのリポジトリへの読み取りアクセスを許可します。

  • pullrequest:read: プルリクエストの読み取りアクセスを許可します。プロジェクトに Bitbucket Webhook がある場合、アプリパスワードにはこのスコープが必要です。

  • webhook: Webhook へのアクセスを許可します。プロジェクトに Webhook オペレーションがある場合、アプリパスワードにはこのスコープが必要です。

詳細については、Bitbucket ウェブサイトの「Scopes for Bitbucket Cloud REST API」と「OAuth on Bitbucket Cloud」を参照してください。

アクセストークンを使用してソースプロバイダに接続する (コンソール)

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

GitHub の場合:

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

  2. [リポジトリ] で、[Connect with a GitHub personal access token (GitHub の個人用アクセストークンで接続する)] を選択します。

  3. [GitHub personal access token (GitHub の個人用アクセストークン)] に、GitHub の個人用アクセストークンを入力します。

  4. [トークンの保存] を選択します。

Bitbucket の場合:

  1. [ソースプロバイダー] で、[Bitbucket] を選択します。

    注記

    CodeBuild は Bitbucket Server をサポートしていません。

  2. [リポジトリ] で、[Connect with a Bitbucket app password (Bitbucket アプリパスワードで接続する)] を選択します。

  3. [Bitbucket username (Bitbucket ユーザー名)] に、Bitbucket ユーザー名を入力します。

  4. [Bitbucket app password (Bitbucket のアプリパスワード)] に、Bitbucket アプリパスワードを入力します。

  5. [Save Bitbucket credentials (Bitbucket 認証情報の保存)] を選択します。

アクセストークンを使用してソースプロバイダに接続する (CLI)

AWS CLI を使用し、アクセストークンを使用してプロジェクトを GitHub または Bitbucket に接続するには、以下のステップに従います。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、GITHUB_ENTERPRISE、BITBUCKET です。

    • auth-type: 必須値。GitHub、GitHub Enterprise Server、または Bitbucket リポジトリに接続するために使用される認証のタイプ。有効な値は、PERSONAL_ACCESS_TOKEN と BASIC_AUTH です。CodeBuild API を使用して OAUTH 接続を作成することはできません。代わりに CodeBuild コンソールを使用する必要があります。

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

    • token: 必須値。GitHub または GitHub Enterprise Server の場合、これは個人用アクセストークンです。Bitbucket では、これはアプリのパスワードです。

    • username: オプションの値。authType が BASIC_AUTH の場合の Bitbucket ユーザー名。その他のタイプのソースプロバイダーまたは接続では、このパラメータは無視されます。

  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 は、認証情報により使用される認証のタイプです。これは、OAUTHBASIC_AUTH、または PERSONAL_ACCESS_TOKEN です。

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

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

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

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

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

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