Google宣布推出新的Cloud Identity和Access Management(IAM)特性,帮助客户更好地管理Google Compute Engine中的安全和访问控制。这些特性包括资源级别的IAM,在各个资源(例如VM实例和磁盘)上设置策略,以及基于预定义条件(例如资源名称前缀和原始请求属性,如IP或设备)授予访问权限的IAM条件

在旧金山举行的Next Next 2018大会上,Google推出了Compute Engine资源级IAM,允许用户在虚拟机、磁盘、镜像和其他Compute Engine资源上应用IAM策略,从而提供更多灵活性和细粒度的环境控制。除了资源级IAM之外,用户还可以使用条件在资源级策略上表达和实现上下文感知访问。这些IAM条件提供了三个条件属性:名称前缀属性、访问级别属性和日期/时间属性。通过设置属性,用户可以增加管理访问控制的灵活性。

有了Compute Engine资源级IAM,用户可以在组织、文件夹或项目级别应用策略。此外,这些策略由以下级别继承,为用户提供有效且高效的授予权限的能力。

 

来源: https://cloud.google.com/blog/products/identity-security/get-more-control-over-your-compute-engine-resources-with-new-cloud-iam-features

用户可以通过命令行语句设置Compute Engine资源级IAM策略,例如:

gcloud beta images set-iam-policy betaTestImage1 betaImagePolicy.json

betaImagePolicy.json文件包含了特定角色的特定组的策略定义。

{
  "policy":
     "bindings": [
     {
       "members": [
         "group:image-testers@example.com",
       ],

      "role": "roles/compute.imageUser"
   },

   ],
}

有了这些策略定义,用户可以控制哪些用户可以访问哪些Compute Engine 资源。用户可以在Compute Engine资源级IAM策略中设置名称前缀、访问级别和日期/时间属性。用户可以在IAM策略中指定名称前缀属性,并且只在资源名称与资源名称前缀匹配时才应用这个策略。此外,通过使用名称前缀匹配,用户可以减少授予的访问范围。用户通过条件在策略定义文件中指定名称前缀属性。

{

   "policy": {

     "bindings": [

      {

        "role": "roles/compute.instanceAdmin.v1",

        "members": [

          "user:dev1@example.com",

         ]

        "condition": { 

          "title": "dev1 prefix",

          "description": "Role granted only for instances and disks with Name Prefix dev1",

          "expression": 

            "(resource.type=="compute.instances"&& resource.name.startsWith("projects/[PROJECT_NAME]/zones/[ZONE_NAME]/instances/dev1"))||(resource.type=="compute.disks"&&resource.name.startsWith("projects/[PROJECT_NAME]/zones/[ZONE_NAME]/disks/dev1"))"

        }

      }

    }

  }

有了访问级别的属性,用户可以确保请求满足基于请求原始属性(例如IP地址或设备状态)授权的特定访问级别。根据博客的公告:

有了访问级别的属性,你可以表达这样的条件:“仅当源VM实例运行公司最新发布的操作系统镜像时才从服务帐户授予请求”或“仅在操作实例状态的远程请求是源自企业VPN时才授予权限”。

最后,日期/时间属性允许用户添加开始和结束日期以及IAM策略时间。例如,为了遵循最低权限企业原则,允许轮班待命团队成员作为实例管理员执行操作,但权限被限制在待命期间,防止意外操作。

Compute Engine资源级IAM特性测试版可通过APICLIDeveloper Console获得。此外,IAM条件特性提供了私有测试版

Comments are closed.