我可以获得已将用户添加到角色的所有资源的列表吗?
Can I get a list of all resources for which a user has been added to a role?
我想知道是否有办法获取已添加用户的所有角色的列表,而不管该角色应用到哪个资源?
例如我可以获得存储桶上 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")'
但是似乎没有一个命令可以告诉您用户被添加到哪些角色以及该角色应用于哪些资源。有谁知道这样做的方法吗?
角色没有直接分配给用户。这就是为什么没有一个命令可以使用的原因。
IAM 成员(用户、服务帐户、组等)被添加到附加了角色的资源中。用户可以拥有项目权限,也可以拥有单个资源(Compute Engine 实例 A、存储桶 A/Object B)的权限。用户也可以对项目没有权限,但对项目中的个别资源具有权限。
您将需要运行针对资源(组织、文件夹、项目和计算、存储、KMS 等项目)的命令。
更复杂的是,有授予的角色和继承的角色。
我想知道是否有办法获取已添加用户的所有角色的列表,而不管该角色应用到哪个资源?
例如我可以获得存储桶上 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")'
但是似乎没有一个命令可以告诉您用户被添加到哪些角色以及该角色应用于哪些资源。有谁知道这样做的方法吗?
角色没有直接分配给用户。这就是为什么没有一个命令可以使用的原因。
IAM 成员(用户、服务帐户、组等)被添加到附加了角色的资源中。用户可以拥有项目权限,也可以拥有单个资源(Compute Engine 实例 A、存储桶 A/Object B)的权限。用户也可以对项目没有权限,但对项目中的个别资源具有权限。
您将需要运行针对资源(组织、文件夹、项目和计算、存储、KMS 等项目)的命令。
更复杂的是,有授予的角色和继承的角色。