Cloud Shell中用Bash脚本盘点GCP组织策略时替换文件夹ID为显示名的问题
GCP 顶层文件夹组织策略盘点解决方案
以下脚本可直接在Cloud Shell中运行,输出结果会自动包含文件夹显示名、文件夹ID、组织策略信息,且所有内容为统一的结构化表格:
完整可运行脚本
#!/bin/bash # 请将下方XXXXX替换为你的实际GCP组织ID GCP_ORG_ID="XXXXX" # 输出表头,使用制表符分隔 echo -e "文件夹显示名\t文件夹ID\t策略名称\t约束规则\t适用层级" # 遍历组织下所有顶层文件夹,同时读取ID和显示名映射 while read -r folder_id folder_display_name; do # 查询当前文件夹下的组织策略,格式化输出后拼接文件夹信息 gcloud beta resource-manager org-policies list --folder="${folder_id}" --format="value(name,constraint,ancestor)" | while read -r policy_name constraint ancestor; do echo -e "${folder_display_name}\t${folder_id}\t${policy_name}\t${constraint}\t${ancestor}" done done < <(gcloud beta resource-manager folders list --organization="${GCP_ORG_ID}" --format="value(ID,DISPLAY_NAME)")
可选优化
如果你希望输出的表格自动对齐、可读性更强,可以在脚本末尾追加管道命令调用column处理输出,修改后的执行命令如下:
# 将上述脚本保存为org_policy_check.sh后执行,输出自动对齐的表格 chmod +x org_policy_check.sh && ./org_policy_check.sh | column -t -s $'\t'
内容的提问来源于stack exchange,提问作者Thomas AUBUGEAU
相关产品推荐
相关产品推荐

