You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何限制Terraform流水线服务账号可分配的角色及可部署的资源

方案结论

不建议保留该服务账号的Owner角色,该角色本身拥有全量资源权限与IAM配置权限,即使附加权限限制条件,账号本身也有权限修改或删除自身的权限约束,所有限制都会直接失效。
建议你替换为「最小权限集合+带条件的IAM管理权限」的配置方案,同时满足资源部署、受控的角色分配两个需求:

具体配置步骤

  1. 移除服务账号的Owner角色,按需分配资源部署所需的最小权限
    按你实际需要通过Terraform部署的资源类型配置对应权限,比如部署云主机则添加roles/compute.admin、部署对象存储则添加roles/storage.admin,也可以通过自定义角色精准匹配所需的部署操作权限,避免多余权限溢出。
  2. 为服务账号授予带条件的IAM角色分配权限
    给服务账号绑定roles/resourcemanager.projectIamAdmin角色,同时附加条件限制仅允许分配指定范围的角色,禁止分配Owner、Project IAM Admin等高风险角色,配置示例如下:
    {
      "members": [
        "你的流水线服务账号邮箱"
      ],
      "role": "roles/resourcemanager.projectIamAdmin",
      "condition": {
        "title": "only_allow_approved_roles",
        "description": "仅允许分配业务审核通过的低风险角色",
        "expression": "api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/billing.admin', 'roles/billing.user', '其他你需要允许分配的角色'])"
      }
    }
    

额外安全加固建议

  • 开启Terraform状态文件写保护与变更校验,禁止绕过流水线直接修改云资源IAM配置
  • 流水线针对包含IAM角色绑定变更的提交,增加独立的二次审批流程
  • 开启云平台IAM操作审计日志,监控所有角色绑定变更行为,异常操作立刻触发告警

内容的提问来源于stack exchange,提问作者Ari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 10:45:03