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

5

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

是否有一种方法可以列出,搜索,查找跨资源,服务或项目的IAM策略?

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

  • 一个服务帐户拥有哪些角色?
  • 哪些资源是公开共享的?
  • 策略中是否包含已删除的用户?
  • 用户离开我的公司后,他们是否仍然出现在任何策略中?
  • 用户是否拥有特定角色?
1个回答

17

您可以使用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权限,这包含在这些角色中:
roles/cloudasset.viewer roles/cloudasset.owner roles/viewer roles/editor roles/owner
文档:
更多gcloud示例: https://cloud.google.com/asset-inventory/docs/searching-iam-policies-samples 指南: https://cloud.google.com/asset-inventory/docs/searching-iam-policies API参考: https://cloud.google.com/asset-inventory/docs/reference/rest/v1p1beta1/iamPolicies/searchAll 可搜索的资源类型: https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接