问题描述
想要在GCP中列出具有特定角色的所有用户。他已经尝试使用gcloud projects get-iam-policy [PROJECT-ID]
命令来列出特定项目中所有用户及其角色,但是他无法找到只按特定角色过滤的正确方法。
以下是他使用的示例命令输出:
$ gcloud projects get-iam-policy MY_PROJECT
bindings:
- members:
- serviceAccount:12345678-compute@developer.gserviceaccount.com
- user:alice@foobar.com
role: roles/editor
- members:
- user:you@yourdomain.com
- user:someoneelse@yourdomain.com
role: roles/owner
etag: ARBITRARY_ETAG_HERE
version: 1
他想知道如何使用--filter=
表达式来只列出具有角色roles/owner
的用户。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
您可以使用gcloud beta asset search-all-iam-policies
命令来实现只列出具有特定角色的用户。以下是具体步骤:
1. 打开终端或命令提示符。
2. 运行以下命令:
gcloud beta asset search-all-iam-policies --query policy:"roles/owner" --project [YOUR_PROJECT_ID] --flatten="results[].policy[]" --format="csv(bindings.members[0])"
在上面的命令中,将[YOUR_PROJECT_ID]
替换为您的项目ID。这将列出具有角色roles/owner
的所有用户。
方案2
您也可以使用gcloud projects get-iam-policy
命令来实现只列出具有特定角色的用户。以下是具体步骤:
1. 打开终端或命令提示符。
2. 运行以下命令:
gcloud projects get-iam-policy [YOUR_PROJECT_ID] --flatten="bindings[].members" --filter="bindings.role:roles/owner" --format='table(bindings.members)'
在上面的命令中,将[YOUR_PROJECT_ID]
替换为您的项目ID。这将列出具有角色roles/owner
的所有用户。
请注意,这两种方法都可以实现相同的目标,选择哪种方法取决于您的个人偏好和需求。
参考文档:https://cloud.google.com/sdk/gcloud/reference/beta/asset/search-all-iam-policies
正文完