GitHub 그리고 GitHub 엔터프라이즈 서버 액세스는 CodeBuild - AWS CodeBuild

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

GitHub 그리고 GitHub 엔터프라이즈 서버 액세스는 CodeBuild

의 GitHub 경우 개인 액세스 토큰, OAuth 앱, Secrets Manager 암호 또는 GitHub 앱 연결을 사용하여 소스 공급자에 액세스할 수 있습니다. GitHub 엔터프라이즈 서버의 경우 개인 액세스 토큰, Secrets Manager 암호 또는 GitHub 앱 연결을 사용하여 소스 제공자에 액세스할 수 있습니다.

GitHub GitHub 및 GitHub 엔터프라이즈 서버를 위한 앱 연결

GitHub 앱을 사용하여 연결할 수 CodeBuild 있습니다. GitHub 를 통해 앱 연결이 지원됩니다 AWS CodeConnections.

소스 제공자 액세스를 통해 를 구독하거나 에서 자체 호스팅 GitHub 액션 러너 사용 AWS CodeBuild 에서 CodeBuild 사용하도록 구독하여 GitHub 웹후크 이벤트 빌드를 트리거할 수 있습니다. CreateWebhook

참고

CodeConnections 보다 CodeBuild 적은 지역에서만 사용할 수 있습니다. 에서 지역 간 연결을 사용할 수 있습니다. CodeBuild 옵트인 지역에서 생성된 연결은 다른 지역에서 사용할 수 없습니다. 자세한 내용은 AWS CodeConnections 엔드포인트 및 할당량을 참조하세요.

1단계: GitHub 앱 연결 만들기 (콘솔)

다음 단계를 사용하여 CodeBuild 콘솔을 사용하여 프로젝트에 연결을 추가할 수 GitHub 있습니다.

연결을 만들려면 GitHub
  • 개발자 도구 사용 안내서의 연결 만들기 지침을 따르십시오 GitHub.

2단계: 연결을 사용할 수 있는 액세스 권한을 CodeBuild 프로젝트 IAM 역할에 부여합니다.

연결에서 판매된 GitHub 토큰을 사용할 수 있도록 CodeBuild 프로젝트 IAM 역할 액세스 권한을 부여할 수 있습니다.

