I am not good at programming. I am trying to generate csv report from GCP cloud account. I need information about number of projects created in account and it's owner, IAM role and member etc.
I did try with bash script and I received output in json.
CODE
#!/bin/bash
for project in $(gcloud projects list --format="value(projectId)")
do
echo "ProjectId: $project"
iampolicy=$(gcloud projects get-iam-policy "$project" --format json")
echo "$iampolicy"
printf '%s\n' $iampolicy | paste -sd ',' >> file.csv
done
Output
ProjectId: test-project1-xyz
{
"bindings": [
{
"members": [
"user:123@gmail.com"
],
"role": "roles/owner"
}
],
"etag": "xyz=",
"version": 1
}
Currently I m getting same json output data in the file.csv file.
Expected Output
File.csv
Project ID Members-Email Role
xyz xyz xyz
Can anyone help me with this? Thank you in advance for your support.
Perhaps:
#!/bin/bash
echo "ID,Name,Member,Role"
gcloud projects list --format="csv[no-heading](projectId,name)" |\
while IFS="," read -r ID NAME
do
POLICY=$(\
gcloud projects get-iam-policy ${ID} \
--flatten="bindings[].members[]" \
--format="csv[no-heading](bindings.members,bindings.role)")
# Prefix ${PROJECT} to each line in the policy
for LINE in ${POLICY}
do
echo ${ID},${NAME},${LINE}
done
done