如何识别来自 iam 用户 GCP 的不同域

how to identify different domains from iam users GCP

我们有一个场景,在我们的 gcp 项目中,我们有几个 iam 用户,除了 @gmail.com 之外,还有不同的电子邮件 ID 域,现在我们需要将其限制为仅授予对 @gmail.com 的访问权限用户。

首先,我们需要从我们的项目中识别所有现有的非@gmail.com 用户并将其删除。

我们使用下面的过滤器来识别来自 iam-users 的所有@gmail.com 用户。

gcloud projects get-iam-policy <project id> --flatten="bindings[].members" --format="table(bindings.members)" --filter="@gmail.com"

类似地,我们需要过滤掉我们项目中所有使用其他电子邮件域的 iam 用户

除了转到您的 IAM 页面之外,还不确定如何识别所有这些,但关于域限制,请参见 GCP 文档。

资源管理器提供域限制约束,可用于组织策略以基于域限制资源共享。此约束允许您限制允许在身份和访问管理策略中使用的身份集。

您可以在此处查看指南:Restricting identities by domain

你不能否定过滤器。您需要获取所有成员并使用 grep -v

删除 gmail.com
# With IAM on project
gcloud projects get-iam-policy <project id> --flatten="bindings[].members" --format="table(bindings.members)" | sort | uniq | grep -v gmail.com

# With asset inventory
gcloud asset search-all-iam-policies --flatten="policy.bindings[].members" --format="table(policy.bindings.members)" | sort | uniq | grep -v gmail.com

资产清单很棒,因为它还可以找到在资源级别而非仅在项目级别授予的帐户。一切都取决于你的需要。