从GCP获取所有项目所有者的列表

时间:2019-06-19 12:51:33

标签: list export gcloud owner google-iam

我正在尝试获取域中所有GCP项目和项目所有者的列表,并将其导出为CSV,以便可以将其放入Google工作表中。获取列表非常简单,但是我找不到找到每个项目所有者的方法。

1 个答案:

答案 0 :(得分:1)

ROLE="roles/owner"
for PROJECT in $(\
  gcloud projects list \
  --format="value(projectId)" \
  --filter="projectId ~ something")
do
  printf "%s:\n" ${PROJECT}
  gcloud projects get-iam-policy ${PROJECT} \
  --flatten="bindings[].members[]" \
  --filter="bindings.role=${ROLE}" \
  --format="value(bindings.members)"
  printf "\n"
done

为完整起见,请使用更出色的jq,它既具有通用性,而且-我认为-更易于使用:

for PROJECT in $(\
  gcloud projects list \
  --format="value(projectId)" \
  --filter="projectId ~ something")
do
  printf "%s:\n" ${PROJECT}
  gcloud projects get-iam-policy ${PROJECT} --format="json" \
  | jq -r '.bindings[] | select(.role=="roles/owner") | .members[]'
  printf "\n"
done