CodeBuild 프로젝트 IAM 역할 액세스 권한을 부여하려면
  1. 프로젝트의 지침에 따라 CodeBuild 프로젝트의 IAM 역할을 다른 AWS 서비스와 상호 작용할 수 CodeBuild 있도록 허용 생성하세요 CodeBuild .

  2. 지침을 따르면서 CodeBuild 프로젝트 역할에 다음 IAM 정책을 추가하여 연결에 대한 액세스 권한을 부여하세요.

    { "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 를 사용하여 연결에 --auth-type--server-type, 및 --token 를 지정하여 import-source-credentials 명령을 실행합니다.

    다음 명령을 사용합니다.

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

CodeBuild 프로젝트에 여러 토큰을 설정할 수도 있습니다. 자세한 내용은 여러 토큰을 소스 수준 자격 증명으로 구성합니다. 단원을 참조하십시오.

GitHub 및 GitHub 엔터프라이즈 서버 액세스 토큰

액세스 토큰 사전 조건

시작하기 전에 GitHub 액세스 토큰에 적절한 권한 범위를 추가해야 합니다.

의 GitHub 경우 개인용 액세스 토큰의 범위는 다음과 같아야 합니다.

  • repo: 프라이빗 리포지토리의 전체 제어를 부여합니다.

  • repo:status: 퍼블릭 및 프라이빗 리포지토리 커밋 상태에 대한 읽기/쓰기 권한을 부여합니다.

  • admin:repo_hook: 리포지토리 후크의 전체 제어를 부여합니다. 토큰에 repo 범위가 있을 경우 이 범위가 필요하지 않습니다.

  • admin:org_hook: 조직 후크에 대한 모든 권한을 부여합니다. 이 범위는 조직 웹후크 기능을 사용하는 경우에만 필요합니다.

자세한 내용은 웹 사이트의 OAuth 앱 범위 이해를 참조하십시오. GitHub

세분화된 개인용 액세스 토큰을 사용하는 경우 사용 사례에 따라 개인용 액세스 토큰에 다음 권한이 필요할 수 있습니다.

  • 내용: 읽기 전용: 개인 리포지토리에 대한 액세스 권한을 부여합니다. 개인 리포지토리를 원본으로 사용하는 경우 이 권한이 필요합니다.

  • 커밋 상태: 읽기 및 쓰기: 커밋 상태를 만들 수 있는 권한을 부여합니다. 이 권한은 프로젝트에 Webhook이 설정되어 있거나 보고서 작성 상태 기능이 활성화된 경우 필요합니다.

  • 웹후크: 읽기 및 쓰기: 웹훅을 관리할 권한을 부여합니다. 프로젝트에 웹후크가 설정된 경우 이 권한이 필요합니다.

  • 풀 리퀘스트: 읽기 전용: 풀 리퀘스트에 액세스할 수 있는 권한을 부여합니다. 웹후크에 풀 리퀘스트 이벤트에 대한 FILE_PATH 필터가 있는 경우 이 권한이 필요합니다.

  • 관리: 읽기 및 쓰기: 이 권한은 자체 호스팅 GitHub 액션 러너 기능을 에서 사용하는 경우 필요합니다. CodeBuild 자세한 내용은 리포지토리의 등록 토큰 만들기 및 을 참조하십시오. 에서 자체 호스팅 GitHub 액션 러너 사용 AWS CodeBuild

참고

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

자세한 내용은 웹 사이트의 세분화된 개인용 액세스 토큰에 필요한 권한을 참조하십시오. GitHub

액세스 GitHub 토큰으로 연결 (콘솔)

콘솔을 GitHub 사용하여 프로젝트를 액세스 토큰 사용에 연결하려면 프로젝트를 만들 때 다음을 수행하십시오. 자세한 내용은 빌드 프로젝트 만들기(콘솔)을 참조하세요.

  1. 소스 제공자의 경우 선택합니다 GitHub.

  2. 자격 증명의 경우 다음 중 하나를 수행하십시오.

    • 계정의 기본 소스 자격 증명을 사용하여 모든 프로젝트에 적용하려면 기본 소스 자격 증명을 선택합니다.

      1. 연결되지 않은 경우 기본 소스 GitHub 자격 증명 관리를 선택합니다.

      2. 자격 증명 유형에서는 개인용 액세스 토큰을 선택합니다.

      3. 기본 소스 자격 증명을 선택한 경우 서비스에서 토큰을 저장하는 데 사용할 서비스를 선택하고 다음을 수행하십시오.

        • Secrets Manager를 사용하기로 선택한 경우 기존 암호 연결을 사용하거나 새 암호를 만들고 [Save] 를 선택할 수 있습니다. 새 암호를 만드는 방법에 대한 자세한 내용은 을 참조하십시오Secrets Manager 시크릿에 토큰 생성 및 저장.

        • CodeBuild사용하기로 선택한 경우 GitHub 개인용 액세스 토큰을 입력하고 저장을 선택합니다.

    • 사용자 지정 소스 자격 증명을 사용하여 계정의 기본 설정을 재정의하려면 사용자 지정 소스 자격 증명을 선택합니다.

      1. 자격 증명 유형에서는 개인용 액세스 토큰을 선택합니다.

      2. 연결에서 기존 암호 연결을 사용하거나 새 암호를 생성하도록 선택합니다.

액세스 GitHub 토큰으로 연결 (CLI)

다음 단계에 따라 AWS CLI 를 GitHub 사용하여 프로젝트를 액세스 토큰 사용에 연결합니다. with 사용에 대한 자세한 내용은 AWS CodeBuild를 참조하십시오명령줄 참조. AWS CLI

  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 _ ENTERPRISEGITLAB, GITLAB SELF _ MANAGED _입니다.

    • auth-type: 필수 값. 리포지토리에 연결하는 데 사용되는 인증 유형입니다. 유효한 값은OAUTH, BASIC _AUTH, PERSONAL _ ACCESS SECRETS _ TOKENCODECONNECTIONS, MANAGER _입니다. 의 GitHub 경우 PERSONAL ACCESS _ _만 TOKEN 허용됩니다. BASICAUTH_는 Bitbucket 앱 암호에서만 사용할 수 있습니다.

    • should-overwrite: 선택적 값입니다. 리포지토리 소스 자격 증명을 덮어쓰지 않도록 하려면 false로 설정합니다. 리포지토리 소스 자격 증명을 덮어쓰려면 true로 설정합니다. 기본값은 true입니다.

    • token: 필수 값입니다. GitHub 엔터프라이즈 서버의 경우 GitHub 개인용 액세스 토큰입니다. Bitbucket의 경우 이는 개인용 액세스 토큰 또는 앱 비밀번호입니다. 인증 유형의 CODECONNECTIONS 경우 이것이 연결입니다. ARN 인증 유형 SECRETS _의 MANAGER 경우 이것이 비밀입니다. ARN

    • username: 선택적 값입니다. GitHub 및 GitHub 엔터프라이즈 서버 소스 공급자에서는 이 매개 변수가 무시됩니다.

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

    계정을 액세스 토큰과 연결한 후 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_AUTH PERSONAL_ACCESS_TOKENCODECONNECTIONS, 또는 일 수 있습니다. SECRETS_MANAGER

    • serverType은 소스 공급자의 유형입니다. GITHUB,, GITHUB_ENTERPRISE BITBUCKETGITLAB, 또는 일 수 GITLAB_SELF_MANAGED 있습니다.

    • arnARN토큰의 것입니다.

  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앱

OAuth(콘솔) 을 GitHub 사용하여 연결

콘솔을 GitHub 사용하여 프로젝트를 OAuth 앱 사용에 연결하려면 프로젝트를 만들 때 다음을 수행하십시오. 자세한 내용은 빌드 프로젝트 만들기(콘솔)을 참조하세요.

  1. 소스 제공자의 경우 선택합니다 GitHub.

  2. 자격 증명의 경우 다음 중 하나를 수행하십시오.

    • 계정의 기본 소스 자격 증명을 사용하여 모든 프로젝트에 적용하려면 기본 소스 자격 증명을 선택합니다.

      1. 연결되지 않은 경우 기본 소스 GitHub 자격 증명 관리를 선택합니다.

      2. 자격 증명 유형에서 선택합니다. OAuth

      3. 기본 소스 자격 증명을 선택한 경우 서비스에서 토큰을 저장하는 데 사용할 서비스를 선택하고 다음을 수행하십시오.

        • Secrets Manager를 사용하기로 선택한 경우 기존 암호 연결을 사용하거나 새 암호를 만들고 [Save] 를 선택할 수 있습니다. 새 암호를 만드는 방법에 대한 자세한 내용은 을 참조하십시오Secrets Manager 시크릿에 토큰 생성 및 저장.

        • CodeBuild사용하기로 선택한 경우 Connect to를 선택하여 GitHub 계속하십시오.

    • 사용자 지정 소스 자격 증명을 사용하여 계정의 기본 설정을 재정의하려면 사용자 지정 소스 자격 증명을 선택합니다.

      1. 자격 증명 유형에서 선택합니다. OAuth

      2. 연결에서 기존 암호 연결을 사용하거나 새 암호를 생성하도록 선택합니다.

인증된 OAuth 앱을 검토하려면 애플리케이션 GitHub 온으로 이동하여 aws-codesuite에서 AWS CodeBuild (region) 소유한 애플리케이션이 나열되어 있는지 확인하십시오.