Google cloud platform 是否有一个好的API来列出用户可以做的GCP项目?

Google cloud platform 是否有一个好的API来列出用户可以做的GCP项目?,google-cloud-platform,Google Cloud Platform,GCP提供了非常灵活的特权系统,允许任何项目所有者向任何人授予任何特权。这对用户很有帮助,但对管理员来说却很糟糕 有什么好的API可以列出用户/服务\u帐户对组织具有某些权限的GCP项目吗?您可以通过一组gcloud命令来实现这一点,我提出了以下脚本: echo "PROJECT_ID,ROLES,MEMBERS" | cat >> output.csv for i in $(gcloud projects list | sed 1d | cut -f1 -d$' '); do

GCP提供了非常灵活的特权系统,允许任何项目所有者向任何人授予任何特权。这对用户很有帮助,但对管理员来说却很糟糕


有什么好的API可以列出用户/服务\u帐户对组织具有某些权限的GCP项目吗?

您可以通过一组
gcloud
命令来实现这一点,我提出了以下脚本:

echo "PROJECT_ID,ROLES,MEMBERS" | cat >> output.csv
for i in $(gcloud projects list |  sed 1d | cut -f1 -d$' '); do
    echo "Getting IAM policies for project:" $i;
    echo "..........";
    paste -d "," <(printf %s "$(for j in $(seq 1 $(gcloud projects get-iam-policy $i | yq '.bindings | .[].role' | cut -d "\"" -f2 | wc -l)); do echo $i; done;)") <(printf %s "$(gcloud projects get-iam-policy $i | yq '.bindings | .[].role' | cut -d "\"" -f2)") <(printf %s "$(gcloud projects get-iam-policy $i | yq '.bindings | .[].members | join(",")' | cut -d"\"" -f2)") | cat >> output.csv

    echo "Done. Logs created at file" $output.csv;
    echo "--------------------------------"
done;
echo“项目ID、角色、成员”| cat>>output.csv
以美元计算的i(gcloud项目列表| sed 1d | cut-f1-d$);做
echo“获取项目的IAM策略:$i;
回声“……”;

粘贴-d“,”您可以使用以下命令查找组织内IAM策略中user:foo@的所有组织/文件夹/项目:

$ gcloud beta asset search-all-iam-policies --scope=organizations/123 --query="policy:foo@bar.com resource:*cloudresourcemanager*" | egrep "resource:|role:|user:foo"
您可以将范围更改为文件夹或项目

您必须拥有该范围的cloudasset.assets.SearchAllAmPolicys权限

文件:


但它并没有涵盖所有的策略:

对于项目来说,这是一个很好的脚本。但是,您也可以将IAM成员添加到资源(KMS、云运行、GCE、存储等)中。否。该脚本需要扫描谷歌云中的每个项目和资源。