이 안내는 Google과 함께 GitHub Enterprise 소스 코드 저장소를 사용하려는 애플리케이션 개발자, 플랫폼 관리자, 보안 관리자를 위한 것입니다. 특히 GitHub Enterprise 저장소를 Gemini Code Assist와 함께 사용할 수 있습니다.
Developer Connect에 대한 자세한 내용은 Developer Connect 개요를 참조하세요.
시작하기 전에
-
로그인하여 Google 계정을 사용하세요.
아직 계정이 없으면 새 계정을 등록하세요.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Developer Connect and Service Directory APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Developer Connect and Service Directory APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
GitHub Enterprise의 계정에 액세스할 수 있는지 확인합니다.
팀의 작업을 안전하게 유지하려면 개인 계정이 아닌 봇 계정 또는 팀에서 공유하는 계정을 사용하여 이 가이드의 작업을 완료하는 것이 좋습니다.
- GitHub Enterprise 저장소를 소유하고 있거나 공유 저장소에 대한 관리자 수준 권한이 있는지 확인합니다.
GitHub Enterprise 조직에서 저장소를 사용하는 경우 GitHub 앱 관리자 권한이 있는지 확인합니다.
- 비공개 네트워크에 연결하기 위한 서비스 디렉터리 서비스 리소스가 있는지 확인하거나
서비스 디렉터리 서비스 리소스를 만듭니다. Developer Connect와 함께 사용하는 동일한 프로젝트에서 서비스 디렉터리 서비스 리소스를 만들거나 다른 프로젝트를 사용할 수 있습니다.
외부 네트워크에 연결하려면 서비스 디렉터리를 다르게 구성해야 할 수 있습니다 Google Cloud. 서비스 디렉터리를 사용하여 외부 호스트에 연결을 참조하세요. Google Cloud
- (선택사항) Developer Connect에서 만드는 인증 보안 비밀을 암호화하기 위한 고객 관리 암호화 키(CMEK)를 만듭니다.
- (선택사항) 이 가이드의 명령줄 안내를 사용하려면 다음 단계를 완료하세요.
- Google Cloud CLI를 설치합니다. 이전에 gcloud CLI를 설치한 경우
최신 버전을 사용할 수 있는지
gcloud components update를 실행하여 확인합니다. - 다음 명령어를 실행하여 Developer Connect 서비스 계정
을 만듭니다. 여기서 PROJECT_ID는 Google Cloud 프로젝트 ID입니다.
gcloud beta services identity create \ --service=developerconnect.googleapis.com \ --project=PROJECT_ID
- Google Cloud CLI를 설치합니다. 이전에 gcloud CLI를 설치한 경우
최신 버전을 사용할 수 있는지
Developer Connect를 사용 설정하면 Secret Manager API도 사용 설정됩니다.
필수 IAM 권한 부여
연결 및 링크를 만드는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
-
프로젝트 소유자가 아닌 경우:
Developer Connect 관리자 (
roles/developerconnect.admin) 사용자 계정에 대한. -
CMEK를 사용하여 Developer Connect에서 만드는 보안 비밀을 암호화하려는 경우:
Cloud KMS CryptoKey 암호화/복호화 (
roles/cloudkms.cryptoKeyEncrypterDecrypter) Secret Manager 서비스 계정에. -
gcloud CLI를 사용하여 이 가이드의 단계를 완료하려는 경우:
Secret Manager 관리자 역할 (
roles/secretmanager.admin) Developer Connect 서비스 계정에 대한. -
콘솔을 사용하여 이 가이드의 단계를 완료하려는 경우:
프로젝트 IAM 관리자 (
roles/resourcemanager.projectIamAdmin) 사용자 계정에 대한. Google Cloud
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
서비스 디렉터리를 사용할 권한 부여
Developer Connect에서 서비스 디렉터리를 사용하고 서비스 디렉터리에서 VPC 네트워크 리소스에 액세스하도록 하려면 다음 단계를 완료하세요.
다음 명령어를 실행하여 Developer Connect 서비스 계정에 서비스 디렉터리를 사용할 권한을 부여합니다.
PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)") SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-devconnect.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding SERVICE_DIRECTORY_RESOURCE_PROJECT_ID \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role="roles/servicedirectory.viewer"다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다. Google Cloud
- SERVICE_DIRECTORY_RESOURCE_PROJECT_ID: 서비스 디렉터리 서비스 리소스가 포함된 프로젝트의 Google Cloud 프로젝트 ID입니다.
서비스 디렉터리에서 VPC 네트워크 리소스에 액세스할 권한을 부여합니다. 네트워크 리소스는 다른 프로젝트에 있을 수 있습니다.
gcloud projects add-iam-policy-binding NETWORK_RESOURCE_PROJECT_ID \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role="roles/servicedirectory.pscAuthorizedService"NETWORK_RESOURCE_PROJECT_ID를 VPC 네트워크 리소스가 포함된 프로젝트의 프로젝트 ID로 바꿉니다.
서비스 디렉터리를 사용하여 외부 호스트에 연결 Google Cloud
서비스 디렉터리는 IP 주소 범위 35.199.192.0/19를 사용하여
외부 호스트를 연결합니다 Google Cloud. 이 범위를 방화벽의 허용 목록에 추가해야 합니다. 또한 Cloud VPN 또는 Cloud Interconnect 연결을 통해 이 범위를 라우팅하도록 비공개 네트워크를 구성해야 합니다.
연결에 Cloud Router가 사용되는 경우 비공개 네트워크에 대해 범위 알림을 수행하도록 연결을 구성할 수 있습니다.
자세한 내용은 비공개 네트워크 액세스 구성을 참조하세요.
Cloud Load Balancing을 사용하여 외부 호스트에 연결 Google Cloud
네트워크 구성에서
서비스 디렉터리 IP 주소 범위 35.199.192.0/19를
Cloud VPN 또는 Cloud Interconnect로 라우팅할 수 없는 경우
트래픽을 호스트로 전달하는 Cloud Load Balancing을 사용하여 부하 분산기를 만들 수 있습니다.
서비스 디렉터리 엔드포인트를 만들 때 호스트의 IP 주소 대신 부하 분산기의 전달 규칙의 IP 주소를 사용해야 합니다. 엔드포인트를 만들 때 내부 HTTPS 부하 분산기 또는 내부 전송 제어 프로토콜(TCP) 부하 분산기를 사용할 수 있습니다.
TCP 부하 분산기를 만들 때 다음을 고려하세요.
- 하이브리드 연결 네트워크 엔드포인트 그룹(NEG)만 호스트에 연결하면 됩니다.
- TCP 부하 분산기는 SSL 인증서에 대해 암호화되지 않은 비공개 키가 필요하지 않습니다.
- Cloud VPN 설정은 전역 동적 라우팅과 함께 Cloud Router를 사용해야 합니다. Cloud VPN이 정적 라우팅을 사용하는 경우, 대신 Cloud Service Mesh를 사용하는 프록시를 사용할 수 있습니다. 자세한 내용은 하이브리드 배포를 위한 네트워크 에지 서비스 설정을 참조하세요.
HTTPS 부하 분산기 만들기에 대한 자세한 내용은 하이브리드 연결로 내부 애플리케이션 부하 분산기 설정을 참조하세요. TCP 부하 분산기 만들기에 대한 자세한 내용은 하이브리드 연결로 리전 내부 프록시 네트워크 부하 분산기 설정을 참조하세요.
연결 만들기
이 섹션에서는 Developer Connect와 GitHub Enterprise 간의 연결을 만드는 방법을 설명합니다. 콘솔을 사용하는 경우 연결 설정을 완료하면서 저장소에 링크 추가를 시작할 수도 있습니다. Google Cloud
새 GitHub Enterprise 연결을 만들려면 다음 옵션 중 하나를 선택하세요.
콘솔
다음 단계를 완료하여 연결을 시작합니다.
콘솔에서 Developer Connect 를 엽니다. Google Cloud
Developer Connect에 Git 저장소 페이지가 표시됩니다.
- 소스 코드 관리 제공업체 목록이 표시되는 경우: 소스 코드 관리 제공업체를 선택하여 첫 번째 연결 구성을 시작합니다. GitHub Enterprise 카드에서 연결 을 클릭합니다.
기존 연결을 나열하는 표가 표시되는 경우: 연결 만들기 > GitHub Enterprise 를 클릭하여 소스 코드 관리 제공업체를 설정합니다.
연결 만들기 페이지가 열립니다.
리전에서 연결 리소스의 리전 을 선택합니다.
- 이름에 새 연결의 이름을 입력합니다.
데이터 저장 위치 규정 준수 연결 사용 설정 체크박스 를 활성화하여 이 연결이 데이터 저장 위치 요구사항을 준수하도록 합니다.
콘솔을 사용하여 만든 GitHub 연결은 연결을 만들 때 이 체크박스를 활성화하면 데이터 저장 위치를 준수합니다. Google Cloud 이렇게 하면 Developer Connect에서 GitHub 앱을 만듭니다.
Google Cloud CLI를 사용하여 GitHub 연결을 만들면 이러한 연결은 데이터 저장 위치를 준수하지 않습니다. 다른 모든 연결 유형은 데이터 저장 위치를 준수합니다.
호스트 URL에 연결할 호스트의 URL을 입력합니다.
더보기 를 클릭하여 선택적 구성 설정을 확인합니다.
Developer Connect가 GitHub Enterprise에 대한 Git 호출의 프록시 역할을 할 수 있도록 Developer Connect 프록시 사용 설정 체크박스가 기본적으로 선택되어 있습니다.
네트워킹 섹션의 네트워크 유형에서 비공개 네트워크를 선택합니다.
CA 인증서에서 찾아보기를 클릭하여 자체 서명 인증서를 업로드합니다.
인증서의 크기는 10KB를 초과해서는 안 되며 PEM 형식 (.pem, .cer 또는 .crt)이어야 합니다. 이 섹션을 비워 두면 기본 인증서 집합이 대신 사용됩니다.
서비스 디렉터리 서비스 섹션에서 서비스의 위치를 선택합니다.
- 프로젝트
your-project내 - 다른 프로젝트 내
- 직접 입력
**다른 프로젝트 내** 또는 **직접 입력** 을 선택한 경우 프로젝트 ID를 지정합니다. Google Cloud 드롭다운 메뉴에서 프로젝트를 선택하거나 프로젝트 ID를 직접 입력합니다.
- 프로젝트
리전: 서비스 디렉터리 서비스의 리전을 선택합니다. 서비스에 지정된 리전은 연결과 연관된 리전과 일치해야 합니다.
네임스페이스: 서비스 디렉터리 서비스의 네임스페이스를 선택합니다.
서비스: 네임스페이스에서 서비스 디렉터리 서비스 이름을 선택합니다.
(선택사항) 암호화 섹션에서 CMEK 키를 선택하여 Developer Connect 에서 만드는 Secret Manager 보안 비밀을 암호화합니다.
계속 을 클릭합니다.
GitHub 앱을 만들도록 초대하는 GitHub 대화상자가 표시됩니다.
GitHub의 안내에 따라 다음 작업을 완료합니다.
앱 이름을 입력합니다.
앱을 설치할 조직을 선택합니다.
액세스 권한을 부여할 저장소를 선택합니다.
대화상자가 닫힙니다.
Developer Connect는 GitHub에서 비공개 키를 가져와서 프로젝트에 Secret Manager 보안 비밀로 저장합니다. Google Cloud 보안 비밀을 보려면 Secret Manager에서 보안 비밀을 나열하세요.
연결이 생성되면 저장소 연결 페이지가 표시됩니다.
다음 단계를 완료하여 저장소를 연결에 연결합니다.
사용 가능한 저장소 목록에서 사용할 저장소를 선택합니다.
확인 을 클릭합니다.
링크 를 클릭합니다.
연결이 연결 페이지에 추가되고 저장소 링크가 콘솔의 저장소 페이지에 추가됩니다. Google Cloud 언제든지 기존 연결에 링크를 더 추가할 수 있습니다.
Gemini Code Assist를 설정하는 경우 Gemini Code Assist 코드 맞춤설정 구성 및 사용의 단계에 따라 프로세스를 계속 진행합니다.
gcloud
다음 작업을 수행하려면 웹브라우저에서 몇 가지 작업을 수행해야 합니다.
gcloud developer-connect connections create명령어를 실행하여 GitHub Enterprise에 연결합니다.gcloud developer-connect connections create CONNECTION_NAME \ --location=REGION \ --project=PROJECT_ID \ --github-enterprise-config-host-uri=HOST_URI --github-enterprise-config-service-directory=SERVICE_DIRECTORY_RESOURCE --git-proxy-config-enabled다음을 바꿉니다.
- CONNECTION_NAME: 연결의 이름입니다.
- REGION: 연결의 리전입니다.
- HOST_URI: 연결할 호스트의 URI입니다.
- SERVICE_DIRECTORY_RESOURCE: 서비스 디렉터리 리소스 경로이며 형식은
projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE/services/SERVICE입니다. --git-proxy-config-enabled는 Developer Connect가 GitHub Enterprise에 대한 Git 호출의 프록시 역할을 할 수 있도록 하는 선택적 플래그입니다. 비공개 네트워크에서 호스팅되는 GitHub Enterprise 소스 코드 저장소에서 Gemini Code Assist 코드 맞춤설정 을 실행할 때는 이 기능을 사용 설정해야 합니다.--github-enterprise-config-ssl-ca-certificate는 SSL 인증서를 추가하는 선택적 플래그이며 형식은$HOME/my-ssl-ca.txt입니다.
GitHub와의 연결을 관리하려면 GitHub 앱을 만들어야 합니다. 다음 명령어를 실행하여 앱 설정의 URI를 가져옵니다.
gcloud developer-connect connections describe CONNECTION_NAME \ --location=REGION다음을 바꿉니다.
- CONNECTION_NAME: 연결의 이름입니다.
- REGION: 연결의 리전입니다.
Developer Connect는 브라우저 창에서 다음 단계를 완료할 수 있는 링크를 반환합니다. 이 링크를 복사합니다.
웹브라우저에서 링크를 엽니다.
메시지가 표시되면 GitHub 계정에 로그인합니다.
GitHub의 안내에 따라 다음 작업을 완료합니다.
앱 이름을 입력합니다.
앱을 설치할 조직을 선택합니다.
액세스 권한을 부여할 저장소를 선택합니다.
대화상자가 닫힙니다.
Developer Connect는 GitHub에서 비공개 키를 가져와서 프로젝트에 Secret Manager 보안 비밀로 저장합니다. Google Cloud 보안 비밀을 보려면 Secret Manager에서 보안 비밀을 나열하세요.
연결 확인하기
다음 명령어를 실행하여 GitHub 연결이 생성되었는지 확인합니다.
gcloud developer-connect connections describe CONNECTION_NAME \
--location=REGION
각 항목의 의미는 다음과 같습니다.
- CONNECTION_NAME: 연결의 이름입니다.
- REGION: 연결의 리전입니다.
Developer Connect는 installationState 필드에 상태를 반환합니다. 이 필드의 값이 COMPLETE이면 앱 설치가 완료된 것입니다.
그렇지 않으면 Developer Connect는 브라우저에서 구성으로 돌아가는 URI를 반환합니다.
연결이 완료되면 저장소에 연결의 안내에 따라 연결할 저장소를 선택합니다.
기존 연결에 저장소 링크 추가
GitHub Enterprise에 연결한 후 저장소에 연결할 수 있습니다. 나중에 필요에 따라 이 단계를 반복하여 저장소를 추가로 연결할 수 있습니다.
기존 GitHub Enterprise 연결에 저장소 링크를 만들려면 다음 옵션 중 하나를 선택하세요.
콘솔
콘솔에서 저장소 페이지를 엽니다. Google Cloud
저장소 연결 을 클릭합니다.
Git 저장소 연결 창이 열립니다.
연결 목록에서 연결을 선택합니다.
계속 을 클릭합니다.
저장소 목록에서 연결할 저장소를 선택합니다.
만들기 를 클릭합니다.
Developer Connect는 저장소 링크를 만들고 콘솔에 Google Cloud 표시합니다.
gcloud
다음 명령어를 실행합니다.
gcloud developer-connect connections git-repository-links create REPO_NAME \
--clone-uri=REPO_URI \
--connection=CONNECTION_NAME \
--location=REGION
다음을 바꿉니다.
- REPO_NAME: 저장소 링크의 이름입니다.
- REPO_URI: 저장소의 링크입니다.
예를 들면
https://github.com/cloud-build/test-repo.git입니다. - CONNECTION_NAME: 연결의 이름입니다.
- REGION: 연결의 리전입니다.
Developer Connect는 저장소 링크를 만듭니다.
연결된 저장소를 나열하려면
developer-connect connections git-repository-links list 명령어를 실행합니다.
Gemini Code Assist를 설정하는 경우 Gemini Code Assist 코드 맞춤설정 구성 및 사용의 단계에 따라 프로세스를 계속 진행합니다.
데이터 공유
이 연결에 연결된 Google Cloud 리소스의 콘텐츠가 GitHub로 전송될 수 있습니다. 이 문은 이 연결을 사용하는 모든 기존 리소스와 향후 리소스에 적용됩니다. GitHub와의 정보 공유를 중지하려면 콘솔 또는 gcloud CLI에서 Developer Connect 연결을 삭제하고 Google Cloud GitHub에서 액세스 권한을 취소하세요 .
다음 단계
- Gemini Code Assist 코드 맞춤설정 설정을 완료합니다.
- Gemini Code Assist가 소프트웨어 개발 속도를 높이는 데 어떻게 도움이 되는지 알아봅니다.
- Developer Connect를 통해 사용할 수 있는 다른 통합을 살펴봅니다.