使用Bicep部署Azure应用网关WAF策略遇规则集不支持错误求助
问题:部署Azure应用网关WAF策略时提示规则集不支持
我尝试使用Bicep部署包含OWASP规则集3.2的Azure应用网关WAF策略,代码如下:
param wafPolicyName string = 'mypolicy' param location string = 'westeurope' resource wafPolicy 'Microsoft.Network/FrontDoorWebApplicationFirewallPolicies@2022-05-01' = { name: wafPolicyName location: location properties: { policySettings: { requestBodyCheck: 'Enabled' enabledState: 'Enabled' mode: 'Prevention' } managedRules: { managedRuleSets: [ { ruleSetType: 'OWASP' ruleSetVersion: '3.2' ruleGroupOverrides: [] } ] } } }
但部署时出现错误:
New-AzResourceGroupDeployment: 17:10:16 - The deployment 'waf_deployment' failed with error(s). Showing 1 out of 1 error(s).
Status Message: WebApplicationFirewallPolicy validation failed. More information "Managed rule set type and version is not supported". (Code:BadRequest)
我尝试过使用3.1规则集、不同API版本以及不同Bicep版本(0.25.3最新版和0.20.4),问题依然存在,请问该如何解决?
解决方案
你当前的核心错误是混淆了Front Door和应用网关的WAF策略资源类型,两者属于不同的服务,资源命名空间和规则集配置要求有差异:
- 替换资源类型:将
Microsoft.Network/FrontDoorWebApplicationFirewallPolicies改为Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies,这是应用网关WAF策略的正确资源类型。 - 修正规则集标识:应用网关的OWASP规则集类型名称为
OWASP_CRS,而非OWASP,版本3.2是完全支持的。
修正后的Bicep代码如下:
param wafPolicyName string = 'mypolicy' param location string = 'westeurope' resource wafPolicy 'Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies@2022-05-01' = { name: wafPolicyName location: location properties: { policySettings: { requestBodyCheck: 'Enabled' enabledState: 'Enabled' mode: 'Prevention' fileUploadLimitInMb: 10 maxRequestBodySizeInKb: 128 } managedRules: { managedRuleSets: [ { ruleSetType: 'OWASP_CRS' ruleSetVersion: '3.2' ruleGroupOverrides: [] } ] } } }
额外说明:
- 应用网关WAF策略的API版本
2022-05-01完全兼容OWASP CRS 3.2版本,无需更换API版本。 - 若你实际需要部署Front Door的WAF策略,其支持的OWASP规则集需使用类型名称
DefaultRuleSet,版本3.1和3.2均支持,但这是针对Front Door场景的配置,与应用网关WAF无关。
内容的提问来源于stack exchange,提问作者MoonHorse
相关产品推荐
相关产品推荐

