조직에서 Key Vault 지원 자격 증명으로 등록하는 서비스 ID인 Bring Your Own GitHub 앱을 사용하여 에이전트를 GitHub 연결합니다.
Important
이 자습서에서는 Key Vault 지원 자격 증명과 함께 BYO GitHub 앱을 사용하여 GitHub 리포지토리에 대한 앱 기반 액세스를 설정합니다. 모든 작업은 개별 사용자가 아닌 앱 ID에 기인합니다.
BYO 앱을 사용하는 경우
다음과 같은 경우 BYO 앱을 사용합니다.
- 조직에는 앱 기반 인증 및 키 양육권 제어가 필요합니다.
-
*.ghe.com리포지토리에 연결하고 있습니다 (필수). - 사용자 토큰 대신 설치 토큰 기반 액세스를 원합니다.
필수 조건
- 관리자 또는 표준 사용자 역할로 에이전트 실행
- 대상 호스트에서 만든 GitHub 앱(
github.com또는*.ghe.com) - GitHub 조직 또는 리포지토리 관리자 액세스(GitHub App 범위를 생성, 설치 또는 확인하기 위한)
- 비밀로 Azure Key Vault 저장된 앱 프라이빗 키
- 해당 자격 증명 모음에서 Key Vault 비밀 사용자 역할을 가진 에이전트 관리 ID.
1단계: GitHub 앱 만들기
올바른 권한이 있는 GitHub 앱이 이미 있는 경우 Step 2로 건너뜁니다.
- GitHub 호스트로 이동합니다.
-
github.com: 조직으로 이동한 다음 설정>개발자 설정>GitHub 앱>새 GitHub 앱을(를) 선택합니다. -
<tenant>.ghe.com: GHE 인스턴스에서 동일한 경로입니다.
-
- 앱 세부 정보를 입력합니다.
-
GitHub 앱 이름: 예를 들어
contoso-sre-agent-reader(충돌을 방지하기 위해 조직 이름의 접두사). -
홈페이지 URL:
https://sre.azure.com. - 웹후크: 활성 선택 취소(에이전트는 웹후크를 사용하지 않음).
-
GitHub 앱 이름: 예를 들어
-
사용 권한에서 다음을 설정합니다.
- 리포지토리 권한 > 내용: 읽기 전용 (필수).
- 리포지토리 권한 > 메타데이터: 읽기 전용 입니다(자동 선택됨).
- 선택적으로 이슈 및 풀 리퀘스트 읽기 권한을 추가합니다.
- 이 GitHub 앱을 설치할 수 있는 위치는 어디인가요? 아래에서 이 계정에서만을 선택합니다.
- GitHub 앱 만들기를 선택합니다.
- 앱 설정 페이지에 표시된 클라이언트 ID를 기록해 두세요(
Iv...로 시작하며, 숫자로 된 앱 ID와는 다릅니다).
GitHub 앱 설치
- GitHub 앱 설정 페이지의 왼쪽 사이드바에서 앱 설치를 선택합니다.
- 조직을 선택합니다.
- 모든 리포지토리를 선택하거나 특정 리포지토리를 선택합니다.
- 설치를 선택합니다.
2단계: 프라이빗 키 생성
- GitHub 앱 설정 페이지에서 Private keys까지 스크롤합니다.
- 프라이빗 키 생성을 선택합니다.
-
.pem파일이 다운로드됩니다. 이 파일은 에이전트가 인증하는 데 사용하는 RSA 프라이빗 키입니다.
Warning
PEM을 안전하게 유지합니다. 다음 단계에서 이 키를 Key Vault에 업로드합니다. 리포지토리에 커밋하거나 공유하지 마세요.
3단계: Key Vault 프라이빗 키 저장
- Azure 포털 열고 Key Vault 이동합니다.
- 비밀>생성/가져오기로 이동합니다.
-
이름(예:
sre-agent-github-app-key)을 설정하고 전체 PEM 콘텐츠를 값(포함-----BEGIN RSA PRIVATE KEY-----및-----END RSA PRIVATE KEY-----헤더)으로 붙여넣습니다. - Create를 선택합니다.
- 비밀을 열고, 현재 버전을 선택하고, 비밀 식별자 URI를 복사합니다.
https://myvault.vault.azure.net/secrets/my-github-app-key/<version>
Tip
버전이 지정된 URI( /<version> 접미사 포함)를 사용하여 특정 키 버전에 고정하거나 항상 최신 버전을 사용하도록 버전을 생략합니다.
버전 관리가 되지 않은 버전이 좋습니다. 키를 회전하면 에이전트는 URI를 업데이트하지 않고 새 버전을 자동으로 선택합니다.
4단계: 에이전트 ID에 Key Vault 액세스 권한 부여
- Azure 포털에서 Key Vault 열고 AAM(액세스 제어) 이동합니다.
- 에이전트 관리 ID에 Key Vault 비밀 사용자 할당합니다.
- 역할 할당이 전파될 때까지 기다리세요.
5단계: 코드 액세스에서 BYO 앱 구성
- 에이전트를 여세요.
- 작성기>코드 액세스로 이동합니다.
리포지토리 추가를 선택합니다.
GitHub 선택하고 호스트를 입력합니다.
-
github.com퍼블릭 GitHub용. -
<tenant>.ghe.comEnterprise Cloud의 경우
-
인증을 계속 합니다.
자체 GitHub 앱 사용을 선택합니다.
다음을 입력합니다.
- 클라이언트 ID
- 프라이빗 키 비밀 URI (Key Vault)
- 선택적 Key Vault ID(또는 시스템 할당 유지)
연결을 선택합니다.
마법사에서 자격 증명의 유효성을 검사합니다. 성공하면 GitHub 앱으로 연결됨 녹색 확인 표시가 표시됩니다.
메모
녹색 확인 표시가 표시되고 GitHub App으로 연결되면 자격 증명이 유효합니다. Connect 실패하면 클라이언트 ID, Key Vault URI 및 관리 ID 권한을 확인합니다.
코드 액세스가 왼쪽 탐색 창에서 열리지 않으면 에이전트 페이지를 새로 고치고 Builder를 다시 확장한 다음 다시 시도합니다.
Important
호스트로 *.ghe.com 도메인을 입력하면 마법사는 자동으로 자체 GitHub 앱 만들기를 선택합니다. OAuth 및 PAT는 GHE 호스트에 사용할 수 없습니다.
6단계: 리포지토리 추가 및 확인
What files are in the root of owner/repo?
GitHub 앱에 이슈 권한도 부여한 경우 이슈 작업을 확인합니다:
List recent issues from owner/repo.
앱별 관리 ID
기본적으로 에이전트는 system 할당 관리 ID를 사용하여 Key Vault 프라이빗 키를 읽습니다. 여러 GitHub 앱을 관리하는 경우(예: GHE 인스턴스당 하나씩) 각 앱에 다른 사용자 할당 관리 ID 할당합니다. 이 방법은 각 ID가 고유한 Key Vault 비밀에만 액세스할 수 있기 때문에 보안 격리를 제공합니다.
5단계 동안 Key Vault ID 드롭다운에서 ID를 선택합니다.
GitHub 커넥터에 대한 다중 호스트 지원
여러 GitHub 호스트를 동일한 에이전트에 연결할 수 있습니다. 각 호스트에는 독립적인 인증이 있습니다.
-
github.com: OAuth, PAT 또는 BYO 앱 -
contoso.ghe.com: BYO 앱 -
engineering.ghe.com: BYO 앱(다른 GitHub 앱 사용)
한 호스트의 연결을 끊는 것은 다른 호스트에 영향을 주지 않습니다.
Troubleshooting
| 증상 | 가능한 원인 | 수정 |
|---|---|---|
| 인증 유효성 검사 실패 | 잘못된 클라이언트 ID 또는 잘못된 호스트 | 코드 액세스에 입력된 동일한 호스트에서 앱이 만들어졌는지 확인합니다. |
| 비밀 읽기 실패 | 누락된 Key Vault RBAC 또는 액세스 정책 | 에이전트 ID에 Key Vault 비밀 사용자를 부여합니다. Key Vault 액세스 정책을 사용하는 경우 비밀에 Get 권한을 부여합니다. |
| 리포지토리가 코드 액세스에 실패로 표시됨 | 앱 사용 권한 누락 또는 설치 범위 | 메타데이터 확인: 읽기 + 콘텐츠: 읽기 및 설치 범위 |
| 채팅 문제가 작동하지만 코드 액세스가 실패함 | 엔드포인트/경로 검사가 다릅니다. | 연결 테스트를 다시 실행하고 메타데이터 권한을 확인합니다. |