
[英]Assigning IAM Policy to an existing Cloud Build Service Account in Google cloud using terraform fails
[英]Cross project service account impersonation for cloud build
我们有一个用例,其中project A
有一些不能移动到另一个项目的秘密和数据库。 我们有一个project B
,它使用project A
的秘密和数据库。
Project A
有一个访问机密和数据库的service account X
Project B
有一个service account Y
,没有权限访问机密和数据库。 目标是让service account Y
在连接到推送到 github 的构建触发器期间模拟service account X
Project B
有一个云构建管道,需要在 CICD 过程中临时访问Project A
中的机密和数据库。
根据这个:https://cloud.google.com/build/docs/cloud-build-service-account ,用户指定的服务帐户部分......您可以创建具有模拟权限的自定义 IAM 角色或使用预定义的角色允许委托人模拟服务帐户。
我创建了一个service account X
并授予service account Y
模拟它的权限(如在策略分析器中检查的那样)但是,当我尝试在project B
的云运行触发器中使用service account X
时,我得到(如预期的那样):
Failed to update trigger: generic::permission_denied: user does not have impersonation permission on the trigger service account specified: projects/redacted/serviceAccounts/service@project-A.com
这是指什么“用户”? 使用控制台的那个? 构建服务代理?
是否可以在构建步骤过程中获取Project B
中的service account Y
来模拟Project A
中的service account X
?
根据这个https://cloud.google.com/build/docs/securing-builds/configure-user-specified-service-accounts ...要使用 Google Cloud 控制台中的触发器页面,用户指定的服务帐户并且构建触发器必须在同一个项目中。
是否有解决方法,例如是否需要使用gcloud
来模拟帐户? 或者有没有办法使用cloudbuild.yaml
执行跨项目帐户模拟(用于触发器)或以某种方式告诉触发器所使用的服务帐户必须模拟另一个?
你有2个解决方案:
问题未解决?试试以下方法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.