如何在谷歌云平台 (GCP) 中跨服务 (API)、资源类型和项目列出、查找或搜索 iam 策略?

Cir*_*rcy 2 google-cloud-platform gcloud google-iam google-cloud-iam google-cloud-resource-manager

在 Google Cloud Platform (GCP) 中,您只能通过调用 getIamPolicy(gcloud 中的 get-iam-policy)获取特定资源的 IAM 策略。

是否可以列出、搜索、列出、搜索或查找跨资源、服务或项目的 IAM 策略?

这是回答以下问题所必需的:

  • 服务帐号有哪些角色?
  • 哪些资源是公开共享的?
  • 策略是否包含已删除的用户?
  • 用户离开我公司后是否仍会出现在任何政策中?
  • 用户是否具有给定的角色?

Cir*_*rcy 11

您可以使用 search-all-iam-policies 跨服务、资源类型、项目、文件夹或组织内的项目搜索所有 IAM 策略。

要浏览编号为 123 的项目中的策略(请注意,仅支持列出的资源类型的策略):

gcloud asset search-all-iam-policies --scope=projects/123
Run Code Online (Sandbox Code Playgroud)

谁在我的组织中拥有所有者角色?

gcloud asset search-all-iam-policies --scope=organizations/456 --query="policy:roles/owner"
Run Code Online (Sandbox Code Playgroud)

谁可以更改我组织中的项目 IAM 策略?

--query='policy.role.permissions:resourcemanager.projects.setIamPolicy'
Run Code Online (Sandbox Code Playgroud)

账户有哪些角色?

--query="policy:123-compute@developer.gserviceaccount.com"
Run Code Online (Sandbox Code Playgroud)

哪些资源是公开共享的?

--query="policy:(allUsers OR allAuthenticatedUsers)"
Run Code Online (Sandbox Code Playgroud)

策略中是否有已删除的帐户?

--query="policy:deleted"
Run Code Online (Sandbox Code Playgroud)

amy@bar.com 是否出现在任何政策中?

--query="policy:amy@bar.com"
Run Code Online (Sandbox Code Playgroud)

amy@bar.com 是否具有所有者角色?

--query="policy:(roles/owner amy@bar.com)"
Run Code Online (Sandbox Code Playgroud)

如何查找给定资源类型(例如,项目)的所有 IAM 策略?

--query="policy:roles/owner resource://cloudresourcemanager.googleapis.com/projects"
Run Code Online (Sandbox Code Playgroud)

是否有任何 Gmail 帐户具有所有者角色?

`--query="policy:(roles/owner *gmail*)"
Run Code Online (Sandbox Code Playgroud)

您可以将范围更改为文件夹或项目。

要使用该命令,您必须:

  • 启用Cloud Asset API,以及

  • cloudasset.assets.searchAllIamPolicies对包含在这些角色中的范围拥有权限:

    • 角色/cloudasset.viewer
    • 角色/cloudasset.owner
    • 角色/观众
    • 角色/编辑
    • 角色/所有者

文档: