【发布时间】:2019-09-11 07:27:29
【问题描述】:
我在我的项目上创建了一个自定义服务帐户 travisci-deployer@PROJECT_ID.iam.gserviceaccount.com 并赋予它 Cloud Run Admin 角色:
gcloud projects add-iam-policy-binding "${PROJECT_ID}" \
--member="serviceAccount:${SERVICE_ACCOUNT_EMAIL}" \
--role="roles/run.admin"
然后我将此服务帐户设置为我的 gcloud 命令的身份:
gcloud auth activate-service-account --key-file=google-key.json
但是当我运行gcloud beta run deploy 命令时,我收到一个错误提示“Compute Engine 默认服务帐户”没有iam.serviceAccounts.actAs 权限:
gcloud beta run deploy -q "${SERVICE_NAME}" \
--image="${CONTAINER_IMAGE}" \
--allow-unauthenticated
Deploying container to Cloud Run service [$APP_NAME] in project [$PROJECT_ID] region [us-central1]
Deploying...
Deployment failed
ERROR: (gcloud.beta.run.deploy) PERMISSION_DENIED: Permission 'iam.serviceaccounts.actAs'
denied on service account 1075231960084-compute@developer.gserviceaccount.com
这对我来说似乎很奇怪(因为我没有使用 GCE 默认服务帐户身份,尽管 Cloud Run 应用在部署应用后会使用它)。
所以1075231960084-compute@developer.gserviceaccount.com 帐户被用于API 调用,而不是我在gcloud 上配置的travisci-deployer@PROJECT_ID.iam.gserviceacount 服务帐户?
我该如何解决这个问题?
【问题讨论】:
标签: google-cloud-run