如何使用 gcloud 列出和查看用户的权限?

red*_*888 7 gcloud gcp

如果我转到谷歌云控制台中的“IAM & admin”并选择左侧的“IAM”选项卡,我会看到一个用户列表(用户名@mydomain)。

如何使用 gcloud 列出这些用户?我如何查看用户通过 gcloud 获得的访问权限?

我无法在糟糕的谷歌文档中找到如何做到这一点。

ing*_*net 10

我相信你会在这个 Stack Overflow 线程上找到一些答案。祝你好运!文档也让我有点摸不着头脑。通常组装搜索引擎字符串gcloud [title of console tool i was trying to find a CLI version of]似乎工作。

编辑,3年后!

您正在寻找的命令是get-iam-policy

gcloud projects get-iam-policy <project-id>

# Example:
gcloud projects get-iam-policy my-fancy-project
Run Code Online (Sandbox Code Playgroud)

当然,这是假设 IAM 权限已分配给项目级别的用户。您可能还想使用get-ancestors-iam-policy,其中包括项目和从文件夹和组织级别继承的角色:

gcloud projects get-ancestors-iam-policy <project-id>

# Example:
gcloud projects get-ancestors-iam-policy my-fancy-project
Run Code Online (Sandbox Code Playgroud)

编辑 2:@jelle-den-burger 用于跟进该get-ancestors-iam-policy命令的道具,于 2020 年 9 月在 v311.0.0 中添加。


Mr.*_*.TK 8

最初的问题是询问权限,但我只能看到列出角色的答案,并且角色和权限之间存在差异。为了未来的访客(像我一样:))我将添加一个额外的命令。

差异说明:

GCP 中的权限允许访问特定类型的资源角色一组此类权限。例如,编辑者角色拥有查看者角色拥有的所有权限,以及允许管理网络、实例等的附加权限。

compute.instances.create是允许创建实例的权限。 roles/Editor是包含此权限的角色。分配角色为用户提供了对资源的权限。

解决方案:

列出角色可以通过Jelle den Burgeringernet ( )提到的命令来完成gcloud projects get-ancestors-iam-policy <project-id>,但如果您想更具体地了解用户拥有什么样的权限,您需要深入挖掘。通过我的简短研究,我只能找到这个命令来描述角色包含哪些权限:

gcloud iam roles describe [ROLE]

例子gcloud iam roles describe roles/spanner.databaseAdmin

因此,您必须编写一个简短的 shell 脚本来连接这两个命令,第一个命令列出用户角色,第二个命令列出角色的权限。结果将是用户拥有的权限列表。


Jel*_*lle 5

接受的答案是正确的,您确实获得了权限。但是,当您在线查看 Google Cloud Console 时,可能会应用更多来自文件夹和组织级别的权限。

幸运的是谷歌考虑到了这一点,他们也提供了一个get-ancestors-iam-policy命令。你这样使用它:

gcloud projects get-ancestors-iam-policy <project-id>

# Example:
gcloud projects get-ancestors-iam-policy my-fancy-project
Run Code Online (Sandbox Code Playgroud)

它将返回所有权限:项目文件组织级别,就像在 Google Cloud Console 中一样。