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

如何为Compute Engine VM配置仅能删除自身的权限?

实现VM仅能删除自身的方案

完全可以实现这个需求,按以下步骤操作:

1. 给服务账户添加带条件的权限绑定

你已经创建了包含compute.instances.delete权限的自定义角色,现在需要给该服务账户绑定角色时添加条件,限制它只能删除自身所在的VM实例:

  • 进入IAM页面,找到服务账户对应的角色绑定条目
  • 点击编辑,添加条件表达式。如果是单实例场景,直接指定实例名称:
    resource.name == "你的VM实例名称"
    
    若是批量创建VM的场景,可用动态表达式确保权限仅对当前实例生效:
    resource.name == compute.instance.name()
    
    这个条件会让服务账户的delete权限仅作用于目标实例,无法操作其他VM。

2. 配置最小权限范围(Scope)

无需使用cloud-platform或compute这类全量权限范围,仅需指定实例操作相关的最小范围即可:

serviceAccounts: [
    {
        email: "你的服务账户邮箱",
        scopes: [
            "https://www.googleapis.com/auth/compute.instances"
        ]
    }
]

该范围仅允许服务账户操作Compute Engine实例相关API。如果此范围仍提示权限不足,可退而使用https://www.googleapis.com/auth/compute,但结合第一步的条件绑定,服务账户依然只能删除自身实例,不会有过度权限风险。

3. 验证权限有效性

重启VM后执行删除脚本,确认能正常删除自身;同时尝试用该服务账户删除其他实例,验证会被权限拒绝,确保条件绑定生效。

补充说明

  • 批量创建VM时,可通过基础设施即代码工具(如Terraform)自动配置条件绑定和最小scope,实现标准化部署。
  • 若遇到token获取报错,检查实例元数据是否正确关联了服务账户,且scope配置已生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 21:15:39