App Engine 앱에서 다른 Google Cloud서비스에 액세스하고 태스크를 실행하려면 서비스 계정이 필요합니다. 기본적으로 App Engine 기본 서비스 계정은 App Engine 앱의 ID로 사용됩니다. 특정 App Engine 앱 버전의 ID로 사용할 다른 사용자 관리 서비스 계정을 지정할 수도 있습니다. 이렇게 하면 수행하는 특정 태스크를 기반으로 버전마다 서로 다른 권한을 부여하여 권한이 필요 이상으로 부여되지 않도록 할 수 있습니다.
이 가이드에서는 새 버전을 배포할 때 다른 사용자 관리 서비스 계정을 지정하는 방법을 설명합니다. 앱의 특정 버전을 배포할 때 고유한 서비스 계정을 만들 필요가 없으면 서비스 계정을 지정하지 않고 기본 서비스 계정을 계속 사용할 수 있습니다.
사용자 관리 서비스 계정 만들기
사용자 관리 서비스 계정을 만들려면 이 안내를 참조하세요. 서비스 계정을 부여하기 위해 Identity and Access Management(IAM) 역할을 정의할 때 App Engine에 대한 액세스 권한을 부여하는 역할을 참조하세요.
서비스 계정을 만들기 전에 IAM 개념을 검토해야 하는 경우 IAM 개념 개요 및 서비스 계정 가이드를 참조하세요.
사용자 관리형 서비스 계정을 만든 후 다음 방법 중 하나를 사용하여 애플리케이션의 앱 수준 기본 서비스 계정을 업데이트할 수 있습니다.
gcloud
gcloud app update
명령어를 실행합니다.
gcloud app update --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
다음과 같이 바꿉니다.
SERVICE_ACCOUNT_NAME
을 만든 서비스 계정의 이름으로 바꿉니다.PROJECT_ID
를 서비스 계정을 할당하려는 Google Cloud 프로젝트의 ID로 바꿉니다.
이 업데이트 후에 배포하는 각 새 버전에는 버전별 서비스 계정을 명시적으로 할당하지 않는 한 새로운 앱 수준 기본 서비스 계정이 사용됩니다.
콘솔
콘솔에서 App Engine 애플리케이션 설정 탭으로 이동하고 애플리케이션 설정 수정을 클릭합니다.
서비스 계정 선택에서 앱 수준 기본 서비스 계정을 선택하고 저장을 클릭합니다.
업데이트된 앱 수준 기본 서비스 계정의 이메일 주소를 볼 수 있는 애플리케이션 설정 탭으로 리디렉션됩니다. 예를 들면
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
입니다.이 업데이트 후에 배포하는 각 새 버전에는 버전별 서비스 계정을 명시적으로 할당하지 않는 한 새로운 앱 수준 기본 서비스 계정이 사용됩니다.
앱 배포 시 서비스 계정 지정
gcloud
gcloud app deploy
명령어를 실행하고 서비스 계정을 지정합니다.
gcloud app deploy --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
app.yaml
app.yaml
파일에서 service_account
요소를 추가하여 서비스 계정을 지정합니다.
service_account: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
다음 단계
서비스 계정 작업 권장사항을 준수합니다.