이 문서에서는 관리 서비스에 이미지를 배포할 수 있도록 Runtime, Compute Engine 또는 App Engine의 서비스 계정을 가장하도록 Cloud Build 서비스 계정을 구성하는 방법을 설명합니다.
개요
이미지가 특정 관리 서비스에 배포되면 해당 관리 서비스의 서비스 계정 ID를 사용하여 이미지가 실행됩니다. Cloud Build가 새 인스턴스 또는 버전을 자동으로 배포할 수 있으므로 지정된 Cloud Build 서비스 계정 또는 기본 Cloud Build 서비스 계정이 관리 서비스의 서비스 계정을 가장할 수 있어야 합니다. 이 요구사항은 다음 관리형 서비스에 배포할 때 적용됩니다.
관리형 서비스 | 서비스 계정 |
---|---|
App Engine | App Engine 서비스 계정 |
Cloud Run Functions | 런타임 서비스 계정 |
Cloud Run | 서비스 ID |
Compute Engine | Compute Engine 서비스 계정 |
서비스 계정 가장 설정
다른 서비스 계정을 가장하도록 Cloud Build 서비스 계정을 구성하려면 다음 단계를 따르세요.
Console
settings Cloud Build 권한 페이지로 이동합니다.
Cloud Build 서비스 계정을 선택합니다.
관리 서비스에 필요한 IAM 역할을 사용 설정합니다.
관리형 서비스 필요한 역할 App Engine App Engine 관리자 ( roles/appengine.appAdmin
)Cloud Run Functions Cloud Functions 개발자 ( roles/cloudfunctions.developer
)Cloud Run Cloud Run 관리자 ( roles/run.admin
)Compute Engine Compute 인스턴스 관리자 v1 ( roles/compute.instanceAdmin.v1
)Cloud Build에 서비스 계정 사용자 역할 할당 패널이 표시됩니다.
가장할 서비스 계정을 선택합니다. 예를 들어 Compute Engine에 배포할 계획이고 Compute 인스턴스 관리자 v1 역할을 사용 설정한 경우 Cloud Build 서비스 계정에서 가장할 Compute Engine 서비스 계정을 선택합니다.
권한 부여를 클릭합니다.
gcloud CLI
Google Cloud CLI에서 다음을 입력합니다.
gcloud iam service-accounts add-iam-policy-binding \
SERVICE_ACCOUNT_TO_IMPERSONATE \
--member="CLOUD_BUILD_SERVICE_ACCOUNT" \
--role="roles/iam.serviceAccountUser"
각 항목의 의미는 다음과 같습니다.
- SERVICE_ACCOUNT_TO_IMPERSONATE은 가장하려는 서비스 계정입니다.
- CLOUD_BUILD_SERVICE_ACCOUNT: Cloud Build 서비스 계정입니다.
Cloud Build는 가장하려는 서비스 계정에 대해 Cloud Build 서비스 계정에 서비스 계정 사용자 (roles/iam.serviceAccountUser
) 역할을 할당합니다.
서비스 계정 사용자 역할을 받은 주 구성원은 서비스 계정을 리소스에 연결할 수 있으므로 Cloud Build 서비스 계정이 선택한 관리형 서비스 계정을 가장할 수 있습니다. 자세한 내용은 IAM 문서의 서비스 계정 사용자 역할 및 리소스에 서비스 계정 연결을 참고하세요.