你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Microsoft.Network FrontDoorWebApplicationFirewallPolicies
Bicep 资源定义
可以使用目标操作部署 FrontDoorWebApplicationFirewallPolicies 资源类型:
- 资源组 - 请参阅 资源组部署命令
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Network/FrontDoorWebApplicationFirewallPolicies 资源,请将以下 Bicep 添加到模板。
resource symbolicname 'Microsoft.Network/FrontDoorWebApplicationFirewallPolicies@2024-02-01' = {
etag: 'string'
location: 'string'
name: 'string'
properties: {
customRules: {
rules: [
{
action: 'string'
enabledState: 'string'
groupBy: [
{
variableName: 'string'
}
]
matchConditions: [
{
matchValue: [
'string'
]
matchVariable: 'string'
negateCondition: bool
operator: 'string'
selector: 'string'
transforms: [
'string'
]
}
]
name: 'string'
priority: int
rateLimitDurationInMinutes: int
rateLimitThreshold: int
ruleType: 'string'
}
]
}
managedRules: {
managedRuleSets: [
{
exclusions: [
{
matchVariable: 'string'
selector: 'string'
selectorMatchOperator: 'string'
}
]
ruleGroupOverrides: [
{
exclusions: [
{
matchVariable: 'string'
selector: 'string'
selectorMatchOperator: 'string'
}
]
ruleGroupName: 'string'
rules: [
{
action: 'string'
enabledState: 'string'
exclusions: [
{
matchVariable: 'string'
selector: 'string'
selectorMatchOperator: 'string'
}
]
ruleId: 'string'
}
]
}
]
ruleSetAction: 'string'
ruleSetType: 'string'
ruleSetVersion: 'string'
}
]
}
policySettings: {
customBlockResponseBody: 'string'
customBlockResponseStatusCode: int
enabledState: 'string'
javascriptChallengeExpirationInMinutes: int
logScrubbing: {
scrubbingRules: [
{
matchVariable: 'string'
selector: 'string'
selectorMatchOperator: 'string'
state: 'string'
}
]
state: 'string'
}
mode: 'string'
redirectUrl: 'string'
requestBodyCheck: 'string'
}
}
sku: {
name: 'string'
}
tags: {
{customized property}: 'string'
}
}
属性值
CustomRule
名字 | 描述 | 价值 |
---|---|---|
行动 | 描述规则匹配时要应用的操作。 | “允许” “AnomalyScoring” “Block” “JSChallenge” “Log” “重定向”(必需) |
enabledState | 描述自定义规则是否处于启用或禁用状态。 如果未指定,则默认为 Enabled。 | “Disabled” “Enabled” |
groupBy | 描述用于对速率限制请求进行分组的变量列表 | GroupByVariable[] |
matchConditions | 匹配条件列表。 | MatchCondition[] (必需) |
名字 | 描述规则的名称。 | 字符串 约束: 最大长度 = |
优先权 | 描述规则的优先级。 在具有较高值的规则之前,将评估具有较低值的规则。 | int (必需) |
rateLimitDurationInMinutes | 重置速率限制计数的时间范围。 默认值为 1 分钟。 | int 约束: 最小值 = 0 最大值 = 5 |
rateLimitThreshold | 时间范围内每个客户端允许的请求数。 | int 约束: 最小值 = 0 |
ruleType | 描述规则的类型。 | “MatchRule” “RateLimitRule”(必需) |
CustomRuleList
名字 | 描述 | 价值 |
---|---|---|
规则 | 规则列表 | CustomRule[] |
GroupByVariable
名字 | 描述 | 价值 |
---|---|---|
variableName | 介绍组依据的受支持变量 | “GeoLocation” “None” “SocketAddr”(必需) |
ManagedRuleExclusion
名字 | 描述 | 价值 |
---|---|---|
matchVariable | 要排除的变量类型。 | “QueryStringArgNames” “RequestBodyJsonArgNames” 'RequestBodyPostArgNames' “RequestCookieNames” “RequestHeaderNames”(必需) |
选择器 | 此排除项应用于集合中的元素的选择器值。 | string (必需) |
selectorMatchOperator | 在指定此排除项应用于的集合中的元素时,要应用于选择器的比较运算符。 | “Contains” “EndsWith” “Equals” “EqualsAny” “StartsWith”(必需) |
ManagedRuleGroupOverride
名字 | 描述 | 价值 |
---|---|---|
排除 | 描述应用于组中所有规则的排除项。 | ManagedRuleExclusion[] |
ruleGroupName | 描述要重写的托管规则组。 | string (必需) |
规则 | 将禁用的规则列表。 如果未指定任何规则,将禁用组中的所有规则。 | ManagedRuleOverride[] |
ManagedRuleOverride
名字 | 描述 | 价值 |
---|---|---|
行动 | 描述规则匹配时要应用的替代操作。 | “允许” “AnomalyScoring” “Block” “JSChallenge” “Log” “Redirect” |
enabledState | 描述托管规则是否处于启用或禁用状态。 如果未指定,则默认为 Disabled。 | “Disabled” “Enabled” |
排除 | 描述应用于此特定规则的排除项。 | ManagedRuleExclusion[] |
ruleId | 托管规则的标识符。 | string (必需) |
ManagedRuleSet
名字 | 描述 | 价值 |
---|---|---|
排除 | 描述应用于集中所有规则的排除项。 | ManagedRuleExclusion[] |
ruleGroupOverrides | 定义要应用于规则集的规则组替代。 | ManagedRuleGroupOverride[] |
ruleSetAction | 定义规则集操作。 | “Block” “Log” “Redirect” |
ruleSetType | 定义要使用的规则集类型。 | string (必需) |
ruleSetVersion | 定义要使用的规则集的版本。 | string (必需) |
ManagedRuleSetList
名字 | 描述 | 价值 |
---|---|---|
managedRuleSets | 规则集列表。 | ManagedRuleSet[] |
MatchCondition
名字 | 描述 | 价值 |
---|---|---|
matchValue | 可能的匹配值列表。 | string[] (必需) |
matchVariable | 要与之进行比较的请求变量。 | “Cookies” “PostArgs” “QueryString” “RemoteAddr” “RequestBody” “RequestHeader” “RequestMethod” “RequestUri” “SocketAddr”(必需) |
negateCondition | 描述是否应否定此条件的结果。 | bool |
算子 | 要用于与变量值匹配的比较类型。 | “Any” “BeginsWith” “Contains” “EndsWith” “Equal” “GeoMatch” “GreaterThan” “GreaterThanOrEqual” “IPMatch” “LessThan” “LessThanOrEqual” “正则表达式”(必需) |
选择器 | 与 QueryString、PostArgs、RequestHeader 或 Cookies 变量中的特定键匹配。 默认值为 null。 | 字符串 |
变换 | 转换列表。 | 包含任一项的字符串数组: “小写” “RemoveNulls” “Trim” “大写” “UrlDecode” “UrlEncode” |
Microsoft.Network/FrontDoorWebApplicationFirewallPolicies
名字 | 描述 | 价值 |
---|---|---|
etag | 获取在更新资源时更改的唯一只读字符串。 | 字符串 |
位置 | 资源位置。 | 字符串 |
名字 | 资源名称 | 字符串 约束: 最大长度 = (必需) |
性能 | Web 应用程序防火墙策略的属性。 | WebApplicationFirewallPolicyProperties |
sku | Web 应用程序防火墙策略的定价层。 如果未指定,则默认为Classic_AzureFrontDoor。 | Sku |
标签 | 资源标记 | 标记名称和值的字典。 请参阅模板 中的 |
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 |
enabledState | 描述策略是否处于启用或禁用状态。 如果未指定,则默认为 Enabled。 | “Disabled” “Enabled” |
javascriptChallengeExpirationInMinutes | 定义 JavaScript 质询 Cookie 有效期(以分钟为单位)。 此设置仅适用于Premium_AzureFrontDoor。 值必须是介于 5 和 1440 之间的整数,默认值为 30。 | int 约束: 最小值 = 5 最大值 = 1440 |
logScrubbing | 定义在 Web 应用程序防火墙日志中清理敏感字段的规则。 | PolicySettingsLogScrubbing |
模式 | 描述它在策略级别是否处于检测模式或预防模式。 | “检测” “预防” |
redirectUrl | 如果操作类型为重定向,此字段表示客户端的重定向 URL。 | 字符串 |
requestBodyCheck | 描述策略托管规则是否会检查请求正文内容。 | “Disabled” “Enabled” |
PolicySettingsLogScrubbing
名字 | 描述 | 价值 |
---|---|---|
scrubbingRules | 应用于 Web 应用程序防火墙日志的日志清理规则列表。 | WebApplicationFirewallScrubbingRules[] |
state | 日志清理配置的状态。默认值为“已启用”。 | “Disabled” “Enabled” |
ResourceTags
名字 | 描述 | 价值 |
---|
Sku
名字 | 描述 | 价值 |
---|---|---|
名字 | 定价层的名称。 | “Classic_AzureFrontDoor” “Premium_AzureFrontDoor” “Standard_AzureFrontDoor” |
WebApplicationFirewallPolicyProperties
名字 | 描述 | 价值 |
---|---|---|
customRules | 描述策略中的自定义规则。 | CustomRuleList |
managedRules | 描述策略中的托管规则。 | ManagedRuleSetList |
policySettings | 描述策略的设置。 | PolicySettings |
WebApplicationFirewallScrubbingRules
名字 | 描述 | 价值 |
---|---|---|
matchVariable | 要从日志中清理的变量。 | “QueryStringArgNames” “RequestBodyJsonArgNames” 'RequestBodyPostArgNames' “RequestCookieNames” “RequestHeaderNames” 'RequestIPAddress' “RequestUri”(必需) |
选择器 | matchVariable 是集合时,运算符用于指定此规则应用于的集合中的哪些元素。 | 字符串 |
selectorMatchOperator | 如果 matchVariable 是集合,请对选择器进行操作,以指定此规则应用于的集合中的哪些元素。 | “Equals” “EqualsAny”(必需) |
state | 定义日志清理规则的状态。 默认值处于启用状态。 | “Disabled” “Enabled” |
快速入门示例
以下快速入门示例部署此资源类型。
Bicep 文件 | 描述 |
---|---|
为 Azure Front Door 配置 WAF 托管 defaultRuleSet | 此模板配置适用于 Azure Front Door 的 WAF 托管 defaultRuleSet |
使用 blob 源和专用链接 |
此模板创建 Front Door Premium 和 Azure 存储 Blob 容器,并使用 Front Door 的专用终结点将流量发送到存储帐户。 |
使用 WAF 和Microsoft托管的规则集 |
此模板创建一个 Front Door Premium,其中包括具有Microsoft托管的默认和机器人保护规则集的 Web 应用程序防火墙。 |
使用异地筛选 |
此模板创建 Front Door 标准版/高级版,包括具有地理筛选规则的 Web 应用程序防火墙。 |
Front Door 标准版/高级版,速率限制为 | 此模板创建 Front Door 标准版/高级版,包括具有速率限制规则的 Web 应用程序防火墙。 |
使用 WAF 和自定义规则 |
此模板创建 Front Door 标准版/高级版,包括具有自定义规则的 Web 应用程序防火墙。 |
使用 blob 上传 的 blob 源 |
此模板创建一个 Front Door,其中包含源、路由和 ruleSet,以及一个包含 Blob 容器的 Azure 存储帐户。 Front Door 在上传文件时向存储帐户发送流量。 |
使用 WAF、域和日志将 FrontDoor CDN EventHub | 此模板创建新的 Azure FrontDoor cdn 配置文件。 使用自定义和托管规则、cdn 路由、源和组与 WAF 和路由关联创建 WAF,配置自定义域,创建事件中心和诊断设置,以便使用事件中心发送 CDN 访问日志。 |
受 Azure Frontdoor 保护的 |
此模板允许部署受 Azure Frontdoor 高级版保护并发布的 Azure 高级函数。 Azure Frontdoor 和 Azure Functions 之间的连接受 Azure 专用链接的保护。 |
ARM 模板资源定义
可以使用目标操作部署 FrontDoorWebApplicationFirewallPolicies 资源类型:
- 资源组 - 请参阅 资源组部署命令
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Network/FrontDoorWebApplicationFirewallPolicies 资源,请将以下 JSON 添加到模板。
{
"type": "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies",
"apiVersion": "2024-02-01",
"name": "string",
"etag": "string",
"location": "string",
"properties": {
"customRules": {
"rules": [
{
"action": "string",
"enabledState": "string",
"groupBy": [
{
"variableName": "string"
}
],
"matchConditions": [
{
"matchValue": [ "string" ],
"matchVariable": "string",
"negateCondition": "bool",
"operator": "string",
"selector": "string",
"transforms": [ "string" ]
}
],
"name": "string",
"priority": "int",
"rateLimitDurationInMinutes": "int",
"rateLimitThreshold": "int",
"ruleType": "string"
}
]
},
"managedRules": {
"managedRuleSets": [
{
"exclusions": [
{
"matchVariable": "string",
"selector": "string",
"selectorMatchOperator": "string"
}
],
"ruleGroupOverrides": [
{
"exclusions": [
{
"matchVariable": "string",
"selector": "string",
"selectorMatchOperator": "string"
}
],
"ruleGroupName": "string",
"rules": [
{
"action": "string",
"enabledState": "string",
"exclusions": [
{
"matchVariable": "string",
"selector": "string",
"selectorMatchOperator": "string"
}
],
"ruleId": "string"
}
]
}
],
"ruleSetAction": "string",
"ruleSetType": "string",
"ruleSetVersion": "string"
}
]
},
"policySettings": {
"customBlockResponseBody": "string",
"customBlockResponseStatusCode": "int",
"enabledState": "string",
"javascriptChallengeExpirationInMinutes": "int",
"logScrubbing": {
"scrubbingRules": [
{
"matchVariable": "string",
"selector": "string",
"selectorMatchOperator": "string",
"state": "string"
}
],
"state": "string"
},
"mode": "string",
"redirectUrl": "string",
"requestBodyCheck": "string"
}
},
"sku": {
"name": "string"
},
"tags": {
"{customized property}": "string"
}
}
属性值
CustomRule
名字 | 描述 | 价值 |
---|---|---|
行动 | 描述规则匹配时要应用的操作。 | “允许” “AnomalyScoring” “Block” “JSChallenge” “Log” “重定向”(必需) |
enabledState | 描述自定义规则是否处于启用或禁用状态。 如果未指定,则默认为 Enabled。 | “Disabled” “Enabled” |
groupBy | 描述用于对速率限制请求进行分组的变量列表 | GroupByVariable[] |
matchConditions | 匹配条件列表。 | MatchCondition[] (必需) |
名字 | 描述规则的名称。 | 字符串 约束: 最大长度 = |
优先权 | 描述规则的优先级。 在具有较高值的规则之前,将评估具有较低值的规则。 | int (必需) |
rateLimitDurationInMinutes | 重置速率限制计数的时间范围。 默认值为 1 分钟。 | int 约束: 最小值 = 0 最大值 = 5 |
rateLimitThreshold | 时间范围内每个客户端允许的请求数。 | int 约束: 最小值 = 0 |
ruleType | 描述规则的类型。 | “MatchRule” “RateLimitRule”(必需) |
CustomRuleList
名字 | 描述 | 价值 |
---|---|---|
规则 | 规则列表 | CustomRule[] |
GroupByVariable
名字 | 描述 | 价值 |
---|---|---|
variableName | 介绍组依据的受支持变量 | “GeoLocation” “None” “SocketAddr”(必需) |
ManagedRuleExclusion
名字 | 描述 | 价值 |
---|---|---|
matchVariable | 要排除的变量类型。 | “QueryStringArgNames” “RequestBodyJsonArgNames” 'RequestBodyPostArgNames' “RequestCookieNames” “RequestHeaderNames”(必需) |
选择器 | 此排除项应用于集合中的元素的选择器值。 | string (必需) |
selectorMatchOperator | 在指定此排除项应用于的集合中的元素时,要应用于选择器的比较运算符。 | “Contains” “EndsWith” “Equals” “EqualsAny” “StartsWith”(必需) |
ManagedRuleGroupOverride
名字 | 描述 | 价值 |
---|---|---|
排除 | 描述应用于组中所有规则的排除项。 | ManagedRuleExclusion[] |
ruleGroupName | 描述要重写的托管规则组。 | string (必需) |
规则 | 将禁用的规则列表。 如果未指定任何规则,将禁用组中的所有规则。 | ManagedRuleOverride[] |
ManagedRuleOverride
名字 | 描述 | 价值 |
---|---|---|
行动 | 描述规则匹配时要应用的替代操作。 | “允许” “AnomalyScoring” “Block” “JSChallenge” “Log” “Redirect” |
enabledState | 描述托管规则是否处于启用或禁用状态。 如果未指定,则默认为 Disabled。 | “Disabled” “Enabled” |
排除 | 描述应用于此特定规则的排除项。 | ManagedRuleExclusion[] |
ruleId | 托管规则的标识符。 | string (必需) |
ManagedRuleSet
名字 | 描述 | 价值 |
---|---|---|
排除 | 描述应用于集中所有规则的排除项。 | ManagedRuleExclusion[] |
ruleGroupOverrides | 定义要应用于规则集的规则组替代。 | ManagedRuleGroupOverride[] |
ruleSetAction | 定义规则集操作。 | “Block” “Log” “Redirect” |
ruleSetType | 定义要使用的规则集类型。 | string (必需) |
ruleSetVersion | 定义要使用的规则集的版本。 | string (必需) |
ManagedRuleSetList
名字 | 描述 | 价值 |
---|---|---|
managedRuleSets | 规则集列表。 | ManagedRuleSet[] |
MatchCondition
名字 | 描述 | 价值 |
---|---|---|
matchValue | 可能的匹配值列表。 | string[] (必需) |
matchVariable | 要与之进行比较的请求变量。 | “Cookies” “PostArgs” “QueryString” “RemoteAddr” “RequestBody” “RequestHeader” “RequestMethod” “RequestUri” “SocketAddr”(必需) |
negateCondition | 描述是否应否定此条件的结果。 | bool |
算子 | 要用于与变量值匹配的比较类型。 | “Any” “BeginsWith” “Contains” “EndsWith” “Equal” “GeoMatch” “GreaterThan” “GreaterThanOrEqual” “IPMatch” “LessThan” “LessThanOrEqual” “正则表达式”(必需) |
选择器 | 与 QueryString、PostArgs、RequestHeader 或 Cookies 变量中的特定键匹配。 默认值为 null。 | 字符串 |
变换 | 转换列表。 | 包含任一项的字符串数组: “小写” “RemoveNulls” “Trim” “大写” “UrlDecode” “UrlEncode” |
Microsoft.Network/FrontDoorWebApplicationFirewallPolicies
名字 | 描述 | 价值 |
---|---|---|
apiVersion | API 版本 | '2024-02-01' |
etag | 获取在更新资源时更改的唯一只读字符串。 | 字符串 |
位置 | 资源位置。 | 字符串 |
名字 | 资源名称 | 字符串 约束: 最大长度 = (必需) |
性能 | Web 应用程序防火墙策略的属性。 | WebApplicationFirewallPolicyProperties |
sku | Web 应用程序防火墙策略的定价层。 如果未指定,则默认为Classic_AzureFrontDoor。 | Sku |
标签 | 资源标记 | 标记名称和值的字典。 请参阅模板 中的 |
类型 | 资源类型 | “Microsoft.Network/FrontDoorWebApplicationFirewallPolicies” |
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 |
enabledState | 描述策略是否处于启用或禁用状态。 如果未指定,则默认为 Enabled。 | “Disabled” “Enabled” |
javascriptChallengeExpirationInMinutes | 定义 JavaScript 质询 Cookie 有效期(以分钟为单位)。 此设置仅适用于Premium_AzureFrontDoor。 值必须是介于 5 和 1440 之间的整数,默认值为 30。 | int 约束: 最小值 = 5 最大值 = 1440 |
logScrubbing | 定义在 Web 应用程序防火墙日志中清理敏感字段的规则。 | PolicySettingsLogScrubbing |
模式 | 描述它在策略级别是否处于检测模式或预防模式。 | “检测” “预防” |
redirectUrl | 如果操作类型为重定向,此字段表示客户端的重定向 URL。 | 字符串 |
requestBodyCheck | 描述策略托管规则是否会检查请求正文内容。 | “Disabled” “Enabled” |
PolicySettingsLogScrubbing
名字 | 描述 | 价值 |
---|---|---|
scrubbingRules | 应用于 Web 应用程序防火墙日志的日志清理规则列表。 | WebApplicationFirewallScrubbingRules[] |
state | 日志清理配置的状态。默认值为“已启用”。 | “Disabled” “Enabled” |
ResourceTags
名字 | 描述 | 价值 |
---|
Sku
名字 | 描述 | 价值 |
---|---|---|
名字 | 定价层的名称。 | “Classic_AzureFrontDoor” “Premium_AzureFrontDoor” “Standard_AzureFrontDoor” |
WebApplicationFirewallPolicyProperties
名字 | 描述 | 价值 |
---|---|---|
customRules | 描述策略中的自定义规则。 | CustomRuleList |
managedRules | 描述策略中的托管规则。 | ManagedRuleSetList |
policySettings | 描述策略的设置。 | PolicySettings |
WebApplicationFirewallScrubbingRules
名字 | 描述 | 价值 |
---|---|---|
matchVariable | 要从日志中清理的变量。 | “QueryStringArgNames” “RequestBodyJsonArgNames” 'RequestBodyPostArgNames' “RequestCookieNames” “RequestHeaderNames” 'RequestIPAddress' “RequestUri”(必需) |
选择器 | matchVariable 是集合时,运算符用于指定此规则应用于的集合中的哪些元素。 | 字符串 |
selectorMatchOperator | 如果 matchVariable 是集合,请对选择器进行操作,以指定此规则应用于的集合中的哪些元素。 | “Equals” “EqualsAny”(必需) |
state | 定义日志清理规则的状态。 默认值处于启用状态。 | “Disabled” “Enabled” |
快速入门模板
以下快速入门模板部署此资源类型。
模板 | 描述 |
---|---|
为 Azure Front Door 配置 WAF 客户端 IP 限制 |
此模板为 Azure Front Door 终结点配置 WAF 客户端 IP 限制 |
为 Azure Front Door 配置 WAF 托管 defaultRuleSet |
此模板配置适用于 Azure Front Door 的 WAF 托管 defaultRuleSet |
为 Azure Front Door 终结点配置 WAF 速率限制规则 |
此模板为 Azure Front Door 配置 WAF 规则,以对给定前端主机的传入流量进行速率限制。 |
为 Front Door 配置 HTTP 参数的 WAF 规则 |
此模板基于 Azure Front Door 终结点的特定 http 参数配置 WAF 自定义规则。 |
在 Azure API 管理 前创建 Azure Front Door |
此示例演示如何在 Azure API 管理之前将 Azure Front Door 用作全局负载均衡器。 |
为 Azure Front Door 终结点创建 WAF 地理筛选规则 |
此模板为 Azure Front Door 创建 WAF 地理筛选规则,该规则允许/阻止来自某些国家的流量。 |
使用 blob 源和专用链接 |
此模板创建 Front Door Premium 和 Azure 存储 Blob 容器,并使用 Front Door 的专用终结点将流量发送到存储帐户。 |
使用 WAF 和Microsoft托管的规则集 |
此模板创建一个 Front Door Premium,其中包括具有Microsoft托管的默认和机器人保护规则集的 Web 应用程序防火墙。 |
使用异地筛选 |
此模板创建 Front Door 标准版/高级版,包括具有地理筛选规则的 Web 应用程序防火墙。 |
Front Door 标准版/高级版,速率限制为 |
此模板创建 Front Door 标准版/高级版,包括具有速率限制规则的 Web 应用程序防火墙。 |
使用 WAF 和自定义规则 |
此模板创建 Front Door 标准版/高级版,包括具有自定义规则的 Web 应用程序防火墙。 |
使用 blob 上传 的 blob 源 |
此模板创建一个 Front Door,其中包含源、路由和 ruleSet,以及一个包含 Blob 容器的 Azure 存储帐户。 Front Door 在上传文件时向存储帐户发送流量。 |
使用 WAF、域和日志将 FrontDoor CDN EventHub |
此模板创建新的 Azure FrontDoor cdn 配置文件。 使用自定义和托管规则、cdn 路由、源和组与 WAF 和路由关联创建 WAF,配置自定义域,创建事件中心和诊断设置,以便使用事件中心发送 CDN 访问日志。 |
受 Azure Frontdoor 保护的 |
此模板允许部署受 Azure Frontdoor 高级版保护并发布的 Azure 高级函数。 Azure Frontdoor 和 Azure Functions 之间的连接受 Azure 专用链接的保护。 |
Terraform (AzAPI 提供程序)资源定义
可以使用目标操作部署 FrontDoorWebApplicationFirewallPolicies 资源类型:
- 资源组
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Network/FrontDoorWebApplicationFirewallPolicies 资源,请将以下 Terraform 添加到模板。
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies@2024-02-01"
name = "string"
etag = "string"
location = "string"
sku = {
name = "string"
}
tags = {
{customized property} = "string"
}
body = jsonencode({
properties = {
customRules = {
rules = [
{
action = "string"
enabledState = "string"
groupBy = [
{
variableName = "string"
}
]
matchConditions = [
{
matchValue = [
"string"
]
matchVariable = "string"
negateCondition = bool
operator = "string"
selector = "string"
transforms = [
"string"
]
}
]
name = "string"
priority = int
rateLimitDurationInMinutes = int
rateLimitThreshold = int
ruleType = "string"
}
]
}
managedRules = {
managedRuleSets = [
{
exclusions = [
{
matchVariable = "string"
selector = "string"
selectorMatchOperator = "string"
}
]
ruleGroupOverrides = [
{
exclusions = [
{
matchVariable = "string"
selector = "string"
selectorMatchOperator = "string"
}
]
ruleGroupName = "string"
rules = [
{
action = "string"
enabledState = "string"
exclusions = [
{
matchVariable = "string"
selector = "string"
selectorMatchOperator = "string"
}
]
ruleId = "string"
}
]
}
]
ruleSetAction = "string"
ruleSetType = "string"
ruleSetVersion = "string"
}
]
}
policySettings = {
customBlockResponseBody = "string"
customBlockResponseStatusCode = int
enabledState = "string"
javascriptChallengeExpirationInMinutes = int
logScrubbing = {
scrubbingRules = [
{
matchVariable = "string"
selector = "string"
selectorMatchOperator = "string"
state = "string"
}
]
state = "string"
}
mode = "string"
redirectUrl = "string"
requestBodyCheck = "string"
}
}
})
}
属性值
CustomRule
名字 | 描述 | 价值 |
---|---|---|
行动 | 描述规则匹配时要应用的操作。 | “允许” “AnomalyScoring” “Block” “JSChallenge” “Log” “重定向”(必需) |
enabledState | 描述自定义规则是否处于启用或禁用状态。 如果未指定,则默认为 Enabled。 | “Disabled” “Enabled” |
groupBy | 描述用于对速率限制请求进行分组的变量列表 | GroupByVariable[] |
matchConditions | 匹配条件列表。 | MatchCondition[] (必需) |
名字 | 描述规则的名称。 | 字符串 约束: 最大长度 = |
优先权 | 描述规则的优先级。 在具有较高值的规则之前,将评估具有较低值的规则。 | int (必需) |
rateLimitDurationInMinutes | 重置速率限制计数的时间范围。 默认值为 1 分钟。 | int 约束: 最小值 = 0 最大值 = 5 |
rateLimitThreshold | 时间范围内每个客户端允许的请求数。 | int 约束: 最小值 = 0 |
ruleType | 描述规则的类型。 | “MatchRule” “RateLimitRule”(必需) |
CustomRuleList
名字 | 描述 | 价值 |
---|---|---|
规则 | 规则列表 | CustomRule[] |
GroupByVariable
名字 | 描述 | 价值 |
---|---|---|
variableName | 介绍组依据的受支持变量 | “GeoLocation” “None” “SocketAddr”(必需) |
ManagedRuleExclusion
名字 | 描述 | 价值 |
---|---|---|
matchVariable | 要排除的变量类型。 | “QueryStringArgNames” “RequestBodyJsonArgNames” 'RequestBodyPostArgNames' “RequestCookieNames” “RequestHeaderNames”(必需) |
选择器 | 此排除项应用于集合中的元素的选择器值。 | string (必需) |
selectorMatchOperator | 在指定此排除项应用于的集合中的元素时,要应用于选择器的比较运算符。 | “Contains” “EndsWith” “Equals” “EqualsAny” “StartsWith”(必需) |
ManagedRuleGroupOverride
名字 | 描述 | 价值 |
---|---|---|
排除 | 描述应用于组中所有规则的排除项。 | ManagedRuleExclusion[] |
ruleGroupName | 描述要重写的托管规则组。 | string (必需) |
规则 | 将禁用的规则列表。 如果未指定任何规则,将禁用组中的所有规则。 | ManagedRuleOverride[] |
ManagedRuleOverride
名字 | 描述 | 价值 |
---|---|---|
行动 | 描述规则匹配时要应用的替代操作。 | “允许” “AnomalyScoring” “Block” “JSChallenge” “Log” “Redirect” |
enabledState | 描述托管规则是否处于启用或禁用状态。 如果未指定,则默认为 Disabled。 | “Disabled” “Enabled” |
排除 | 描述应用于此特定规则的排除项。 | ManagedRuleExclusion[] |
ruleId | 托管规则的标识符。 | string (必需) |
ManagedRuleSet
名字 | 描述 | 价值 |
---|---|---|
排除 | 描述应用于集中所有规则的排除项。 | ManagedRuleExclusion[] |
ruleGroupOverrides | 定义要应用于规则集的规则组替代。 | ManagedRuleGroupOverride[] |
ruleSetAction | 定义规则集操作。 | “Block” “Log” “Redirect” |
ruleSetType | 定义要使用的规则集类型。 | string (必需) |
ruleSetVersion | 定义要使用的规则集的版本。 | string (必需) |
ManagedRuleSetList
名字 | 描述 | 价值 |
---|---|---|
managedRuleSets | 规则集列表。 | ManagedRuleSet[] |
MatchCondition
名字 | 描述 | 价值 |
---|---|---|
matchValue | 可能的匹配值列表。 | string[] (必需) |
matchVariable | 要与之进行比较的请求变量。 | “Cookies” “PostArgs” “QueryString” “RemoteAddr” “RequestBody” “RequestHeader” “RequestMethod” “RequestUri” “SocketAddr”(必需) |
negateCondition | 描述是否应否定此条件的结果。 | bool |
算子 | 要用于与变量值匹配的比较类型。 | “Any” “BeginsWith” “Contains” “EndsWith” “Equal” “GeoMatch” “GreaterThan” “GreaterThanOrEqual” “IPMatch” “LessThan” “LessThanOrEqual” “正则表达式”(必需) |
选择器 | 与 QueryString、PostArgs、RequestHeader 或 Cookies 变量中的特定键匹配。 默认值为 null。 | 字符串 |
变换 | 转换列表。 | 包含任一项的字符串数组: “小写” “RemoveNulls” “Trim” “大写” “UrlDecode” “UrlEncode” |
Microsoft.Network/FrontDoorWebApplicationFirewallPolicies
名字 | 描述 | 价值 |
---|---|---|
etag | 获取在更新资源时更改的唯一只读字符串。 | 字符串 |
位置 | 资源位置。 | 字符串 |
名字 | 资源名称 | 字符串 约束: 最大长度 = (必需) |
性能 | Web 应用程序防火墙策略的属性。 | WebApplicationFirewallPolicyProperties |
sku | Web 应用程序防火墙策略的定价层。 如果未指定,则默认为Classic_AzureFrontDoor。 | Sku |
标签 | 资源标记 | 标记名称和值的字典。 |
类型 | 资源类型 | “Microsoft.Network/FrontDoorWebApplicationFirewallPolicies@2024-02-01” |
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 |
enabledState | 描述策略是否处于启用或禁用状态。 如果未指定,则默认为 Enabled。 | “Disabled” “Enabled” |
javascriptChallengeExpirationInMinutes | 定义 JavaScript 质询 Cookie 有效期(以分钟为单位)。 此设置仅适用于Premium_AzureFrontDoor。 值必须是介于 5 和 1440 之间的整数,默认值为 30。 | int 约束: 最小值 = 5 最大值 = 1440 |
logScrubbing | 定义在 Web 应用程序防火墙日志中清理敏感字段的规则。 | PolicySettingsLogScrubbing |
模式 | 描述它在策略级别是否处于检测模式或预防模式。 | “检测” “预防” |
redirectUrl | 如果操作类型为重定向,此字段表示客户端的重定向 URL。 | 字符串 |
requestBodyCheck | 描述策略托管规则是否会检查请求正文内容。 | “Disabled” “Enabled” |
PolicySettingsLogScrubbing
名字 | 描述 | 价值 |
---|---|---|
scrubbingRules | 应用于 Web 应用程序防火墙日志的日志清理规则列表。 | WebApplicationFirewallScrubbingRules[] |
state | 日志清理配置的状态。默认值为“已启用”。 | “Disabled” “Enabled” |
ResourceTags
名字 | 描述 | 价值 |
---|
Sku
名字 | 描述 | 价值 |
---|---|---|
名字 | 定价层的名称。 | “Classic_AzureFrontDoor” “Premium_AzureFrontDoor” “Standard_AzureFrontDoor” |
WebApplicationFirewallPolicyProperties
名字 | 描述 | 价值 |
---|---|---|
customRules | 描述策略中的自定义规则。 | CustomRuleList |
managedRules | 描述策略中的托管规则。 | ManagedRuleSetList |
policySettings | 描述策略的设置。 | PolicySettings |
WebApplicationFirewallScrubbingRules
名字 | 描述 | 价值 |
---|---|---|
matchVariable | 要从日志中清理的变量。 | “QueryStringArgNames” “RequestBodyJsonArgNames” 'RequestBodyPostArgNames' “RequestCookieNames” “RequestHeaderNames” 'RequestIPAddress' “RequestUri”(必需) |
选择器 | matchVariable 是集合时,运算符用于指定此规则应用于的集合中的哪些元素。 | 字符串 |
selectorMatchOperator | 如果 matchVariable 是集合,请对选择器进行操作,以指定此规则应用于的集合中的哪些元素。 | “Equals” “EqualsAny”(必需) |
state | 定义日志清理规则的状态。 默认值处于启用状态。 | “Disabled” “Enabled” |