如何通过PowerShell或Azure CLI动态更新应用网关WAF策略自定义规则
如何通过PowerShell或Azure CLI更新Azure应用网关WAF策略的自定义规则IP列表
使用PowerShell实现
步骤1:获取目标WAF策略
替换<ResourceGroupName>和<WafPolicyName>为你的实际资源组和策略名称,拉取当前WAF策略对象:
$wafPolicy = Get-AzApplicationGatewayFirewallPolicy -ResourceGroupName "<ResourceGroupName>" -Name "<WafPolicyName>"
步骤2:定位要更新的自定义规则
假设目标自定义规则名称为AllowTrustedIPs,通过名称筛选出该规则:
$targetRule = $wafPolicy.CustomRules | Where-Object { $_.Name -eq "AllowTrustedIPs" }
步骤3:添加新IP地址到规则
找到规则中针对远程IP的匹配条件,将新IP(示例为192.168.1.100)追加到匹配值列表:
$ipMatchCondition = $targetRule.MatchConditions | Where-Object { $_.MatchVariable -eq "RemoteAddr" } $ipMatchCondition.MatchValues += "192.168.1.100"
步骤4:保存更新后的策略
将修改后的策略同步到Azure:
Set-AzApplicationGatewayFirewallPolicy -InputObject $wafPolicy
使用Azure CLI实现
步骤1:导出WAF策略配置到本地文件
将当前WAF策略导出为JSON格式文件,方便编辑:
az network application-gateway waf policy show \ --resource-group "<ResourceGroupName>" \ --name "<WafPolicyName>" \ --output json > waf-policy.json
步骤2:编辑JSON添加新IP
打开waf-policy.json,找到customRules数组中的目标规则,在matchConditions的matchValues里新增IP:
"matchConditions": [ { "matchVariable": "RemoteAddr", "operator": "IPMatch", "matchValues": [ "10.0.0.0/24", "172.16.0.0/16", "192.168.1.100" // 新增的IP地址 ] } ]
步骤3:应用更新后的配置
将修改后的JSON文件导入,完成策略更新:
az network application-gateway waf policy update \ --resource-group "<ResourceGroupName>" \ --name "<WafPolicyName>" \ --set @waf-policy.json
可选:直接通过CLI命令修改(无需本地文件)
如果已安装jq工具,可直接在命令行完成修改,无需导出文件(示例规则名称为AllowTrustedIPs,新增IP192.168.1.100):
az network application-gateway waf policy show \ --resource-group "<ResourceGroupName>" \ --name "<WafPolicyName>" \ --output json | jq '.customRules[] |= (if .name == "AllowTrustedIPs" then .matchConditions[0].matchValues += ["192.168.1.100"] else . end)' | az network application-gateway waf policy update \ --resource-group "<ResourceGroupName>" \ --name "<WafPolicyName>" \ --set @-
内容的提问来源于stack exchange,提问作者Souvik Saha Choudhury
相关产品推荐
相关产品推荐

