目标: 通过代码在预防和检测模式之间切换应用程序网关 WAF。
配置详情:
- 应用 GW SKU:WAFv2
- 已部署应用程序网关 WAF
- 实施自定义规则和托管策略
- WAF关联应用网关
先决条件命令:
$policyName = *Input*
$appGWName = *Input*
$appGWRG = *Input*
$location = *Input*
$gw = Get-AzApplicationGateway -Name $appGWName -ResourceGroupName $appGWRG
$policy = Get-AzApplicationGatewayFirewallPolicy -Name $policyName -ResourceGroupName $appGWRG
我尝试过的:
手动我能够从预防切换到检测。(成功的)
使用 Powershell 命令,我可以直接更新 WAF 策略设置,但它不会复制到资源本身。
$policy.PolicySettings.Mode = "Prevention" $policy.PolicySettings.Mode = "Detection"
使用 Powershell 命令,我可以通过应用程序网关更新 WAF 策略,但它不会复制到 WAF 或应用程序网关。
Set-AzApplicationGatewayWebApplicationFirewallConfiguration -FirewallMode Detection -ApplicationGateway $gw -Enabled $true
收到以下错误:
quoteSet-AzApplicationGateway:当存在与之关联的 WAF 策略 /subscriptions/7bba5d50-5df8-49be-b59d-b737e7663335/resourceGroups/pbolkun-RG/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/WafPolicyProdEusAgw 时,无法更改 WebApplicationFirewallConfiguration。
我也尝试过Set-AzApplicationGateway -ApplicationGateway $gw
在每个实现结束时再次不起作用..
我想要一种编程方式,以便最大限度地利用 IaC。每次我想在两者之间切换以进行测试时,我宁愿避免部署 ARM 模板。
提前谢谢你!