함수의 소스 배포 중에 Cloud Run은 함수를 빌드하고 배포할 때 Cloud Build를 활용합니다.
이 페이지에서는 Cloud Build가 사용자를 대신하여 함수 빌드를 실행할 때 사용할 사용자 지정 서비스 계정을 설정하는 방법을 보여줍니다. 이 가이드는 Cloud Run에 함수를 배포하고 Cloud Build에서 사용하는 빌드 서비스 계정을 맞춤설정해야 하는 플랫폼 개발자를 대상으로 합니다.
시작하기 전에
Cloud Build API를 사용 설정합니다.
gcloud services enable cloudbuild.googleapis.com
Cloud Build의 서비스 계정으로 사용할 서비스 계정을 만들거나 기존 서비스 계정을 보유하고 있어야 합니다.
필요한 역할
소스에서 배포하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
-
Cloud Run 소스 개발자(
roles/run.sourceDeveloper
) -
서비스 계정 사용자(
roles/iam.serviceAccountUser
)
Cloud Build에 사용되는 서비스 계정이 함수를 배포할 때 빌드를 실행하도록 허용하려면 관리자에게 서비스 계정에 다음 IAM 역할을 부여해 달라고 요청하세요.
- 로그 작성자(
roles/logging.logWriter
): Cloud Logging에 빌드 로그를 저장합니다. - Artifact Registry 작성자(
roles/artifactregistry.writer
): Artifact Registry에 빌드 이미지를 저장합니다. - 스토리지 객체 관리자(
roles/storage.objectAdmin
): Cloud Storage 버킷에서 함수 소스를 검색하고 Artifact Registry에 빌드 이미지를 저장합니다.
Cloud Run과 연결된 IAM 역할 및 권한 목록은 Cloud Run IAM 역할 및 Cloud Run IAM 권한을 참조하세요. Cloud Run 서비스가 Cloud 클라이언트 라이브러리와 같은 Google Cloud API와 상호작용하는 경우에는 서비스 ID 구성 가이드를 참조하세요. 역할 부여에 대한 자세한 내용은 배포 권한 및 액세스 관리를 참조하세요.
Cloud Build 서비스 계정 지정
기본적으로 소스에서 함수를 배포할 때 Cloud Build 서비스 계정이 지정되지 않으면 Cloud Build에서 Cloud Build 서비스 계정을 사용합니다.
함수의 보안 상황을 개선하기 위해 최소 권한의 원칙을 따르는 권장사항으로, 소스에서 함수를 배포할 때 빌드를 실행할 자체 서비스 계정을 지정하는 것이 좋습니다.
gcloud
함수 배포 중에 Cloud Build 서비스 계정으로 사용할 서비스 계정을 지정할 수 있습니다
소스 코드에서 함수를 배포할 때 Cloud Build 서비스 계정을 지정하려면 다음 단계를 따르세요.
gcloud beta run deploy SERVICE \ --source . \ --function FUNCTION_ENTRY_POINT \ --build-service-account BUILD_SERVICE_ACCOUNT
다음과 같이 바꿉니다.
- SERVICE를 Cloud Run 함수 이름으로 바꿉니다.
- FUNCTION_ENTRY_POINT를 소스 코드에 있는 함수의 진입점으로 바꿉니다. 소스에서 배포된 서비스를 지정하려면
--function
플래그를 생략합니다. - BUILD_SERVICE_ACCOUNT를 사용자 지정 서비스 계정으로 바꿉니다.