google-cloud-platform - 云构建服务帐号权限构建
问题描述
我将环境设置为云构建应用程序(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 服务帐户,一切都成功构建
解决方案
默认情况下,Cloud Build 服务帐户已分配 Cloud Build 服务帐户角色,该角色具有此处提到的权限。请注意,您只能执行以下任务:包括执行相关活动以使构建成功(访问 Cloud Source Repository、Cloud Storage 和 Container Registry)。
除了 Cloud Build 服务帐户角色之外,您还需要根据您对 Cloud Build 执行的其他操作授予其他角色。
在您的错误消息的特定情况下,您需要添加Cloud Functions 开发人员角色才能获得对 Cloud Functions 的完全访问权限。整个过程记录在这里。
如果您还部署到 App Engine,或管理 Google Kubernetes Engine 等,也有类似的角色。在此处查找所有可用角色列表。
推荐阅读
- c# - 我的方法“SendMailByAttach”没有按预期工作
- python - Pandas 中的 sort_values() 行为与文档相反
- javascript - 无法读取未定义的属性“injectReducers”
- javascript - createSwitchNavigator - TypeError:无法将类作为函数调用
- python-3.x - 合并两个数据帧并返回 int 值的函数,如年份
- c# - 使用 Prism 将视图模型属性绑定到代码中的视图属性
- ios - 导航时隐藏自定义中间按钮 swift 4
- foxpro - FoxPro SELECT 语句降低网络性能
- arrays - MongoDB 如何更新与文档数组中的条件匹配的第一项?
- blazor - 如何从 Blazor c# 代码制作 window.history.go(-1)?