GitHub 앱을 사용하여 CodeBuild에 연결할 수 있습니다. GitHub 앱 연결은 AWS CodeConnections를 통해 지원됩니다
소스 공급자 액세스를 사용하면 CreateWebhook를 사용하여 GitHub Webhook 이벤트에 가입하여 빌드를 트리거하거나 CodeBuild에서 자습서: CodeBuild 호스팅 GitHub Action 실행기 구성를 사용할 수 있습니다.
참고
CodeConnections는 CodeBuild보다 적은 리전에서 사용할 수 있습니다. CodeBuild에서 리전 간 연결을 사용할 수 있습니다. 옵트인 리전에서 생성된 연결은 다른 리전에서 사용할 수 없습니다. 자세한 내용은 AWS CodeConnections 엔드포인트 및 할당량을 참조하세요.
주제
1단계: GitHub 앱에 대한 연결 생성(콘솔)
다음 단계를 통해 CodeBuild 콘솔을 사용하여 GitHub의 프로젝트에 대한 연결을 추가할 수 있습니다.
GitHub에 대한 연결을 생성하려면
-
개발자 도구 사용 설명서의 GitHub에 대한 연결 생성을 위한 지침을 따릅니다.
2단계: CodeBuild 프로젝트에 연결을 사용할 IAM 역할 액세스 권한 부여
연결에서 제공한 GitHub 토큰을 사용할 수 있는 IAM 역할 액세스 권한을 CodeBuild 프로젝트에 부여할 수 있습니다.
CodeBuild 프로젝트에 IAM 역할 액세스 권한을 부여하려면
-
CodeBuild 프로젝트의 CodeBuild가 다른 AWS 서비스와 상호 작용하도록 허용에 대한 지침에 따라 CodeBuild 프로젝트의 IAM 역할을 생성합니다.
-
지침에 따라 CodeBuild 프로젝트 역할에 다음 IAM 정책을 추가하여 연결에 대한 액세스 권한을 부여합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeconnections:GetConnectionToken", "codeconnections:GetConnection" ], "Resource": [
<connection-arn>
] } ] }
3단계: 새 연결을 사용하도록 CodeBuild 구성
연결을 계정 수준 자격 증명으로 구성하고 프로젝트에서 사용할 수 있습니다.
AWS Management Console에서 연결을 계정 수준 자격 증명으로 구성하려면
-
소스 공급자에서 GitHub를 선택합니다.
-
자격 증명에서 다음 중 하나를 수행합니다.
-
기본 소스 자격 증명을 선택하여 계정의 기본 소스 자격 증명을 사용하여 모든 프로젝트에 적용합니다.
-
GitHub에 연결되지 않은 경우 기본 소스 자격 증명 관리를 선택합니다.
-
자격 증명 유형에서 GitHub 앱을 선택합니다.
-
연결에서 기존 연결을 선택하거나 연결을 새로 생성합니다.
-
-
사용자 지정 소스 자격 증명을 선택하여 사용자 지정 소스 자격 증명을 사용하여 계정의 기본 설정을 재정의합니다.
-
자격 증명 유형에서 GitHub 앱을 선택합니다.
-
연결에서 기존 연결을 선택하거나 연결을 새로 생성합니다.
-
-
CodeBuild 프로젝트에 여러 토큰을 설정할 수도 있습니다. 자세한 내용은 여러 토큰을 소스 수준 자격 증명으로 구성 단원을 참조하십시오.
GitHub 앱을 사용한 문제 해결
다음 정보는 GitHub App과 관련된 문제를 해결하는 데 도움이 될 수 있습니다.
주제
원하지 않는 리전에 AWS Connector for GitHub 앱 설치
문제: GitHub Marketplace에서 AWS Connector for GitHub를 설치했지만 원하지 않는 리전에서 연결이 생성되었습니다. GitHub 웹 사이트에서 앱을 재구성하려고 하면 앱이 이미 GitHub 계정에 설치되어 있기 때문에 작동하지 않습니다.
가능한 원인: 앱이 GitHub 계정에 이미 설치되어 있으므로 앱 권한만 재구성할 수 있습니다.
권장 솔루션: 원하는 리전의 설치 ID로 새 연결을 생성할 수 있습니다.
-
https://console.aws.amazon.com/codesuite/settings/connections
에서 CodeConnections 콘솔을 열고 AWS 콘솔 탐색 모음의 리전 선택기를 사용하여 원하는 리전으로 이동합니다. -
개발자 도구 사용 설명서의 GitHub에 대한 연결 생성을 위한 지침을 따릅니다.
참고
이미 AWS Connector for GitHub 앱을 설치했으므로 새 앱을 설치하는 대신 선택할 수 있습니다.
GitHub 앱 연결에는 리포지토리에 대한 액세스 권한이 없습니다.
문제: CodeBuild 또는 CodePipeline과 같은 연결을 사용하는 AWS 서비스는 리포지토리에 대한 액세스 권한이 없거나 리포지토리가 존재하지 않는다고 보고합니다. 몇 가지 가능한 오류 메시지는 다음과 같습니다.
-
Authentication required for primary source.
-
Unable to create webhook at this time. Please try again later.
-
Failed to create webhook. GitHub API limit reached. Please try again later.
- 가능한 원인: GitHub 앱을 사용하고 웹후크 권한 범위를 부여하지 않았을 수 있습니다.
-
권장 솔루션: 필요한 권한 범위를 부여하려면 검토하거나 수정하려는 GitHub 앱으로 이동
의 지침에 따라 설치된 앱을 구성합니다. 권한 섹션에서 앱에 웹후크 권한이 없는 것을 확인할 수 있으며 새로 요청된 권한을 검토할 수 있는 옵션이 있습니다. 새 권한을 검토하고 수락합니다. 자세한 내용은 GitHub 앱에 대한 업데이트된 권한 승인 을 참조하세요. - 가능한 원인: 연결이 예상대로 작동했지만 갑자기 리포지토리에 액세스할 수 없습니다.
-
가능한 솔루션: 먼저 권한 부여
및 설치 를 검토하여 시작한 다음 GitHub 앱이 권한 부여 및 설치되었는지 확인합니다. GitHub 앱 설치가 일시 중지된 경우 일시 중지를 해제해야 합니다. GitHub 앱이 UAT(사용자 액세스 토큰) 연결에 대해 승인되지 않았거나 IAT(설치 액세스 토큰) 연결에 설치되지 않은 경우 기존 연결을 더 이상 사용할 수 없으므로 새 연결을 생성해야 합니다. GitHub 앱을 다시 설치해도 이전 설치와 연결된 이전 연결은 복원되지 않습니다. 가능한 솔루션: 연결이 UAT 연결인 경우 여러 CodeBuild 동시 빌드 실행에 사용되는 것과 같이 연결이 동시에 사용되지 않는지 확인합니다. 이는 GitHub가 연결에 의해 만료되는 토큰이 새로 고쳐지면 이전에 발급된 UAT를 즉시 무효화하기 때문입니다. 여러 동시 CodeBuild 빌드에 UAT 연결을 사용해야 하는 경우 여러 연결을 생성하고 각 연결을 독립적으로 사용할 수 있습니다.
가능한 솔루션: 지난 6개월 동안 UAT 연결을 사용하지 않은 경우 GitHub에서 연결이 무효화됩니다. 이를 수정하려면 새로운 연결을 생성합니다.
- 가능한 원인: 앱을 설치하지 않고 UAT 연결을 사용했을 수 있습니다.
-
권장 솔루션: UAT 연결을 생성하면 GitHub 앱 설치와 연결을 연결할 필요가 없지만 리포지토리에 액세스하려면 설치가 필요합니다. 지침에 따라 설치를 검토
하여 GitHub 앱이 설치되어 있는지 확인합니다. 설치되지 않은 경우 GitHub 앱 페이지 로 이동하여 앱을 설치합니다. UAT의 액세스에 대한 자세한 내용은 사용자 액세스 토큰 정보 를 참조하세요.
AWS 서비스의 IAM 역할에 필요한 IAM 권한이 없습니다.
문제: 다음 오류 메시지 중 하나가 표시됩니다.
-
Access denied to connection
<connection-arn>
-
Failed to get access token from
<connection-arn>
권장 솔루션: 일반적으로 CodePipeline 또는 CodeBuild와 같은 AWS 서비스와의 연결을 사용합니다. AWS 서비스에 IAM 역할을 부여하면 AWS 서비스에서 역할의 권한을 사용하여 사용자를 대신하여 작업할 수 있습니다. IAM 역할에 필요한 권한이 있는지 확인합니다. 필요한 IAM 권한에 대한 자세한 내용은 개발자 도구 콘솔 사용 설명서의 AWS CodeStar 알림 및 CodeConnections에 대한 연결 및 자격 증명 및 액세스 관리를 사용할 수 있는 IAM 역할 액세스 권한을 CodeBuild 프로젝트에 부여를 참조하세요.