首页 > 解决方案 > 云构建服务帐号权限构建

问题描述

我将环境设置为云构建应用程序(Github 应用程序),以通过云构建将 terraform 配置到谷歌云平台。该构建是一个具有云功能的简单云编写器,它可以创建这些资源以及正确的服务帐户和成员。但是,只有所有者权限才能成功执行此操作,我希望云构建服务帐户具有最低权限。我使用了很多角色,但似乎没有任何成功。即创建服务帐户、编辑器、访问上下文管理器管理员、访问批准批准者。当我通过 github commit 运行构建时,除了将所有者设置为角色之外,我收到此错误

错误:为 cloudfunctions cloudfunction googleapi 应用 IAM 策略时出错:错误 403:权限

错误:批处理“iam-project-redacted modifyIamPolicy”请求“创建 IAM 成员角色/composer.worker serviceAccount:composer-env-account@redacted.iam.gserviceaccount.com for \”project \\“redacted\\”\” " 返回错误:为项目“已编辑”应用 IAM 策略时出错:为项目“已编辑”设置 IAM 策略时出错:googleapi:错误 403:调用者没有权限,被禁止。要调试单个请求,请尝试禁用批处理: https ://www.terraform.io/docs/providers/google/guides/provider_reference.html#enable_batching

是否有允许服务帐户通过云构建成功构建的 IAM 策略/角色?

将所有者角色设置为 cloudbuild 服务帐户,一切都成功构建

标签: google-cloud-platformgoogle-cloud-buildterraform-provider-gcp

解决方案


默认情况下,Cloud Build 服务帐户已分配 Cloud Build 服务帐户角色,该角色具有此处提到的权限。请注意,您只能执行以下任务:包括执行相关活动以使构建成功(访问 Cloud Source Repository、Cloud Storage 和 Container Registry)。

除了 Cloud Build 服务帐户角色之外,您还需要根据您对 Cloud Build 执行的其他操作授予其他角色。

在您的错误消息的特定情况下,您需要添加Cloud Functions 开发人员角色才能获得对 Cloud Functions 的完全访问权限。整个过程记录在这里

如果您还部署到 App Engine,或管理 Google Kubernetes Engine 等,也有类似的角色。在此处查找所有可用角色列表。


推荐阅读