首页 > 解决方案 > 将 IAM 用户限制在 GCP 中的特定区域和实例类型/类

问题描述

我是 GCP 的新手,但我曾在 AWS 上工作过。在这里,我想实现将 IAM 用户限制在特定区域和 Compute Engine 类型

就像我们在 AWS 中一样,编写自定义角色以在 us-east 中限制它们,就像我希望它们锁定“us-central1”并将计算引擎类型锁定为最基本的一样。

我可以创建这样的自定义角色或条件来实现要求吗?我在这里需要的明确拒绝许可

更新:在组织级别限制位置这是有用的,如果有其他方式请帮助我?

标签: google-cloud-platformgoogle-iamgoogle-cloud-iamterraform-provider-gcp

解决方案


在这种情况下,您可以依赖Cloud IAM 条件。它们为 IAM 策略添加了额外的粒度级别。仅当条件表达式为 True 时才授予对资源的访问权限。您可以使用可用的变量、运算符、函数检查各种属性。

接受条件角色绑定的资源

计算引擎

  • 全球后台服务
  • 区域后端服务
  • 防火墙
  • 图片
  • 实例模板
  • 实例
  • 区域永久性磁盘
  • 地区永久性磁盘
  • 快照

在现有的资源名称格式中,VM 实例的名称包含zone-id可能有助于基于位置的限制:

Compute Engine 实例 projects/project-id/zones/zone-id/instances/instance-id

接下来,您可以使用Resource 属性来创建评估访问请求中的资源的条件,例如:

resource.type == "compute.googleapis.com/Instance"
resource.name.startsWith("projects/project-id/zones/zone-id")

目前不支持使用实例类型的 IAM 策略。最近在问题跟踪器上创建了一个相关的功能请求。你可以关注这个: https ://issuetracker.google.com/158524244 。


推荐阅读