

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

# GitHub および GitHub Enterprise Server アクセストークン
<a name="access-tokens-github"></a>

## アクセストークンの前提条件
<a name="access-tokens-github-prereqs"></a>

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

GitHub では、個人用アクセストークンに次のスコープが必要です。
+ **repo**: プライベートリポジトリのフルコントロールを許可します。
+ **repo:status**: パブリックおよびプライベートリポジトリのコミットステータスへの読み取り/書き込みアクセスを許可します。
+ **admin:repo\$1hook**: リポジトリフックのフルコントロールを許可します。このスコープは、トークンに `repo` スコープがある場合は必要ありません。
+ **admin:org\$1hook**: 組織フックの完全な制御を付与します。このスコープは、組織のウェブフック機能を使用している場合にのみ必要です。

詳細については、GitHub ウェブサイトの [Understanding Scopes for OAuth Apps](https://developer.github.com/apps/building-oauth-apps/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](https://docs.github.com/en/rest/actions/self-hosted-runners?apiVersion=2022-11-28#create-a-registration-token-for-a-repository)」と「[チュートリアル: CodeBuild がホストする GitHub Actions ランナーを設定](action-runner.md)」を参照してください。

**注記**  
組織リポジトリにアクセスする場合は、アクセストークンのリソース所有者として組織を指定する必要があります。

詳細については、GitHub ウェブサイトの「[Permissions required for fine-grained personal access tokens](https://docs.github.com/en/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens?apiVersion=2022-11-28)」を参照してください。

## GitHub をアクセストークンで接続する（コンソール）
<a name="access-tokens-github-console"></a>

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

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

1. **[認証情報]** で、次のいずれかを実行します。
   + アカウント認証情報の使用を選択し、アカウントのデフォルトソース認証情報をすべてのプロジェクトに適用します。

     1. GitHub に接続していない場合は、**[Manage account credential]** を選択します。

     1. **[認証情報タイプ]** では、**[個人用アクセストークン]** を選択します。
   + **[Service]** でアカウントレベルの認証情報を使用することを選択した場合は、トークンの保存に使用するサービスを選択し、以下を実行します。

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

     1. **[CodeBuild]** を使用する場合は、GitHub の個人用アクセストークンを入力し、**[Save]** を選択します。
   + カスタムソース認証情報を使用してアカウントの認証情報設定を上書きする場合のみ、**[Use override credentials for this project only]** を選択します。

     1. 入力された認証情報リストから、**[Personal access token]** の下にあるオプションのいずれかを選択します。

     1. 説明で**新しい個人用アクセストークン接続の作成**を選択することで、新しい個人用アクセストークンを作成することもできます。

## GitHub をアクセストークンで接続する（CLI）
<a name="access-tokens-github-cli"></a>

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

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\$1ENTERPRISE、GITLAB、GITLAB\$1SELF\$1MANAGED です。
   + *auth-type*: 必須値。リポジトリへの接続に使用される認証のタイプ。有効な値は、OAUTH、BASIC\$1AUTH、PERSONAL\$1ACCESS\$1TOKEN、CODECONNECTIONS、SECRETS\$1MANAGER です。GitHub では、PERSONAL\$1ACCESS\$1TOKEN のみが許可されます。BASIC\$1AUTH は、Bitbucket アプリパスワードでのみ許可されます。
   + *should-overwrite*: オプションの値。リポジトリソースの認証情報が上書きされないようにするには、`false` に設定します。リポジトリソースの認証情報を上書きするには、`true` に設定します。デフォルト値は `true` です。
   + *token*: 必須値。GitHub または GitHub Enterprise Server の場合、これは個人用アクセストークンです。Bitbucket の場合、これは個人用アクセストークンまたはアプリパスワードです。認証タイプが CODECONNECTIONS の場合、これは接続 ARN です。認証タイプが SECRETS\$1MANAGER の場合、これはシークレット ARN です。
   + *username*: オプションの値。このパラメーターは、GitHub および GitHub エンタープライズサーバーソースプロバイダーでは無視されます。

1. アカウントをアクセストークンに接続するには、ステップ 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)](create-project.md#create-project-cli)」を参照してください。

1. 接続されたアクセストークンを表示するには、**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 です。

1. ソースプロバイダーから切断してそのアクセストークンを削除するには、その 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"
       }
   ```