【问题标题】:Can I directly apply GCP's IAM policy to a Resource我可以直接将 GCP 的 IAM 政策应用于资源吗
【发布时间】:2021-02-28 08:31:11
【问题描述】:
我正在通过here 阅读有关 GCP 的 IAM 政策的信息。现在考虑this 资源层次结构。
假设我想将“instance_a”的启动实例权限 (compute.instances.start) 授予 abc@gcp.com,并将“instance_b”的启动实例权限授予 xyz@gcp.com。显然,我无法在“example-test”文件夹中创建 IAM 策略(基于文章中提到的 IAM 策略对象示例),因为它不会提供我正在寻找的粒度。
是否有可能在 GCP 中实现这种粒度级别?
【问题讨论】:
标签:
google-cloud-platform
google-kubernetes-engine
google-iam
【解决方案1】:
权限从顶层(组织)继承到较低层(资源,在您的示例中为 VM)。因此,如果您在项目级别(Example-test)授予权限,则该权限会在属于该项目的所有资源(instance_A 和 instance_B)中继承。
因此,您无法(轻松)实现您想要的。
但实际上,您可以添加conditions on the IAM role。您可以在资源名称或资源标签上添加条件,例如允许或禁止用户或其他用户访问。
但是明智地使用条件,如果您将多个级别(在层次结构中)的权限定义和不同的条件混合在一起,调试 IAM 权限问题可能会成为一场噩梦。尽量保持同质化和简单化。