비공개 네트워크에서 Cloud Build 사용

이 페이지에서는 비공개 풀에서 사용할, 일반적으로 사용되는 비공개 네트워크 설정을 구성하는 방법을 설명합니다. 비공개 풀 개요는 비공개 풀 개요를 참조하세요.

기본 네트워크 설정 정의

비공개 풀을 만들 때 기본적으로 비공개 풀이 있는 Virtual Private Cloud 네트워크를 사용하도록 설정됩니다. 다음과 같은 경우 기본 VPC 네트워크를 사용합니다.

  • 빌드가 공개 인터넷에 액세스해야 하는 경우
  • 구성 가능한 머신 유형 및 크기, 고정 내부 IP 범위 또는 비공개 풀의 다른 기능 중 하나를 사용해야 하는 경우
  • 비공개 VPC 네트워크 내부의 리소스에 액세스할 빌드가 필요하지 않은 경우

기본 네트워크에 연결하는 방법에 대한 안내는 비공개 풀 만들기를 참조하세요.

고정 내부 IP 범위 정의

경우에 따라 정의된 IP 범위의 호출을 허용 목록에 추가하는 서비스를 호출하는 경우와 같이 비공개 풀의 정적 IP 범위가 정의되어 있어야 할 수 있습니다. 비공개 풀을 사용하면 VPC 네트워크와 비공개 풀의 VPC 네트워크 간에 비공개 연결을 설정할 때 비공개 풀이 실행될 정의된 CIDR IP 범위를 사용하여 할당된 IP 주소 범위를 만들 수 있습니다. 또한 비공개 풀이 사용할 할당된 IP 주소 범위 내에 더 작은 CIDR 범위를 지정할 수도 있습니다.

VPC 네트워크에서 실행

VPC 네트워크와 같이 방화벽 뒤에 있는 비공개 네트워크의 리소스에서 Cloud Build를 사용하려면 비공개 풀과 관리형 VPC 네트워크 간에 비공개 연결을 만듭니다. 이렇게 하면 비공개 풀이 소스 저장소, 아티팩트 저장소, 데이터베이스, 보안 비밀 인스턴스, 런타임과 같은 비공개 네트워크의 리소스에 액세스할 수 있습니다.

공유 VPC 네트워크에서 실행

공유 VPC 네트워크를 사용하는 경우 비공개 풀을 만들 프로젝트가 공유 VPC 네트워크가 포함된 호스트 프로젝트에 연결되어 있어야 합니다. 프로젝트 연결에 대한 안내는 공유 VPC 네트워크 프로비저닝을 참조하세요.

다른 피어링된 VPC 네트워크 또는 공유 VPC 네트워크의 리소스에 연결

조직은 공유 VPC(호스트 프로젝트)를 채택하여 모든 프로젝트에서 네트워킹 및 Identity and Access Management를 중앙화하기도 합니다. 이렇게 하면 비공개 GKE 클러스터비공개 Cloud SQL과 같은 Google 관리 서비스에 내부 IP 주소를 사용할 수 있습니다. 이러한 Google 관리 서비스도 고객 소유의 공유 VPC 네트워크에 피어링됩니다. 이 설정과 관련된 문제는 전환 피어링의 문제로 인해 비공개 풀이 Google 관리 서비스와 통신할 수 없다는 점에 있습니다. 전환 피어링은 여러 네트워크가 VPC 피어링을 통해 서로 연결된 경우에만 문제가 됩니다. 연결 중 하나가 VPC 피어링 대신 VPN(또는 상호 연결)을 사용하도록 변경되면 네트워크에서 연결을 설정할 수 있습니다. 이 네트워크 설정에 대한 안내는 Cloud Build 비공개 풀로 비공개 Google Kubernetes Engine 클러스터에 액세스를 참조하세요.

특정 리전에서 실행

지원되는 리전 중 하나에 비공개 풀을 만들 수 있습니다. 빌드된 컨테이너 이미지와 아티팩트는 지정된 리전의 Artifact Registry 저장소Cloud Storage 버킷에 저장할 수 있습니다.

비공개 GKE 클러스터에 배포

비공개 GKE 클러스터의 제어 영역에는 공개 또는 비공개 엔드포인트가 있을 수 있습니다.

공개 엔드포인트가 있는 비공개 GKE 클러스터에 배포하려면 공개 인터넷에 대한 액세스 권한이 있는 기본 네트워크에 비공개 풀을 만들고 풀이 클러스터에 액세스할 수 있도록 고정 내부 IP 범위를 정의합니다.

비공개 엔드포인트가 있는 비공개 GKE 클러스터에 배포하려면 Cloud Build 비공개 풀로 비공개 Google Kubernetes Engine 클러스터 액세스에 설명된 단계를 따르세요. 또는 VPC에 피어링한 후 네트워크 프록시로 비공개 GKE 클러스터 만들기에 설명된 대로 클러스터에서 네트워크 프록시를 실행하면 됩니다.

VPC 서비스 제어와 함께 사용

VPC 서비스 제어는 데이터 무단 반출을 방지하기 위해 보안 경계를 설정할 수 있는 Google Cloud 기능입니다. 비공개 풀과 함께 VPC 서비스 제어를 사용하여 빌드에 보안을 추가하는 방법은 VPC 서비스 제어 사용을 참조하세요.

비공개 풀에서 공개 IP 삭제

비공개 풀 구성 파일의 egressOption 필드를 NO_PUBLIC_EGRESS로 설정하여 비공개 풀의 공개 IP를 삭제할 수 있습니다. 그러나 공개 IP를 삭제하면 비공개 풀이 공개 인터넷의 리소스에 액세스할 수 없습니다.

공개 인터넷으로 이그레스 제한

비공개 풀에서 공개 인터넷으로 이그레스를 제한하는 방법에는 여러 가지가 있습니다.

비공개 풀 강제 사용

Cloud Build가 제공하는 constraints/cloudbuild.allowedWorkerPools 조직 정책 제약조건을 사용하면 조직의 빌드가 기본 풀을 사용하지 않고 비공개 풀만 사용하도록 강제할 수 있습니다. 이 기능을 사용하는 방법은 조직 정책 제약조건 설정을 참조하세요.

비공개 Cloud DNS 영역과 함께 사용

비공개 풀과 함께 사용할 비공개 Cloud DNS 영역을 공유할 수 있습니다. 자세한 내용은 비공개 영역 공유를 참조하세요.

NAT 뒤에서 실행

VPC에서 비공개 풀의 IP 범위를 제어할 수 있지만 외부 IP 주소(사용 설정된 경우)를 제어할 수 없습니다. 예약된 IP에서 리소스에 액세스해야 하는 경우 Cloud Build를 사용하여 고정 소스 IP 주소에서 외부 리소스에 액세스의 단계를 완료하여 프록시 VM을 만들고 이를 통해 트래픽을 라우팅하세요.

다음 단계