4

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

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

这需要回答以下问题:

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

1 回答 1

13

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

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

gcloud asset search-all-iam-policies --scope=projects/123

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

gcloud asset search-all-iam-policies --scope=organizations/456 --query="policy:roles/owner"

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

--query='policy.role.permissions:resourcemanager.projects.setIamPolicy'

账户有哪些角色?

--query="policy:123-compute@developer.gserviceaccount.com"

哪些资源是公开共享的?

--query="policy:(allUsers OR allAuthenticatedUsers)"

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

--query="policy:deleted"

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

--query="policy:amy@bar.com"

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

--query="policy:(roles/owner amy@bar.com)"

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

--query="policy:roles/owner resource://cloudresourcemanager.googleapis.com/projects"

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

`--query="policy:(roles/owner *gmail*)"

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

要使用该命令,您必须:

  • 启用Cloud Asset API

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

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

文档:

于 2020-03-01T23:17:33.850 回答