GCP:列出每个资源的可授予角色

GCP: List grantable roles per resource

我正在学习关于 GCP IAM 的 Qwicklabs 教程。

在某些时候,它提到

Use the gcloud iam list-grantable-roles command to return a list of all roles that can be applied to a given resource.

然而,引用的示例通过贯穿整个项目列出了可授予的角色:

gcloud iam list-grantable-roles //cloudresourcemanager.googleapis.com/projects/$DEVSHELL_PROJECT_ID

有没有办法 运行 上述命令,但仅限于特定资源,例如 StackdriverBigQuery

Is there a way to run the above command but only on a specific resource, say Stackdriver or BigQuery ?

是的。从以下示例中,您应该注意到一种命名模式。

link 是 Google 关于资源命名的文档。

如果您想比项目更深入,那么您必须指定实际资源。您不能只指定 BigQuery,您必须在 BigQuery 中指定数据集。对于 Stackdriver,您必须指定一个实际的日志名称。

对于某些资源,gcloud 提供了 command-line 选项 --uri。这将显示资源名称:

gcloud compute instances list --uri

注意:并非所有命令都支持命令行选项 --uri。日志记录和 Biquery 都不支持 --uri.

计算引擎:

gcloud iam list-grantable-roles //compute.googleapis.com/projects/[PROJECT_ID]/zones/[ZONE]/instances/[VM_NAME]

BigQuery:

gcloud iam list-grantable-roles //bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET_ID]

Stackdriver 日志记录:

gcloud iam list-grantable-roles //logging.googleapis.com/projects/[PROJECT_ID]/logs/cloudbuild