是否可以通过Google Cloud Platform(GCP)SDK CLI (gcloud
)列出给定GCP项目下的所有活动资源?
是否可以通过Google Cloud Platform(GCP)SDK CLI (gcloud
)列出给定GCP项目下的所有活动资源?
您可以使用search-all-resources来搜索给定组织、文件夹或项目中的所有服务(或API)和项目的所有资源。
要搜索编号为123的项目中的所有资源:
$ gcloud asset search-all-resources --scope=projects/123
请查看其他帖子以了解更多详情:如何在Google Cloud平台上查找、列出或搜索跨服务(API)和项目的资源?
IIUC(如果我理解正确),没有一个通用类型来表示“在项目中存在的东西”,所以您需要具体列举所有感兴趣的类型。
此外,一些资源(例如密钥)是由项目拥有的服务帐户拥有。
for PROJECT in $(\
gcloud projects list \
--format="value(projectId)")
do
echo "Project: ${PROJECT}"
echo "Services"
gcloud services list --project=${PROJECT}
echo "Kubernetes Clusters"
gcloud container clusters list --project=${PROJECT}
echo "Compute Engine instances"
gcloud compute instances list --project=${PROJECT}
echo "Service Accounts"
for ACCOUNT in $(\
gcloud iam service-accounts list \
--project=${PROJECT} \
--format="value(email)")
do
echo "Service Account keys: ${ACCOUNT}"
gcloud iam service-accounts keys list --iam-account=${ACCOUNT} --project=${PROJECT}
done
done
但是这种方法存在一些挑战:
NB
--filter=...
gcloud auth list
账户。--filter=
选项,这将是活动状态资源。gcloud projects list --filter='lifecycleState:DELETE_REQUESTED'
gcloud alpha resources list
会出现错误:ERROR: (gcloud.alpha) Invalid choice: 'resources'。然而,gcloud beta asset search-all-resources
可以正常工作。 - Jari Turkia