【发布时间】:2020-03-02 01:34:57
【问题描述】:
有没有办法(例如在云 shell 上使用一系列 gcloud api 命令)来搜索我有权访问的所有可用 GCP 项目、VPC 以及下面的所有网络和防火墙规则,以获取 特定的 IP,并且只更新那个 IP 地址而不影响其余的?
上下文:
多年来,我在 GCP 中的多个项目、多个防火墙规则(数百个)中将静态 IP 列入白名单,我们即将更改 ISP(因此静态 IP 会更改)。我不想手动搜索,或者冒险丢失其中的一些(容易出错),我想批量更新该 IP,以便一次性完成。
或者,如果没有,至少获取可能设置该 IP 的所有条目的列表。
有可能吗?
谢谢!
更新:
我写了这个简单的脚本,它指出了我至少要更改的 IP,希望对某人有用!
for i in `gcloud projects list| grep -v PROJECT_ID|awk {'print $1'}`
do
echo $i && gcloud compute firewall-rules list --project $i --format="table(name, network, direction, priority, sourceRanges.list():label=SRC_RANGES, destinationRanges.list():label=DEST_RANGES, allowed[].map().firewall_rule().list():label=ALLOW,denied[].map().firewall_rule().list():label=DENY,sourceTags.list():label=SRC_TAGS,sourceServiceAccounts.list():label=SRC_SVC_ACCT,targetTags.list():label=TARGET_TAGS,targetServiceAccounts.list():label=TARGET_SVC_ACCT)"
done
还没有更新 IP,但至少我可以看到它们在哪里,并且我也可以对我正在搜索的静态 IP 进行 grep 结果。
【问题讨论】:
标签: google-cloud-platform automation ip firewall