Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 确定并更新所有GCP项目防火墙中的特定IP_Google Cloud Platform_Automation_Ip_Firewall - Fatal编程技术网

Google cloud platform 确定并更新所有GCP项目防火墙中的特定IP

Google cloud platform 确定并更新所有GCP项目防火墙中的特定IP,google-cloud-platform,automation,ip,firewall,Google Cloud Platform,Automation,Ip,Firewall,是否有一种方法,例如在cloud shell上使用一系列gcloud api命令,搜索我有权访问的所有可用GCP项目,进入VPC,以及下面的所有网络和防火墙规则,搜索特定IP,并仅更新该IP地址而不影响其余IP地址 背景: 多年来,我在GCP的多个项目、多个防火墙规则中列出了一个静态IP,我们即将改变ISP,这样静态IP就会改变。我不想手动查找,也不想冒丢失其中一些容易出错的风险,我想批量更新该IP,以便一次性完成 或者,如果没有,至少可以得到一个可能设置该IP的所有条目的列表 可能吗 谢谢 更

是否有一种方法,例如在cloud shell上使用一系列gcloud api命令,搜索我有权访问的所有可用GCP项目,进入VPC,以及下面的所有网络和防火墙规则,搜索特定IP,并仅更新该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显示结果。

这可以通过结合使用shell编程和SDK CLI来完成

但是,使用GoogleCloudSDK编写Python程序要容易得多。这只取决于您更适合开发shell或Python编程的环境。CLI没有用于此操作的简单命令

注意:这可以在任何语言中完成,Python只是一个易于编写简单程序的示例

要列出每个项目的每个防火墙规则,您需要为每个项目运行此命令,替换项目\u ID:

gcloud compute firewall-rules list --project PROJECT_ID
然后,对于上一个命令输出的每个防火墙规则,显示规则:

gcloud compute firewall-rules describe NAME --project PROJECT_ID
使用您喜爱的文本搜索程序grep查找当前IP地址

通过更新新IP地址的规则完成:

gcloud compute firewall-rules update NAME <replace with command options>
以上命令是使用CLI的基础。您需要将其构造为程序或shell脚本


鉴于这是一项一次性任务,我只需使用上述命令列出每个防火墙规则,然后grep输出以查找需要更新的规则。从该列表中手动更新Google云控制台中的规则。

这可以通过结合使用shell编程和SDK CLI来完成

但是,使用GoogleCloudSDK编写Python程序要容易得多。这只取决于您更适合开发shell或Python编程的环境。CLI没有用于此操作的简单命令

注意:这可以在任何语言中完成,Python只是一个易于编写简单程序的示例

要列出每个项目的每个防火墙规则,您需要为每个项目运行此命令,替换项目\u ID:

gcloud compute firewall-rules list --project PROJECT_ID
然后,对于上一个命令输出的每个防火墙规则,显示规则:

gcloud compute firewall-rules describe NAME --project PROJECT_ID
使用您喜爱的文本搜索程序grep查找当前IP地址

通过更新新IP地址的规则完成:

gcloud compute firewall-rules update NAME <replace with command options>
以上命令是使用CLI的基础。您需要将其构造为程序或shell脚本


鉴于这是一项一次性任务,我只需使用上述命令列出每个防火墙规则,然后grep输出以查找需要更新的规则。从该列表中手动更新Google云控制台中的规则。

这是一种在多个项目中查找具有给定源IP范围的所有防火墙规则的方法:

在所有相关项目中启用计算引擎API

列出项目

gcloud项目列表 对于每个项目 gcloud计算防火墙规则列表 -计划 -过滤器=禁用=错误,方向=入口 对于每个防火墙规则 gcloud计算防火墙规则描述 -格式=valuesourceRanges 如果步骤4中的输出与您的IP地址匹配,请保存规则的名称,然后使用更新源范围 一些警告:

这是对所涉及步骤的高级概述,但您可能希望自动化此过程。 在复杂的环境中,这可能会进行大量API调用。确保不要耗尽项目配额,以防其他服务依赖这些API调用来执行其功能。
这是跨多个项目查找具有给定源IP范围的所有防火墙规则的一种方法:

在所有相关项目中启用计算引擎API

列出项目

gcloud项目列表 对于每个项目 gcloud计算防火墙规则列表 -计划 -过滤器=禁用=错误,方向=入口 对于每个防火墙规则 gcloud计算防火墙规则描述 -格式=valuesourceRanges 如果步骤4中的输出与您的IP地址匹配,请保存规则的名称,然后使用更新源范围 一些警告:

这是对所涉及步骤的高级概述,但您可能希望自动化此过程。 在复杂的环境中,这可能会进行大量API调用。确保你没有用尽你的项目配额,以防你 r其他服务依赖这些API调用来执行其功能。