アクセストークンの前提条件
開始する前に、GitHub アクセストークンへの適切なアクセス許可スコープを追加する必要があります。
GitHub では、個人用アクセストークンに次のスコープが必要です。
-
repo: プライベートリポジトリのフルコントロールを許可します。
-
repo:status: パブリックおよびプライベートリポジトリのコミットステータスへの読み取り/書き込みアクセスを許可します。
-
admin:repo_hook: リポジトリフックのフルコントロールを許可します。このスコープは、トークンに
repo
スコープがある場合は必要ありません。 -
admin:org_hook: 組織フックの完全な制御を付与します。このスコープは、組織のウェブフック機能を使用している場合にのみ必要です。
詳細については、GitHub ウェブサイトの Understanding Scopes for OAuth Apps
きめ細かい個人用アクセストークンを使用している場合、ユースケースによっては、個人用アクセストークンに次のアクセス許可が必要になる場合があります。
-
Contents: Read-only: プライベートリポジトリへのアクセスを付与します。このアクセス許可は、プライベートリポジトリをソースとして使用している場合に必要です。
-
Commit statuses: Read and write: コミットステータスを作成するアクセス許可を付与します。このアクセス許可は、プロジェクトにウェブフックが設定されている場合、または [ビルドのステータスを報告] 機能が有効になっている場合に必要です。
-
Webhooks: Read and write: ウェブフックを管理するアクセス許可を付与します。このアクセス許可は、プロジェクトにウェブフックが設定されている場合に必要です。
-
Pull requests: Read-only: プルリクエストにアクセスするアクセス許可を付与します。このアクセス許可は、ウェブフックにプルリクエストイベントに対する
FILE_PATH
フィルタがある場合に必要です。 -
Administration: Read and write: このアクセス許可は、CodeBuild でセルフホスト型の GitHub Actions ランナー機能を使用している場合に必要です。詳細については、「Create a registration token for a repository
」と「チュートリアル: CodeBuild がホストする GitHub Actions ランナーを設定」を参照してください。
注記
組織リポジトリにアクセスする場合は、アクセストークンのリソース所有者として組織を指定する必要があります。
詳細については、GitHub ウェブサイトの「Permissions required for fine-grained personal access tokens
GitHub をアクセストークンで接続する(コンソール)
コンソールを使用し、アクセストークンを使用してプロジェクトを GitHub に接続するには、プロジェクトを作成するときに以下の操作を実行します。詳細については、ビルドプロジェクトの作成 (コンソール) を参照してください。
-
[ソースプロバイダー] で [GitHub] を選択します。
-
[認証情報] で、次のいずれかを実行します。
-
[デフォルトソース認証情報] を選択し、アカウントのデフォルトソース認証情報を使用して、すべてのプロジェクトに適用します。
-
GitHub に接続していない場合は、[デフォルトソース認証情報を管理] を選択します。
-
[認証情報タイプ] では、[個人用アクセストークン] を選択します。
-
[デフォルトソース認証情報] を選択した場合は、[サービス] でトークンの保存に使用するサービスを選択し、以下を実行します。
-
[Secrets Manager] を使用する場合は、既存のシークレット接続を使用するか、新しいシークレットを作成して [保存] を選択できます。新しいシークレットの作成方法の詳細については、「Secrets Manager シークレットにトークンを作成して保存」を参照してください。
-
[CodeBuild] を使用する場合は、[GitHub の個人用アクセストークン] を入力し、[保存] を選択します。
-
-
-
[カスタムソース認証情報] を選択し、カスタムソース認証情報を使用してアカウントのデフォルト設定を上書きします。
-
[認証情報タイプ] では、[個人用アクセストークン] を選択します。
-
[接続] で、既存のシークレット接続を使用するか、新しいシークレットを作成するかを選択します。
-
-
GitHub をアクセストークンで接続する(CLI)
AWS CLI を使用し、アクセストークンを使用してプロジェクトを GitHub に接続するには、以下のステップに従います。AWS CLI を AWS CodeBuild と組み合わせて使用する方法については、「コマンドラインリファレンス」を参照してください。
-
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 エンタープライズサーバーソースプロバイダーでは無視されます。
-
-
アカウントをアクセストークンに接続するには、ステップ 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 回目に実行した場合、保存されたアクセストークンが更新されます。
アカウントがアクセストークンに接続されたら、CodeBuild を使用して
create-project
プロジェクトを作成できます。詳細については、「ビルドプロジェクトの作成 (AWS CLI)」を参照してください。 -
接続されたアクセストークンを表示するには、list-source-credentials コマンドを実行します。
aws codebuild list-source-credentials
JSON 形式
sourceCredentialsInfos
オブジェクトが出力に表示されます。{ "sourceCredentialsInfos": [ { "authType": "
auth-type
", "serverType": "server-type
", "arn": "arn
" } ] }sourceCredentialsObject
には、接続されたソース認証情報のリストが含まれています。-
authType
は、認証情報により使用される認証のタイプです。これは、OAUTH
、BASIC_AUTH
、PERSONAL_ACCESS_TOKEN
、CODECONNECTIONS
、またはSECRETS_MANAGER
です。 -
serverType
は、ソースプロバイダーのタイプです。これは、GITHUB
、GITHUB_ENTERPRISE
、BITBUCKET
、GITLAB
、またはGITLAB_SELF_MANAGED
です。 -
arn
は、トークンの ARN です。
-
-
ソースプロバイダーから切断してそのアクセストークンを削除するには、その 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
" }