读取所有用户权限的 GCP 命令

tot*_*to' 3 google-cloud-platform google-iam google-cloud-iam

有没有办法在 GCP 中列出用户的所有权限?

我知道有这个命令:

gcloud 项目 get-iam-policy "project-ID"

但我只能看到我在 IAM 控制台中设置的 IAM 角色。例如,我没有看到 IAM 角色

BigQuery 数据查看器

我已经在 BigQuery 页面中为用户设置了数据集。

Max*_*xim 6

您可以通过调整输出列表关联到用户或服务帐户的角色gcloud projects get-iam-policy与标志“ --flatten ”,“ --format ”和“ --filter ”:

gcloud projects get-iam-policy <YOUR GCP PROJECT>  \
--flatten="bindings[].members" \
--format="table(bindings.role)" \
--filter="bindings.members:<THE USER OR SERVICE ACCOUNT>"
Run Code Online (Sandbox Code Playgroud)

在我的测试场景中输出如下:

ROLE
roles/bigquery.dataViewer
roles/owner
Run Code Online (Sandbox Code Playgroud)


Joh*_*ley 6

在 GCP 中有没有办法列出用户的所有权限?

在 Google Cloud Platform 中,没有一个命令可以做到这一点。通过角色的权限分配给资源。组织、文件夹、项目、数据库、存储对象、KMS 密钥等可以分配有 IAM 权限。您必须扫描(检查 IAM 权限)每个资源以确定 IAM 成员账户拥有的总权限集。

这些功能在 Google Cloud 授权、安全和审计方面既是优势也是劣势。如果理解得好,这些功能将非常强大。

  • @toto'您可能想知道为什么所有单独的命令。几年前,当大多数 Google 服务发布时,Google IAM 还不存在。权限由服务控制。如今,谷歌正在通过集成更通用的系统以及在某些情况下添加新型身份和访问控制来快速推进授权和安全性。 (4认同)

Cir*_*rcy 6

您可以使用它在组织下的 IAM 策略中搜索“foo@bar.com”:

gcloud beta asset search-all-iam-policies --scope=organizations/123 --query="policy:foo@bar.com" | egrep "resource:|role:|user:foo"
Run Code Online (Sandbox Code Playgroud)

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

文档: https: //cloud.google.com/asset-inventory/docs/searching-iam-policies

但它并不涵盖所有政策: https: //cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types

更多详细信息可以在另一篇文章中找到:如何在谷歌云平台(GCP)中跨服务(API)、资源类型和项目列出、查找或搜索 iam 策略?


归档时间:

查看次数:

4494 次

最近记录:

4 年,4 月 前