如何列出具有特定角色的所有用户在GCP中

75次阅读
没有评论

问题描述

想要在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

正文完