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,用户可以在组织、文件夹或项目级别应用策略。此外,这些策略由以下级别继承,为用户提供有效且高效的授予权限的能力。
用户可以通过命令行语句设置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地址或设备状态)授权的特定访问级别。根据博客的公告:
最后,日期/时间属性允许用户添加开始和结束日期以及IAM策略时间。例如,为了遵循最低权限企业原则,允许轮班待命团队成员作为实例管理员执行操作,但权限被限制在待命期间,防止意外操作。
Compute Engine资源级IAM特性测试版可通过API、CLI和Developer Console获得。此外,IAM条件特性提供了私有测试版。
领取专属 10元无门槛券
私享最新 技术干货