【问题标题】:Google app engine deployment using wrong service account?谷歌应用引擎部署使用错误的服务帐户?
【发布时间】:2021-09-15 19:43:42
【问题描述】:

我的这个应用已经在 Google App Engine 上运行了好几年。今天我需要修改它的 app.yaml 文件,但是当我运行“gcloud app deploy”时,我得到了这个错误:

Updating service [default]...failed.
ERROR: (gcloud.app.deploy) Error Response: [7] Failed to create cloud build: service account "redacted@cloudbuild.gserviceaccount.com" has insufficient permission to execute the build on project "redacted"

默认服务帐户似乎不再具有必要的权限。事实上,它可能已经被完全删除了,因为我没有看到它在gcloud projects get-iam-policy xxxx 下列出。我看到的是这样的:

serviceAccount:service-redacted@gcp-sa-cloudbuild.iam.gserviceaccount.com

具有正确的角色cloudbuild.serviceAgent。

我尝试在谷歌上搜索与 GAE 服务帐户相关的任何更改,但没有找到任何有用的参考。我按照this question的解决方案,但没有帮助。

问题是,我如何更改原始错误消息中提到的服务帐户的权限,或者,我如何告诉 GAE 在部署我的应用程序时使用另一个(正确的)服务帐户?

【问题讨论】:

  • 您可以尝试查找服务帐户以防它可能已被删除,然后将其恢复。这个link有一个指南。

标签: google-app-engine


【解决方案1】:
  1. 根据 [this][1] 文档 ...要部署新版本,成员必须在 App Engine 默认服务帐户上具有服务帐户用户 (roles/iam.serviceAccountUser) 角色,以及云构建编辑器 (roles/cloudbuild.builds.editor) 和项目中的 Cloud Storage 对象管理员 (roles/storage.objectAdmin) 角色.....

  2. 使用IAM 页面,您可以添加部署人员的电子邮件地址(您已通过 gcloud 进行身份验证的人)并将上述角色添加到该电子邮件 [1]:https://cloud.google.com/iam/docs/understanding-roles?hl=en#app-engine-roles

【讨论】:

  • 我的帐户具有 Owner 角色,我认为这足以部署应用程序。
  • 我尝试将这些角色添加到我的所有者帐户中,但正如预期的那样,它没有任何区别。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-30
  • 1970-01-01
  • 1970-01-01
  • 2018-11-10
  • 2023-03-28
相关资源
最近更新 更多