Law*_*lor 45 google-app-engine service-accounts google-cloud-platform google-cloud-build
今天早上我做了一个 PR,它为我的暂存环境触发了 Cloud Build,但未能将结果部署到 GAE。
错误如下:
错误:(gcloud.app.deploy) PERMISSION_DENIED:您无权充当“[redacted]@appspot.gserviceaccount.com”第 4 步:-“@type”:type.googleapis.com/google.rpc。 ResourceInfo 第 4 步:描述:您无权充当此服务帐户。第 4 步:resourceName:[redacted]@appspot.gserviceaccount.com 第 4 步:resourceType:serviceAccount
当我查看https://console.cloud.google.com/cloud-build/settings/service-account Cloud build 具有以下服务帐户权限ENABLED:
检查https://console.cloud.google.com/iam-admin/iam 我可以看到 cloudbuild 服务帐户具有以下角色:
Neb*_*tic 41
根据提供的错误,您似乎需要向您的服务帐户添加一些委托。这意味着服务帐户可以代表另一个服务帐户执行操作。不要在项目级别添加此权限,因为它会带来安全风险!您可以在下面找到如何添加roles/iam.serviceAccountUser
另一个服务帐户的示例。
PROJECT_ID=xxxxxx
PROJECT_NUMBER=$(gcloud projects list \
--format="value(projectNumber)" \
--filter="projectId=${PROJECT_ID}")
gcloud iam service-accounts add-iam-policy-binding \
${PROJECT_ID}@appspot.gserviceaccount.com \
--member=serviceAccount:${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com \
--role=roles/iam.serviceAccountUser \
--project=${PROJECT_ID}
Run Code Online (Sandbox Code Playgroud)
总而言之,服务帐户必须具有iam.serviceAccounts.actAs
权限,该权限包含在roles/iam.serviceAccountUser
角色中。可以在此处找到更新的 Google 文档。
小智 19
我遇到过同样的问题。对我来说,我必须在 IAM 中将服务帐户用户角色添加到我的圈子 ci 用户。也许您可以为 cloudbuild 做同样的事情。
Shi*_*hou 10
我Service Account User
向我的 CI/CD 服务帐户授予权限。那个有效。
归档时间: |
|
查看次数: |
8729 次 |
最近记录: |