我想知道是否有一种方法可以获取已添加用户的所有角色的列表,而不管该角色应用于哪个资源?
例如我可以获取存储桶中roles/storage.admin
的所有成员的列表,还可以获取项目中具有相同角色的所有成员的列表:
gsutil iam get $BUCKET | jq '.bindings[] | select(.role == "roles/storage.admin")'
gcloud projects get-iam-policy $PROJECT --format=json | jq '.bindings[] | select(.role == "roles/storage.admin")'
但是似乎没有一个命令可以告诉您用户已添加到哪个角色以及该角色应用于哪个资源。有人知道这样做的方法吗?
答案 0 :(得分:3)
角色没有直接分配给用户。这就是为什么没有单个命令可以使用的原因。
IAM成员(用户,服务帐户,组等)被添加到带有角色的资源中。用户既可以拥有项目权限,也可以拥有单个资源(Compute Engine实例A,存储桶A /对象B)的权限。用户也可以没有对项目的权限,但是对项目中的各个资源具有权限。
您将需要针对资源(组织,文件夹,项目以及诸如Compute,Storage,KMS等项目)运行命令。
进一步复杂化的是,既授予角色又继承角色。