Cloud Build 서비스 계정 변경

이 동작을 재정의하지 않는 한 Cloud Build는 사용자 대신 빌드를 실행할 Cloud Build 서비스 계정을 자동으로 선택합니다. 이 서비스 계정에는 Cloud Source Repositories 및 프로젝트의 Cloud Storage 버킷에 대한 액세스 권한과 같이 사용 사례에 불필요한 권한이 다양하게 있을 수 있습니다.

Cloud Build가 새 프로젝트에서 서비스 계정을 사용하는 방법에 대한 기본 동작이 변경됩니다. 이러한 변경사항은 2024년 5월과 6월에 몇 주에 걸쳐 리전별로 출시됩니다. 이러한 변경사항은 향후 고객의 기본 보안 상황을 개선합니다. 조직 정책 제약조건을 구성하여 이러한 변경사항을 선택 해제할 수 있습니다.

프로젝트가 영향을 받는 방식은 조직에 속해 있는지 여부에 따라 다릅니다. 일반적으로 변경사항이 사용 중인 리전에 출시되면 다음과 같은 변경사항이 표시됩니다.

  • 조직이 없는 프로젝트. 변경 후 프로젝트에서 Cloud Build API를 사용 설정하면 Cloud Build API 또는 Google Cloud CLI를 통해 제출된 빌드에 기본적으로 Compute Engine 서비스 계정을 사용합니다. 이러한 프로젝트에서는 기존 Cloud Build 서비스 계정을 사용할 수 없지만 사용자 지정 서비스 계정을 사용할 수 있습니다.

  • 조직이 포함된 프로젝트. 변경 후 프로젝트에서 Cloud Build API를 사용 설정하면 Cloud Build API 또는 Google Cloud CLI를 통해 제출된 빌드에 기본적으로 Compute Engine 서비스 계정을 사용합니다. 사용자 지정 서비스 계정을 사용하거나 조직에서 Cloud Build 서비스 계정을 사용 설정하여 변경사항을 선택 해제할 수 있습니다.

  • 조직이 없는 기존 프로젝트. 변경 전에 프로젝트에서 Cloud Build API를 사용 설정한 경우 기본적으로 모든 빌드에 기존 Cloud Build 서비스 계정을 사용하여 이전 동작을 계속 진행합니다. Compute Engine 서비스 계정을 선택하거나 직접 만들어 사용자 지정 서비스 계정을 계속 사용할 수 있습니다.

  • 조직이 있는 기존 프로젝트. 변경 전에 프로젝트에서 Cloud Build API를 사용 설정하면 기본적으로 기존 Cloud Build 서비스 계정을 사용하여 이전 동작을 계속 진행합니다. 사용자 지정 서비스 계정을 계속 사용할 수도 있습니다.

  • 트리거. 프로젝트의 기본 서비스 계정이 기존 Cloud Build 서비스 계정이 아닌 경우 트리거를 만들거나 업데이트할 때 서비스 계정을 지정해야 합니다.

  • API. Cloud Build API를 사용 설정하면 Identity and Access Management API도 사용 설정됩니다.

  • Cloud Build 서비스 계정 이름: Cloud Build 서비스 계정은 기존 Cloud Build 서비스 계정이라고 합니다.

취해야 할 조치는 무엇인가요?

조직에 속한 경우 조직에서 다음 조직 정책 불리언 제약조건을 설정하여 이 변경사항을 선택 해제할 수 있습니다.

  • 미적용: constraints/cloudbuild.disableCreateDefaultServiceAccount

조직 정책을 조정할 수 없거나 조정하지 않으려 하고 변경사항이 출시된 후에 Cloud Build API를 사용 설정하면 Compute Engine 기본 서비스 계정 또는 사용자가 만든 서비스 계정에 빌드에 대한 충분한 권한이 있는지 검증합니다. 특히 빌드를 제출하는 사용자에게는 서비스 계정에 대한 iam.serviceAccounts.actAs 권한이 있어야 합니다.

기존 Cloud Build 서비스 계정 가용성 구성

Cloud Build API를 사용 설정할 때 기존 Cloud Build 서비스 계정 가용성을 구성하는 데 도움이 되도록 Cloud Build에 다음 불리언 정책 제약조건이 도입됩니다.

  • 미적용: constraints/cloudbuild.disableCreateDefaultServiceAccount. 새 프로젝트에서 기존 Cloud Build 서비스를 기본값으로 사용할 수 있습니다.

  • 적용됨: constraints/cloudbuild.disableCreateDefaultServiceAccount. 새 프로젝트에서 기존 Cloud Build 서비스 계정을 사용할 수 없습니다. 이는 제약조건의 기본값입니다.

정책 제약조건을 업데이트하려면 시행 규칙을 업데이트합니다.

이 제약조건은 변경사항이 출시된 후에 Cloud Build API를 사용 설정하는 프로젝트에만 영향을 미칩니다. 정책 제약조건을 적용하지 않으면 해당 구성이 활성화되었을 때 API를 사용 설정하는 모든 프로젝트에 변경사항이 영구적으로 적용됩니다. 이전에 서비스 계정을 사용할 수 있었던 프로젝트에서는 기존 Cloud Build 서비스 계정 가용성을 중지할 수 없습니다.

프로젝트의 현재 기본 서비스 계정 가져오기

Cloud Build에서 프로젝트의 기본값으로 사용하는 서비스 계정을 확인하려면 Google Cloud CLI 또는 Cloud Build API를 사용하면 됩니다.

gcloud CLI

다음 명령어를 실행하여 현재 프로젝트의 기본 서비스 계정을 가져옵니다.

gcloud builds get-default-service-account

Cloud Build API

cURL을 사용하여 Cloud Build API를 호출합니다.

curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/defaultServiceAccount

자리표시자 값을 다음으로 바꿉니다.