【发布时间】:2021-01-21 23:06:35
【问题描述】:
今天早上我做了一个 PR,触发了我的暂存环境的 Cloud Build,但未能将结果部署到 GAE。
错误如下:
错误:(gcloud.app.deploy)PERMISSION_DENIED:您无权充当“[redacted]@appspot.gserviceaccount.com” 步骤#4:-'@type':type.googleapis.com/google.rpc.ResourceInfo 步骤#4:描述:您无权充当此服务帐户。 第 4 步:资源名称:[已编辑]@appspot.gserviceaccount.com 第 4 步:resourceType: serviceAccount
当我看到https://console.cloud.google.com/cloud-build/settings/service-account Cloud build 具有以下服务帐户权限已启用:
- App 引擎管理员
- 云 KMS
检查https://console.cloud.google.com/iam-admin/iam 可以看到cloudbuild服务账号有以下角色:
- App 引擎管理员
- App Engine 部署者
- Cloud Build 服务帐号
- 云 KMS CryptoKey 解密器
【问题讨论】:
-
嗨@LawsonTaylor 考虑到您看到的错误消息,这可能与默认 Cloud Build 服务帐户不允许访问部署 App Engine 的事实有关。您能否按照here 的步骤向您的 Cloud Build 服务帐户授予部署者权限?
-
@gso_gabriel 对于我的项目,这已经工作了很长一段时间,但今天早上停止工作。此文档可能需要更新:cloud.google.com/cloud-build/docs/deploying-builds/… - 我只有文档所示的“App Engine Admin”权限。我按照您的链接建议添加了“App Engine Deployer”IAM 权限,但它仍然不起作用。
-
只是为了添加更多细节,这绝对是 GCP 中最近的变化/回归。我的构建帐户以前具有 App Engine Deployer 角色,但最近的构建开始失败。我不得不使用@Nebulastic 的答案来修复。如果 App Engine 团队可以用错误编号发表评论,那就太好了 - 单独拥有“App Engine Deployer”角色已不足以实际部署 App Engine,这似乎很奇怪。
标签: google-app-engine google-cloud-platform service-accounts google-cloud-build