【发布时间】:2022-02-02 18:05:24
【问题描述】:
目标: 通过代码在预防和检测模式之间切换应用程序网关 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 模板。
谢谢你!
【问题讨论】:
-
感谢 @James Z 更正格式。
标签: azure-powershell azure-application-gateway azure-cloud-shell azure-waf