首页 > 解决方案 > 什么 gcloud 命令可以识别项目中对所有 API 具有完全访问权限的 VM 实例?

问题描述

我想确保使用默认 Compute Engine 服务帐户运行的所有虚拟机都锁定其 API 访问权限,因此我有兴趣过滤 gcloud 命令以识别任何不合规的实例,但是我正在努力找出正确的方法命令。

我知道我需要在最终命令中包含 AND 以过滤配置为使用默认 Compute Engine 服务帐户虚拟机运行的 VMS,但现在我想正确设置范围过滤器!

根据谷歌的文档,这里指的是过滤 MachineType ,我认为在从 REST VM 详细信息中确定为对云 API 的完全访问权限范围配置的 URL 是https://www.googleapis.com/auth之后,对范围进行过滤将起作用/云平台

我已经尝试过这些命令,但没有一个给我配置了范围的 VM 列表Allow full access to all Cloud APIs

gcloud compute instances list --filter='Allow full access to all Cloud APIs'

gcloud compute instances list --filter="scopes:[https://www.googleapis.com/auth/cloud-platform]"

有人知道命令应该是什么吗?

标签: google-cloud-platform

解决方案


范围列在serviceAccounts每个帐户的键下。通常,每个实例只有一个服务帐户。您可以过滤第一个服务帐户的范围列表,例如:

gcloud compute instances list --filter="serviceAccounts[0].scopes:(cloud-platform)"

我没有任何多帐户实例,但理论上所有帐户的过滤器将是:

gcloud compute instances list --filter="serviceAccounts[].scopes:(cloud-platform)"

推荐阅读