你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies 2022-11-01
- 最新
- 2024-05-01
- 2024-03-01
- 2024-01-01
- 2023-11-01
- 2023-09-01
- 2023-06-01
- 2023-05-01
- 2023-04-01
- 2023-02-01
- 2022-11-01
- 2022-09-01
- 2022-07-01
- 2022-05-01
- 2022-01-01
- 2021-08-01
- 2021-05-01
- 2021-03-01
- 2021-02-01
- 2020-11-01
- 2020-08-01
- 2020-07-01
- 2020-06-01
- 2020-05-01
- 2020-04-01
- 2020-03-01
- 2019-12-01
- 2019-11-01
- 2019-09-01
- 2019-08-01
- 2019-07-01
- 2019-06-01
- 2019-04-01
- 2019-02-01
- 2018-12-01
Bicep 资源定义
可以使用目标操作部署 ApplicationGatewayWebApplicationFirewallPolicies 资源类型:
- 资源组 - 请参阅 资源组部署命令
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies 资源,请将以下 Bicep 添加到模板。
resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2022-11-01' = {
location: 'string'
name: 'string'
properties: {
customRules: [
{
action: 'string'
groupByUserSession: [
{
groupByVariables: [
{
variableName: 'string'
}
]
}
]
matchConditions: [
{
matchValues: [
'string'
]
matchVariables: [
{
selector: 'string'
variableName: 'string'
}
]
negationConditon: bool
operator: 'string'
transforms: [
'string'
]
}
]
name: 'string'
priority: int
rateLimitDuration: 'string'
rateLimitThreshold: int
ruleType: 'string'
state: 'string'
}
]
managedRules: {
exclusions: [
{
exclusionManagedRuleSets: [
{
ruleGroups: [
{
ruleGroupName: 'string'
rules: [
{
ruleId: 'string'
}
]
}
]
ruleSetType: 'string'
ruleSetVersion: 'string'
}
]
matchVariable: 'string'
selector: 'string'
selectorMatchOperator: 'string'
}
]
managedRuleSets: [
{
ruleGroupOverrides: [
{
ruleGroupName: 'string'
rules: [
{
action: 'string'
ruleId: 'string'
state: 'string'
}
]
}
]
ruleSetType: 'string'
ruleSetVersion: 'string'
}
]
}
policySettings: {
customBlockResponseBody: 'string'
customBlockResponseStatusCode: int
fileUploadEnforcement: bool
fileUploadLimitInMb: int
logScrubbing: {
scrubbingRules: [
{
matchVariable: 'string'
selector: 'string'
selectorMatchOperator: 'string'
state: 'string'
}
]
state: 'string'
}
maxRequestBodySizeInKb: int
mode: 'string'
requestBodyCheck: bool
requestBodyEnforcement: bool
requestBodyInspectLimitInKB: int
state: 'string'
}
}
tags: {
{customized property}: 'string'
}
}
属性值
ExclusionManagedRule
名字 | 描述 | 价值 |
---|---|---|
ruleId | 托管规则的标识符。 | string (必需) |
ExclusionManagedRuleGroup
名字 | 描述 | 价值 |
---|---|---|
ruleGroupName | 要排除的托管规则组。 | string (必需) |
规则 | 将排除的规则列表。 如果未指定任何规则,将排除组中的所有规则。 | ExclusionManagedRule[] |
ExclusionManagedRuleSet
名字 | 描述 | 价值 |
---|---|---|
ruleGroups | 定义要应用于规则集的规则组。 | ExclusionManagedRuleGroup[] |
ruleSetType | 定义要使用的规则集类型。 | string (必需) |
ruleSetVersion | 定义要使用的规则集的版本。 | string (必需) |
GroupByUserSession
名字 | 描述 | 价值 |
---|---|---|
groupByVariables | 按子句变量分组的列表。 | GroupByVariable[] (必需) |
GroupByVariable
名字 | 描述 | 价值 |
---|---|---|
variableName | 用户会话子句变量。 | “ClientAddr” “GeoLocation” “无”(必需) |
ManagedRuleGroupOverride
名字 | 描述 | 价值 |
---|---|---|
ruleGroupName | 要重写的托管规则组。 | string (必需) |
规则 | 将禁用的规则列表。 如果未指定任何规则,将禁用组中的所有规则。 | ManagedRuleOverride[] |
ManagedRuleOverride
名字 | 描述 | 价值 |
---|---|---|
行动 | 描述规则匹配时要应用的替代操作。 | “允许” “AnomalyScoring” “Block” “Log” |
ruleId | 托管规则的标识符。 | string (必需) |
州 | 托管规则的状态。 如果未指定,则默认为 Disabled。 | “Disabled” “Enabled” |
ManagedRulesDefinition
名字 | 描述 | 价值 |
---|---|---|
排除 | 应用于策略的排除项。 | OwaspCrsExclusionEntry[] |
managedRuleSets | 与策略关联的托管规则集。 | ManagedRuleSet[] (必需) |
ManagedRuleSet
名字 | 描述 | 价值 |
---|---|---|
ruleGroupOverrides | 定义要应用于规则集的规则组替代。 | ManagedRuleGroupOverride[] |
ruleSetType | 定义要使用的规则集类型。 | string (必需) |
ruleSetVersion | 定义要使用的规则集的版本。 | string (必需) |
MatchCondition
名字 | 描述 | 价值 |
---|---|---|
matchValues | 匹配值。 | string[] (必需) |
matchVariables | 匹配变量的列表。 | MatchVariable[] (必需) |
negationConditon | 这是否为否定条件。 | bool |
算子 | 要匹配的运算符。 | “Any” “BeginsWith” “Contains” “EndsWith” “Equal” “GeoMatch” “GreaterThan” “GreaterThanOrEqual” “IPMatch” “LessThan” “LessThanOrEqual” “正则表达式”(必需) |
变换 | 转换列表。 | 包含任一项的字符串数组: “HtmlEntityDecode” “小写” “RemoveNulls” “Trim” “大写” “UrlDecode” “UrlEncode” |
MatchVariable
名字 | 描述 | 价值 |
---|---|---|
选择器 | 匹配变量的选择器。 | 字符串 |
variableName | 匹配变量。 | “PostArgs” “QueryString” “RemoteAddr” “RequestBody” “RequestCookies” “RequestHeaders” “RequestMethod” “RequestUri”(必需) |
Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies
名字 | 描述 | 价值 |
---|---|---|
位置 | 资源位置。 | 字符串 |
名字 | 资源名称 | 字符串 约束: 最大长度 = (必需) |
性能 | Web 应用程序防火墙策略的属性。 | WebApplicationFirewallPolicyPropertiesFormat |
标签 | 资源标记 | 标记名称和值的字典。 请参阅模板 中的 |
OwaspCrsExclusionEntry
名字 | 描述 | 价值 |
---|---|---|
exclusionManagedRuleSets | 与排除关联的托管规则集。 | ExclusionManagedRuleSet[] |
matchVariable | 要排除的变量。 | “RequestArgKeys” “RequestArgNames” “RequestArgValues” “RequestCookieKeys” “RequestCookieNames” “RequestCookieValues” “RequestHeaderKeys” “RequestHeaderNames” “RequestHeaderValues”(必需) |
选择器 | matchVariable 是集合时,运算符用于指定此排除项应用于的集合中的哪些元素。 | string (必需) |
selectorMatchOperator | 如果 matchVariable 是集合,请对选择器进行操作,以指定此排除项应用于的集合中的哪些元素。 | “Contains” “EndsWith” “Equals” “EqualsAny” “StartsWith”(必需) |
PolicySettings
名字 | 描述 | 价值 |
---|---|---|
customBlockResponseBody | 如果操作类型为块,客户可以替代响应正文。 必须在 base64 编码中指定正文。 | 字符串 约束: 最大长度 = Pattern = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$ |
customBlockResponseStatusCode | 如果操作类型为块,客户可以替代响应状态代码。 | int 约束: 最小值 = 0 |
fileUploadEnforcement | 是否允许 WAF 强制实施文件上传限制。 | bool |
fileUploadLimitInMb | WAF 的最大文件上传大小(以 Mb 为单位)。 | int 约束: 最小值 = 0 |
logScrubbing | 清理敏感日志字段 | PolicySettingsLogScrubbing |
maxRequestBodySizeInKb | WAF 的最大请求正文大小(以 Kb 为单位)。 | int 约束: 最小值 = 8 |
模式 | 策略的模式。 | “检测” “预防” |
requestBodyCheck | 是否允许 WAF 检查请求正文。 | bool |
requestBodyEnforcement | 是否允许 WAF 强制实施请求正文限制。 | bool |
requestBodyInspectLimitInKB | WAF 请求正文检查的最大检查限制(以 KB 为单位)。 | int |
州 | 策略的状态。 | “Disabled” “Enabled” |
PolicySettingsLogScrubbing
名字 | 描述 | 价值 |
---|---|---|
scrubbingRules | 应用于日志以清理的规则。 | WebApplicationFirewallScrubbingRules[] |
州 | 日志清理配置的状态。默认值为“已启用”。 | “Disabled” “Enabled” |
ResourceTags
名字 | 描述 | 价值 |
---|
WebApplicationFirewallCustomRule
名字 | 描述 | 价值 |
---|---|---|
行动 | 操作的类型。 | “允许” “Block” “Log”(必需) |
groupByUserSession | 按子句分组的用户会话标识符列表。 | GroupByUserSession[] |
matchConditions | 匹配条件列表。 | MatchCondition[] (必需) |
名字 | 策略中唯一的资源的名称。 此名称可用于访问资源。 | 字符串 约束: 最大长度 = |
优先权 | 规则的优先级。 在具有较高值的规则之前,将评估具有较低值的规则。 | int (必需) |
rateLimitDuration | 将应用速率限制策略的持续时间。 仅适用于 ruleType 为 RateLimitRule 时。 | “FiveMins” “OneMin” |
rateLimitThreshold | 在 ruleType 为 RateLimitRule 的情况下要应用的速率限制阈值。 必须大于或等于 1 | int |
ruleType | 规则类型。 | “Invalid” “MatchRule” “RateLimitRule”(必需) |
州 | 描述自定义规则是否处于启用或禁用状态。 如果未指定,则默认为 Enabled。 | “Disabled” “Enabled” |
WebApplicationFirewallPolicyPropertiesFormat
名字 | 描述 | 价值 |
---|---|---|
customRules | 策略中的自定义规则。 | WebApplicationFirewallCustomRule[] |
managedRules | 描述 managedRules 结构。 | ManagedRulesDefinition (必需) |
policySettings | 策略的 PolicySettings。 | PolicySettings |
WebApplicationFirewallScrubbingRules
名字 | 描述 | 价值 |
---|---|---|
matchVariable | 要从日志中清理的变量。 | “RequestArgNames” “RequestCookieNames” “RequestHeaderNames” 'RequestIPAddress' 'RequestJSONArgNames' “RequestPostArgNames”(必需) |
选择器 | matchVariable 是集合时,运算符用于指定此规则应用于的集合中的哪些元素。 | 字符串 |
selectorMatchOperator | 如果 matchVariable 是集合,请对选择器进行操作,以指定此规则应用于的集合中的哪些元素。 | “Equals” “EqualsAny”(必需) |
州 | 定义日志清理规则的状态。 默认值为“已启用”。 | “Disabled” “Enabled” |
快速入门示例
以下快速入门示例部署此资源类型。
Bicep 文件 | 描述 |
---|---|
使用 NAT 网关和应用程序网关 |
此示例演示如何使用 NAT 网关部署 AKS 群集进行出站连接,以及如何为入站连接部署应用程序网关。 |
使用应用程序网关入口控制器 |
此示例演示如何使用应用程序网关、应用程序网关入口控制器、Azure 容器注册表、Log Analytics 和 Key Vault 部署 AKS 群集 |
使用 WAF 和防火墙策略 |
此模板创建配置了 WAF 的应用程序网关以及防火墙策略 |
在 Azure 应用程序网关上创建 Azure WAF v2 | 此模板在 Azure 应用程序网关上创建一个 Azure Web 应用程序防火墙 v2,并在后端池中使用两台 Windows Server 2016 服务器 |
使用应用程序网关源 Front Door 标准版/高级版 | 此模板创建 Front Door 标准版/高级版和应用程序网关实例,并使用 NSG 和 WAF 策略来验证流量是否通过 Front Door 源。 |
使用容器实例和应用程序网关 |
此模板使用容器组和应用程序网关创建 Front Door 标准版/高级版。 |
ARM 模板资源定义
可以使用目标操作部署 ApplicationGatewayWebApplicationFirewallPolicies 资源类型:
- 资源组 - 请参阅 资源组部署命令
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies 资源,请将以下 JSON 添加到模板。
{
"type": "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies",
"apiVersion": "2022-11-01",
"name": "string",
"location": "string",
"properties": {
"customRules": [
{
"action": "string",
"groupByUserSession": [
{
"groupByVariables": [
{
"variableName": "string"
}
]
}
],
"matchConditions": [
{
"matchValues": [ "string" ],
"matchVariables": [
{
"selector": "string",
"variableName": "string"
}
],
"negationConditon": "bool",
"operator": "string",
"transforms": [ "string" ]
}
],
"name": "string",
"priority": "int",
"rateLimitDuration": "string",
"rateLimitThreshold": "int",
"ruleType": "string",
"state": "string"
}
],
"managedRules": {
"exclusions": [
{
"exclusionManagedRuleSets": [
{
"ruleGroups": [
{
"ruleGroupName": "string",
"rules": [
{
"ruleId": "string"
}
]
}
],
"ruleSetType": "string",
"ruleSetVersion": "string"
}
],
"matchVariable": "string",
"selector": "string",
"selectorMatchOperator": "string"
}
],
"managedRuleSets": [
{
"ruleGroupOverrides": [
{
"ruleGroupName": "string",
"rules": [
{
"action": "string",
"ruleId": "string",
"state": "string"
}
]
}
],
"ruleSetType": "string",
"ruleSetVersion": "string"
}
]
},
"policySettings": {
"customBlockResponseBody": "string",
"customBlockResponseStatusCode": "int",
"fileUploadEnforcement": "bool",
"fileUploadLimitInMb": "int",
"logScrubbing": {
"scrubbingRules": [
{
"matchVariable": "string",
"selector": "string",
"selectorMatchOperator": "string",
"state": "string"
}
],
"state": "string"
},
"maxRequestBodySizeInKb": "int",
"mode": "string",
"requestBodyCheck": "bool",
"requestBodyEnforcement": "bool",
"requestBodyInspectLimitInKB": "int",
"state": "string"
}
},
"tags": {
"{customized property}": "string"
}
}
属性值
ExclusionManagedRule
名字 | 描述 | 价值 |
---|---|---|
ruleId | 托管规则的标识符。 | string (必需) |
ExclusionManagedRuleGroup
名字 | 描述 | 价值 |
---|---|---|
ruleGroupName | 要排除的托管规则组。 | string (必需) |
规则 | 将排除的规则列表。 如果未指定任何规则,将排除组中的所有规则。 | ExclusionManagedRule[] |
ExclusionManagedRuleSet
名字 | 描述 | 价值 |
---|---|---|
ruleGroups | 定义要应用于规则集的规则组。 | ExclusionManagedRuleGroup[] |
ruleSetType | 定义要使用的规则集类型。 | string (必需) |
ruleSetVersion | 定义要使用的规则集的版本。 | string (必需) |
GroupByUserSession
名字 | 描述 | 价值 |
---|---|---|
groupByVariables | 按子句变量分组的列表。 | GroupByVariable[] (必需) |
GroupByVariable
名字 | 描述 | 价值 |
---|---|---|
variableName | 用户会话子句变量。 | “ClientAddr” “GeoLocation” “无”(必需) |
ManagedRuleGroupOverride
名字 | 描述 | 价值 |
---|---|---|
ruleGroupName | 要重写的托管规则组。 | string (必需) |
规则 | 将禁用的规则列表。 如果未指定任何规则,将禁用组中的所有规则。 | ManagedRuleOverride[] |
ManagedRuleOverride
名字 | 描述 | 价值 |
---|---|---|
行动 | 描述规则匹配时要应用的替代操作。 | “允许” “AnomalyScoring” “Block” “Log” |
ruleId | 托管规则的标识符。 | string (必需) |
州 | 托管规则的状态。 如果未指定,则默认为 Disabled。 | “Disabled” “Enabled” |
ManagedRulesDefinition
名字 | 描述 | 价值 |
---|---|---|
排除 | 应用于策略的排除项。 | OwaspCrsExclusionEntry[] |
managedRuleSets | 与策略关联的托管规则集。 | ManagedRuleSet[] (必需) |
ManagedRuleSet
名字 | 描述 | 价值 |
---|---|---|
ruleGroupOverrides | 定义要应用于规则集的规则组替代。 | ManagedRuleGroupOverride[] |
ruleSetType | 定义要使用的规则集类型。 | string (必需) |
ruleSetVersion | 定义要使用的规则集的版本。 | string (必需) |
MatchCondition
名字 | 描述 | 价值 |
---|---|---|
matchValues | 匹配值。 | string[] (必需) |
matchVariables | 匹配变量的列表。 | MatchVariable[] (必需) |
negationConditon | 这是否为否定条件。 | bool |
算子 | 要匹配的运算符。 | “Any” “BeginsWith” “Contains” “EndsWith” “Equal” “GeoMatch” “GreaterThan” “GreaterThanOrEqual” “IPMatch” “LessThan” “LessThanOrEqual” “正则表达式”(必需) |
变换 | 转换列表。 | 包含任一项的字符串数组: “HtmlEntityDecode” “小写” “RemoveNulls” “Trim” “大写” “UrlDecode” “UrlEncode” |
MatchVariable
名字 | 描述 | 价值 |
---|---|---|
选择器 | 匹配变量的选择器。 | 字符串 |
variableName | 匹配变量。 | “PostArgs” “QueryString” “RemoteAddr” “RequestBody” “RequestCookies” “RequestHeaders” “RequestMethod” “RequestUri”(必需) |
Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies
名字 | 描述 | 价值 |
---|---|---|
apiVersion | API 版本 | '2022-11-01' |
位置 | 资源位置。 | 字符串 |
名字 | 资源名称 | 字符串 约束: 最大长度 = (必需) |
性能 | Web 应用程序防火墙策略的属性。 | WebApplicationFirewallPolicyPropertiesFormat |
标签 | 资源标记 | 标记名称和值的字典。 请参阅模板 中的 |
类型 | 资源类型 | “Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies” |
OwaspCrsExclusionEntry
名字 | 描述 | 价值 |
---|---|---|
exclusionManagedRuleSets | 与排除关联的托管规则集。 | ExclusionManagedRuleSet[] |
matchVariable | 要排除的变量。 | “RequestArgKeys” “RequestArgNames” “RequestArgValues” “RequestCookieKeys” “RequestCookieNames” “RequestCookieValues” “RequestHeaderKeys” “RequestHeaderNames” “RequestHeaderValues”(必需) |
选择器 | matchVariable 是集合时,运算符用于指定此排除项应用于的集合中的哪些元素。 | string (必需) |
selectorMatchOperator | 如果 matchVariable 是集合,请对选择器进行操作,以指定此排除项应用于的集合中的哪些元素。 | “Contains” “EndsWith” “Equals” “EqualsAny” “StartsWith”(必需) |
PolicySettings
名字 | 描述 | 价值 |
---|---|---|
customBlockResponseBody | 如果操作类型为块,客户可以替代响应正文。 必须在 base64 编码中指定正文。 | 字符串 约束: 最大长度 = Pattern = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$ |
customBlockResponseStatusCode | 如果操作类型为块,客户可以替代响应状态代码。 | int 约束: 最小值 = 0 |
fileUploadEnforcement | 是否允许 WAF 强制实施文件上传限制。 | bool |
fileUploadLimitInMb | WAF 的最大文件上传大小(以 Mb 为单位)。 | int 约束: 最小值 = 0 |
logScrubbing | 清理敏感日志字段 | PolicySettingsLogScrubbing |
maxRequestBodySizeInKb | WAF 的最大请求正文大小(以 Kb 为单位)。 | int 约束: 最小值 = 8 |
模式 | 策略的模式。 | “检测” “预防” |
requestBodyCheck | 是否允许 WAF 检查请求正文。 | bool |
requestBodyEnforcement | 是否允许 WAF 强制实施请求正文限制。 | bool |
requestBodyInspectLimitInKB | WAF 请求正文检查的最大检查限制(以 KB 为单位)。 | int |
州 | 策略的状态。 | “Disabled” “Enabled” |
PolicySettingsLogScrubbing
名字 | 描述 | 价值 |
---|---|---|
scrubbingRules | 应用于日志以清理的规则。 | WebApplicationFirewallScrubbingRules[] |
州 | 日志清理配置的状态。默认值为“已启用”。 | “Disabled” “Enabled” |
ResourceTags
名字 | 描述 | 价值 |
---|
WebApplicationFirewallCustomRule
名字 | 描述 | 价值 |
---|---|---|
行动 | 操作的类型。 | “允许” “Block” “Log”(必需) |
groupByUserSession | 按子句分组的用户会话标识符列表。 | GroupByUserSession[] |
matchConditions | 匹配条件列表。 | MatchCondition[] (必需) |
名字 | 策略中唯一的资源的名称。 此名称可用于访问资源。 | 字符串 约束: 最大长度 = |
优先权 | 规则的优先级。 在具有较高值的规则之前,将评估具有较低值的规则。 | int (必需) |
rateLimitDuration | 将应用速率限制策略的持续时间。 仅适用于 ruleType 为 RateLimitRule 时。 | “FiveMins” “OneMin” |
rateLimitThreshold | 在 ruleType 为 RateLimitRule 的情况下要应用的速率限制阈值。 必须大于或等于 1 | int |
ruleType | 规则类型。 | “Invalid” “MatchRule” “RateLimitRule”(必需) |
州 | 描述自定义规则是否处于启用或禁用状态。 如果未指定,则默认为 Enabled。 | “Disabled” “Enabled” |
WebApplicationFirewallPolicyPropertiesFormat
名字 | 描述 | 价值 |
---|---|---|
customRules | 策略中的自定义规则。 | WebApplicationFirewallCustomRule[] |
managedRules | 描述 managedRules 结构。 | ManagedRulesDefinition (必需) |
policySettings | 策略的 PolicySettings。 | PolicySettings |
WebApplicationFirewallScrubbingRules
名字 | 描述 | 价值 |
---|---|---|
matchVariable | 要从日志中清理的变量。 | “RequestArgNames” “RequestCookieNames” “RequestHeaderNames” 'RequestIPAddress' 'RequestJSONArgNames' “RequestPostArgNames”(必需) |
选择器 | matchVariable 是集合时,运算符用于指定此规则应用于的集合中的哪些元素。 | 字符串 |
selectorMatchOperator | 如果 matchVariable 是集合,请对选择器进行操作,以指定此规则应用于的集合中的哪些元素。 | “Equals” “EqualsAny”(必需) |
州 | 定义日志清理规则的状态。 默认值为“已启用”。 | “Disabled” “Enabled” |
快速入门模板
以下快速入门模板部署此资源类型。
模板 | 描述 |
---|---|
使用 NAT 网关和应用程序网关 |
此示例演示如何使用 NAT 网关部署 AKS 群集进行出站连接,以及如何为入站连接部署应用程序网关。 |
使用应用程序网关入口控制器 |
此示例演示如何使用应用程序网关、应用程序网关入口控制器、Azure 容器注册表、Log Analytics 和 Key Vault 部署 AKS 群集 |
使用 WAF 和防火墙策略 |
此模板创建配置了 WAF 的应用程序网关以及防火墙策略 |
在 Azure 应用程序网关上创建 Azure WAF v2 |
此模板在 Azure 应用程序网关上创建一个 Azure Web 应用程序防火墙 v2,并在后端池中使用两台 Windows Server 2016 服务器 |
使用应用程序网关源 Front Door 标准版/高级版 |
此模板创建 Front Door 标准版/高级版和应用程序网关实例,并使用 NSG 和 WAF 策略来验证流量是否通过 Front Door 源。 |
使用容器实例和应用程序网关 |
此模板使用容器组和应用程序网关创建 Front Door 标准版/高级版。 |
Terraform (AzAPI 提供程序)资源定义
可以使用目标操作部署 ApplicationGatewayWebApplicationFirewallPolicies 资源类型:
- 资源组
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies 资源,请将以下 Terraform 添加到模板。
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2022-11-01"
name = "string"
location = "string"
tags = {
{customized property} = "string"
}
body = jsonencode({
properties = {
customRules = [
{
action = "string"
groupByUserSession = [
{
groupByVariables = [
{
variableName = "string"
}
]
}
]
matchConditions = [
{
matchValues = [
"string"
]
matchVariables = [
{
selector = "string"
variableName = "string"
}
]
negationConditon = bool
operator = "string"
transforms = [
"string"
]
}
]
name = "string"
priority = int
rateLimitDuration = "string"
rateLimitThreshold = int
ruleType = "string"
state = "string"
}
]
managedRules = {
exclusions = [
{
exclusionManagedRuleSets = [
{
ruleGroups = [
{
ruleGroupName = "string"
rules = [
{
ruleId = "string"
}
]
}
]
ruleSetType = "string"
ruleSetVersion = "string"
}
]
matchVariable = "string"
selector = "string"
selectorMatchOperator = "string"
}
]
managedRuleSets = [
{
ruleGroupOverrides = [
{
ruleGroupName = "string"
rules = [
{
action = "string"
ruleId = "string"
state = "string"
}
]
}
]
ruleSetType = "string"
ruleSetVersion = "string"
}
]
}
policySettings = {
customBlockResponseBody = "string"
customBlockResponseStatusCode = int
fileUploadEnforcement = bool
fileUploadLimitInMb = int
logScrubbing = {
scrubbingRules = [
{
matchVariable = "string"
selector = "string"
selectorMatchOperator = "string"
state = "string"
}
]
state = "string"
}
maxRequestBodySizeInKb = int
mode = "string"
requestBodyCheck = bool
requestBodyEnforcement = bool
requestBodyInspectLimitInKB = int
state = "string"
}
}
})
}
属性值
ExclusionManagedRule
名字 | 描述 | 价值 |
---|---|---|
ruleId | 托管规则的标识符。 | string (必需) |
ExclusionManagedRuleGroup
名字 | 描述 | 价值 |
---|---|---|
ruleGroupName | 要排除的托管规则组。 | string (必需) |
规则 | 将排除的规则列表。 如果未指定任何规则,将排除组中的所有规则。 | ExclusionManagedRule[] |
ExclusionManagedRuleSet
名字 | 描述 | 价值 |
---|---|---|
ruleGroups | 定义要应用于规则集的规则组。 | ExclusionManagedRuleGroup[] |
ruleSetType | 定义要使用的规则集类型。 | string (必需) |
ruleSetVersion | 定义要使用的规则集的版本。 | string (必需) |
GroupByUserSession
名字 | 描述 | 价值 |
---|---|---|
groupByVariables | 按子句变量分组的列表。 | GroupByVariable[] (必需) |
GroupByVariable
名字 | 描述 | 价值 |
---|---|---|
variableName | 用户会话子句变量。 | “ClientAddr” “GeoLocation” “无”(必需) |
ManagedRuleGroupOverride
名字 | 描述 | 价值 |
---|---|---|
ruleGroupName | 要重写的托管规则组。 | string (必需) |
规则 | 将禁用的规则列表。 如果未指定任何规则,将禁用组中的所有规则。 | ManagedRuleOverride[] |
ManagedRuleOverride
名字 | 描述 | 价值 |
---|---|---|
行动 | 描述规则匹配时要应用的替代操作。 | “允许” “AnomalyScoring” “Block” “Log” |
ruleId | 托管规则的标识符。 | string (必需) |
州 | 托管规则的状态。 如果未指定,则默认为 Disabled。 | “Disabled” “Enabled” |
ManagedRulesDefinition
名字 | 描述 | 价值 |
---|---|---|
排除 | 应用于策略的排除项。 | OwaspCrsExclusionEntry[] |
managedRuleSets | 与策略关联的托管规则集。 | ManagedRuleSet[] (必需) |
ManagedRuleSet
名字 | 描述 | 价值 |
---|---|---|
ruleGroupOverrides | 定义要应用于规则集的规则组替代。 | ManagedRuleGroupOverride[] |
ruleSetType | 定义要使用的规则集类型。 | string (必需) |
ruleSetVersion | 定义要使用的规则集的版本。 | string (必需) |
MatchCondition
名字 | 描述 | 价值 |
---|---|---|
matchValues | 匹配值。 | string[] (必需) |
matchVariables | 匹配变量的列表。 | MatchVariable[] (必需) |
negationConditon | 这是否为否定条件。 | bool |
算子 | 要匹配的运算符。 | “Any” “BeginsWith” “Contains” “EndsWith” “Equal” “GeoMatch” “GreaterThan” “GreaterThanOrEqual” “IPMatch” “LessThan” “LessThanOrEqual” “正则表达式”(必需) |
变换 | 转换列表。 | 包含任一项的字符串数组: “HtmlEntityDecode” “小写” “RemoveNulls” “Trim” “大写” “UrlDecode” “UrlEncode” |
MatchVariable
名字 | 描述 | 价值 |
---|---|---|
选择器 | 匹配变量的选择器。 | 字符串 |
variableName | 匹配变量。 | “PostArgs” “QueryString” “RemoteAddr” “RequestBody” “RequestCookies” “RequestHeaders” “RequestMethod” “RequestUri”(必需) |
Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies
名字 | 描述 | 价值 |
---|---|---|
位置 | 资源位置。 | 字符串 |
名字 | 资源名称 | 字符串 约束: 最大长度 = (必需) |
性能 | Web 应用程序防火墙策略的属性。 | WebApplicationFirewallPolicyPropertiesFormat |
标签 | 资源标记 | 标记名称和值的字典。 |
类型 | 资源类型 | “Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2022-11-01” |
OwaspCrsExclusionEntry
名字 | 描述 | 价值 |
---|---|---|
exclusionManagedRuleSets | 与排除关联的托管规则集。 | ExclusionManagedRuleSet[] |
matchVariable | 要排除的变量。 | “RequestArgKeys” “RequestArgNames” “RequestArgValues” “RequestCookieKeys” “RequestCookieNames” “RequestCookieValues” “RequestHeaderKeys” “RequestHeaderNames” “RequestHeaderValues”(必需) |
选择器 | matchVariable 是集合时,运算符用于指定此排除项应用于的集合中的哪些元素。 | string (必需) |
selectorMatchOperator | 如果 matchVariable 是集合,请对选择器进行操作,以指定此排除项应用于的集合中的哪些元素。 | “Contains” “EndsWith” “Equals” “EqualsAny” “StartsWith”(必需) |
PolicySettings
名字 | 描述 | 价值 |
---|---|---|
customBlockResponseBody | 如果操作类型为块,客户可以替代响应正文。 必须在 base64 编码中指定正文。 | 字符串 约束: 最大长度 = Pattern = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$ |
customBlockResponseStatusCode | 如果操作类型为块,客户可以替代响应状态代码。 | int 约束: 最小值 = 0 |
fileUploadEnforcement | 是否允许 WAF 强制实施文件上传限制。 | bool |
fileUploadLimitInMb | WAF 的最大文件上传大小(以 Mb 为单位)。 | int 约束: 最小值 = 0 |
logScrubbing | 清理敏感日志字段 | PolicySettingsLogScrubbing |
maxRequestBodySizeInKb | WAF 的最大请求正文大小(以 Kb 为单位)。 | int 约束: 最小值 = 8 |
模式 | 策略的模式。 | “检测” “预防” |
requestBodyCheck | 是否允许 WAF 检查请求正文。 | bool |
requestBodyEnforcement | 是否允许 WAF 强制实施请求正文限制。 | bool |
requestBodyInspectLimitInKB | WAF 请求正文检查的最大检查限制(以 KB 为单位)。 | int |
州 | 策略的状态。 | “Disabled” “Enabled” |
PolicySettingsLogScrubbing
名字 | 描述 | 价值 |
---|---|---|
scrubbingRules | 应用于日志以清理的规则。 | WebApplicationFirewallScrubbingRules[] |
州 | 日志清理配置的状态。默认值为“已启用”。 | “Disabled” “Enabled” |
ResourceTags
名字 | 描述 | 价值 |
---|
WebApplicationFirewallCustomRule
名字 | 描述 | 价值 |
---|---|---|
行动 | 操作的类型。 | “允许” “Block” “Log”(必需) |
groupByUserSession | 按子句分组的用户会话标识符列表。 | GroupByUserSession[] |
matchConditions | 匹配条件列表。 | MatchCondition[] (必需) |
名字 | 策略中唯一的资源的名称。 此名称可用于访问资源。 | 字符串 约束: 最大长度 = |
优先权 | 规则的优先级。 在具有较高值的规则之前,将评估具有较低值的规则。 | int (必需) |
rateLimitDuration | 将应用速率限制策略的持续时间。 仅适用于 ruleType 为 RateLimitRule 时。 | “FiveMins” “OneMin” |
rateLimitThreshold | 在 ruleType 为 RateLimitRule 的情况下要应用的速率限制阈值。 必须大于或等于 1 | int |
ruleType | 规则类型。 | “Invalid” “MatchRule” “RateLimitRule”(必需) |
州 | 描述自定义规则是否处于启用或禁用状态。 如果未指定,则默认为 Enabled。 | “Disabled” “Enabled” |
WebApplicationFirewallPolicyPropertiesFormat
名字 | 描述 | 价值 |
---|---|---|
customRules | 策略中的自定义规则。 | WebApplicationFirewallCustomRule[] |
managedRules | 描述 managedRules 结构。 | ManagedRulesDefinition (必需) |
policySettings | 策略的 PolicySettings。 | PolicySettings |
WebApplicationFirewallScrubbingRules
名字 | 描述 | 价值 |
---|---|---|
matchVariable | 要从日志中清理的变量。 | “RequestArgNames” “RequestCookieNames” “RequestHeaderNames” 'RequestIPAddress' 'RequestJSONArgNames' “RequestPostArgNames”(必需) |
选择器 | matchVariable 是集合时,运算符用于指定此规则应用于的集合中的哪些元素。 | 字符串 |
selectorMatchOperator | 如果 matchVariable 是集合,请对选择器进行操作,以指定此规则应用于的集合中的哪些元素。 | “Equals” “EqualsAny”(必需) |
州 | 定义日志清理规则的状态。 默认值为“已启用”。 | “Disabled” “Enabled” |