GCP:使用 gcloud CLI 列出组织中所有组的成员,输出到 BigQuery

Posted

技术标签:

【中文标题】GCP:使用 gcloud CLI 列出组织中所有组的成员,输出到 BigQuery【英文标题】:GCP: List members of all groups in an organization using gcloud CLI, output to BigQuery 【发布时间】:2021-10-16 01:21:48 【问题描述】:

我想使用 gcloud CLI 创建我们组织中 Google IAM 组中所有用户的表,并输出到 BQ 表。

我知道它涉及“gcloud 身份组成员资格列表”,但不清楚如何遍历组并将输出生成为 CSV。

我已经找到了一种遍历项目并获取每个项目的 iam 绑定的方法 - https://rajathithanrajasekar.medium.com/google-cloud-iam-users-extraction-across-all-projects-in-a-gcp-org-2fbe66ddc045 因此我只需要组成员信息,而不需要策略/绑定信息。

更新澄清: 我们的用户被分配到组织级别的 IAM 组 (https://console.cloud.google.com/iam-admin/groups)。我希望在 BigQuery 中生成这些成员的列表,这样我们就不必在它们中寻找可能找到用户的位置。

团队管理权限没有 Google Workspace 管理员按用户查看群组成员资格,因此我们正在寻找提供此信息的方法。

【问题讨论】:

改写。我想使用 CLI 生成我们组织中所有组的所有成员的列表。 【参考方案1】:

您只能检查在 Google Cloud 中分配的组。您无法从不在 Google Cloud 中的群组获取数据。

您可以使用 Asset Iam 分析器获取一些数据,但不能在组织或文件夹级别执行此操作,您需要对每个项目进行迭代。并执行文件夹和组织级别的专用请求

#For Organization
gcloud asset analyze-iam-policy --expand-groups \
  --output-group-edges --organization=<ORGANIZATION_NUMBER> \
  --show-response \
  --full-resource-name="//cloudresourcemanager.googleapis.com/organizations/<ORGANIZATION_NUMBER>"

#For Folder
gcloud asset analyze-iam-policy --expand-groups \
  --output-group-edges --organization=<ORGANIZATION_NUMBER> \
  --show-response \
  --full-resource-name="//cloudresourcemanager.googleapis.com/folders/<FOLDER_NUMBER>"

#For Project
gcloud asset analyze-iam-policy --expand-groups \
  --output-group-edges --organization=<ORGANIZATION_NUMBER> \
  --show-response \
  --full-resource-name="//cloudresourcemanager.googleapis.com/projects/<PROJECT_ID>" \
  --expand-resources                

更多详情here

【讨论】:

澄清一下,我有绑定/策略信息。我正在专门寻找组织级别的每个 IAM 组的成员列表。 为此,您可以使用我的第一个链接。您具有 IAM 策略绑定,但使用扩展组选项,您还可以查看每个组的内容。忘记绑定部分,只获取组内容描述! 将在本周晚些时候与有权访问的人进行测试。这看起来很有希望。【参考方案2】:

看起来我们现在可以使用beta command 搜索组:

gcloud beta identity groups search --organization="<org_id>"  \
  --labels="cloudidentity.googleapis.com/groups.discussion_forum"

还有一大堆group membership 的命令。

【讨论】:

以上是关于GCP:使用 gcloud CLI 列出组织中所有组的成员,输出到 BigQuery的主要内容,如果未能解决你的问题,请参考以下文章

如何使用cli命令在gcp中更改项目

如何使用 CLI 命令更改 GCP 中的项目

不使用 gcloud 实用程序从 docker 容器访问 GCP 云存储桶

使用 Octokit 从 Github 列出所有组织

如何继承访问权以查看属于 GCP 组织的所有项目?

将python库用于GCP时如何切换项目目标?