

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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 웹사이트의 [OAuth 앱에 대한 범위 이해](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/)를 참조하십시오.

세분화된 개인 액세스 토큰을 사용하는 경우 사용 사례에 따라 개인 액세스 토큰에 다음 권한이 필요할 수 있습니다.
+ **목차: 읽기 전용**: 프라이빗 리포지토리에 대한 액세스 권한을 부여합니다. 프라이빗 리포지토리를 소스로 사용하는 경우 이 권한이 필요합니다.
+ **커밋 상태: 읽기 및 쓰기:** 커밋 상태를 생성할 수 있는 권한을 부여합니다. 프로젝트에 웹후크가 설정되어 있거나 보고서 빌드 상태 기능이 활성화된 경우 이 권한이 필요합니다.
+ **웹후크: 읽기 및 쓰기:** 웹후크를 관리할 수 있는 권한을 부여합니다. 프로젝트에 웹후크가 설정된 경우 이 권한이 필요합니다.
+ **pull 요청: 읽기 전용**: pull 요청에 액세스할 수 있는 권한을 부여합니다. 이 권한은 웹후크에 pull 요청 이벤트에 대한 `FILE_PATH` 필터가 있는 경우 필요합니다.
+ **관리: 읽기 및 쓰기:** CodeBuild에서 자체 호스팅 GitHub Action 실행기 기능을 사용하는 경우 이 권한이 필요합니다. 자세한 내용은 [리포지토리에 대한 등록 토큰 생성](https://docs.github.com/en/rest/actions/self-hosted-runners?apiVersion=2022-11-28#create-a-registration-token-for-a-repository) 및 [자습서: CodeBuild 호스팅 GitHub Action 실행기 구성](action-runner.md) 섹션을 참조하세요.

**참고**  
조직 리포지토리에 액세스하려면 조직을 액세스 토큰의 리소스 소유자로 지정해야 합니다.

자세한 내용은 GitHub 웹 사이트의 [ 세분화된 개인 액세스 토큰에 필요한 권한을](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에 연결되지 않은 경우 **계정 자격 증명 관리**를 선택합니다.

     1. **자격 증명 유형**에서 **개인 액세스 토큰**을 선택합니다.
   + **서비스**에 계정 수준 자격 증명을 사용하기로 선택한 경우 토큰을 저장하는 데 사용할 서비스를 선택하고 다음을 수행합니다.

     1. **Secrets Manager**를 사용하도록 선택한 경우 기존 보안 암호 연결을 사용하거나 새 보안 암호를 생성하고 **저장**을 선택할 수 있습니다. 새 암호를 생성하는 방법에 대한 자세한 정보는 [Secrets Manager 보안 암호에 토큰 생성 및 저장](asm-create-secret.md) 섹션을 참조하세요.

     1. **CodeBuild**를 사용하도록 선택한 경우 GitHub 개인 액세스 토큰을 입력하고 **저장**을 선택합니다.
   + 사용자 지정 소스 자격 증명을 사용하여 계정의 자격 증명 설정을 재정의하려면 **이 프로젝트에 대해서만 자격 증명 재정의 사용**을 선택합니다.

     1. 채워진 자격 증명 목록에서 **개인 액세스 토큰** 아래의 옵션 중 하나를 선택합니다.

     1. 설명에서 **새 개인 액세스 토큰 연결 생성**을 선택하여 새 개인 액세스 토큰을 생성할 수도 있습니다.

## 액세스 토큰을 사용하여 GitHub에 연결(CLI)
<a name="access-tokens-github-cli"></a>

다음 단계에 따라를 사용하여 액세스 토큰 AWS CLI 을 사용하여 프로젝트를 GitHub에 연결합니다. 와 AWS CLI 함께를 사용하는 방법에 대한 자세한 내용은 단원을 AWS CodeBuild참조하십시오[명령줄 참조](cmd-ref.md).

1. **import-source-credentials** 명령을 실행합니다.

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

   JSON 형식 데이터가 출력에 표시됩니다. 가 설치된 로컬 컴퓨터 또는 인스턴스의 위치에 있는 파일(예: `import-source-credentials.json`)에 데이터를 복사 AWS CLI 합니다. 복사된 데이터를 다음과 같이 수정하고 결과를 저장합니다.

   ```
   {
       "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 Enterprise Server 소스 공급자의 경우 이 파라미터가 무시됩니다.

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** 명령을 동일한 서버 유형과 인증 유형으로 다시 실행하면 저장된 액세스 토큰이 업데이트됩니다.

   계정을 액세스 토큰과 연결한 후 `create-project`를 사용하여 CodeBuild 프로젝트를 생성할 수 있습니다. 자세한 내용은 [빌드 프로젝트 생성(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
   ```

   JSON 형식의 데이터가 반환되고 삭제된 자격 증명의 ARN이 표시됩니다.

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