你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies

Bicep 资源定义

ApplicationGatewayWebApplicationFirewallPolicies 资源类型可以使用以下目标操作进行部署:

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies 资源,请将以下 Bicep 添加到模板。

resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-04-01' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  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'
    }
  }
}

属性值

ApplicationGatewayWebApplicationFirewallPolicies

名称 说明
name 资源名称 字符串 (必需)
location 资源位置。 字符串
标记 资源标记。 标记名称和值的字典。 请参阅 模板中的标记
properties Web 应用程序防火墙策略的属性。 WebApplicationFirewallPolicyPropertiesFormat

WebApplicationFirewallPolicyPropertiesFormat

名称 说明
customRules 策略中的自定义规则。 WebApplicationFirewallCustomRule[]
managedRules 描述 managedRules 结构。 需要 managedRulesDefinition ()
policySettings 策略的 PolicySettings。 PolicySettings

WebApplicationFirewallCustomRule

名称 说明
action 操作的类型。 “允许”
'Block'
需要“Log” ()
groupByUserSession 用户会话标识符分组依据子句的列表。 GroupByUserSession[]
matchConditions 匹配条件列表。 MatchCondition[] (必需)
name 策略中唯一的资源的名称。 此名称可用于访问资源。 字符串
priority 规则的优先级。 值较低的规则将在具有较高值的规则之前进行评估。 int (必需)
rateLimitDuration 应用速率限制策略的持续时间。 仅当 ruleType 为 RateLimitRule 时适用。 “FiveMins”
'OneMin'
rateLimitThreshold 在 ruleType 为 RateLimitRule 的情况下要应用的速率限制阈值。 必须大于或等于 1 int
ruleType 规则类型。 “无效”
“MatchRule”
“RateLimitRule” (必需)
state 描述自定义规则处于启用或禁用状态。 如果未指定,则默认为 Enabled。 'Disabled'
'Enabled'

GroupByUserSession

名称 说明
groupByVariables 分组依据子句变量的列表。 GroupByVariable[] (必需)

GroupByVariable

名称 说明
variableName User Session 子句变量。 “ClientAddr”
“GeoLocation”
“None” (必需)

MatchCondition

名称 说明
matchValues 匹配值。 string[] (必需的)
matchVariables 匹配变量的列表。 MatchVariable[] (必需)
negationConditon 这是否为否定条件。 bool
运算符后的表达式 要匹配的运算符。 “Any”
“BeginsWith”
“Contains”
“EndsWith”
“Equal”
“GeoMatch”
“GreaterThan”
“GreaterThanOrEqual”
“IPMatch”
“LessThan”
“LessThanOrEqual”
“Regex” (必需)
转换 转换列表。 包含任意项的字符串数组:
“HtmlEntityDecode”
“小写”
“RemoveNulls”
“Trim”
“大写”
“UrlDecode”
“UrlEncode”

MatchVariable

名称 说明
选择器 匹配变量的选择器。 字符串
variableName 匹配变量。 “PostArgs”
“QueryString”
“RemoteAddr”
“RequestBody”
“RequestCookies”
“RequestHeaders”
“RequestMethod”
“RequestUri” (必需)

ManagedRulesDefinition

名称 说明
排除 应用于策略的排除项。 OwaspCrsExclusionEntry[]
managedRuleSets 与策略关联的托管规则集。 ManagedRuleSet[] (必需的)

OwaspCrsExclusionEntry

名称 说明
exclusionManagedRuleSets 与排除项关联的托管规则集。 ExclusionManagedRuleSet[]
matchVariable 要排除的变量。 “RequestArgKeys”
“RequestArgNames”
“RequestArgValues”
“RequestCookieKeys”
“RequestCookieNames”
“RequestCookieValues”
“RequestHeaderKeys”
“RequestHeaderNames”
“RequestHeaderValues” (必需)
选择器 当 matchVariable 是集合时,运算符用于指定此排除项适用于集合中的哪些元素。 字符串 (必需)
selectorMatchOperator 当 matchVariable 是集合时,对选择器执行操作以指定此排除项适用于集合中的哪些元素。 “Contains”
'EndsWith'
'Equals'
'EqualsAny'
“StartsWith” (必需)

ExclusionManagedRuleSet

名称 说明
ruleGroups 定义要应用于规则集的规则组。 ExclusionManagedRuleGroup[]
ruleSetType 定义要使用的规则集类型。 字符串 (必需)
ruleSetVersion 定义要使用的规则集的版本。 字符串 (必需)

ExclusionManagedRuleGroup

名称 说明
ruleGroupName 要排除的托管规则组。 字符串 (必需)
规则 将排除的规则列表。 如果未指定任何规则,则将排除组中的所有规则。 ExclusionManagedRule[]

ExclusionManagedRule

名称 说明
ruleId 托管规则的标识符。 字符串 (必需)

ManagedRuleSet

名称 说明
ruleGroupOverrides 定义要应用于规则集的规则组替代。 ManagedRuleGroupOverride[]
ruleSetType 定义要使用的规则集类型。 字符串 (必需)
ruleSetVersion 定义要使用的规则集的版本。 字符串 (必需)

ManagedRuleGroupOverride

名称 说明
ruleGroupName 要替代的托管规则组。 字符串 (必需)
规则 将禁用的规则列表。 如果未指定任何规则,则将禁用组中的所有规则。 ManagedRuleOverride[]

ManagedRuleOverride

名称 说明
action 描述规则匹配时要应用的替代操作。 “允许”
“AnomalyScoring”
'Block'
“Log”
ruleId 托管规则的标识符。 字符串 (必需)
state 托管规则的状态。 如果未指定,则默认为 Disabled。 'Disabled'
'Enabled'

PolicySettings

名称 说明
customBlockResponseBody 如果操作类型为阻止,则客户可以替代响应正文。 正文必须在 base64 编码中指定。 字符串
customBlockResponseStatusCode 如果操作类型为阻止,客户可以替代响应状态代码。 int
fileUploadEnforcement 是否允许 WAF 强制实施文件上传限制。 bool
fileUploadLimitInMb WAF 的最大文件上传大小(以 Mb 为单位)。 int
logScrubbing 清理敏感日志字段 PolicySettingsLogScrubbing
maxRequestBodySizeInKb WAF 的最大请求正文大小(以 Kb 为单位)。 int
mode 策略的模式。 “检测”
“预防”
requestBodyCheck 是否允许 WAF 检查请求正文。 bool
requestBodyEnforcement 是否允许 WAF 强制实施请求正文限制。 bool
requestBodyInspectLimitInKB WAF 请求正文检查的最大检查限制(以 KB 为单位)。 int
state 策略的状态。 “Disabled”
“已启用”

PolicySettingsLogScrubbing

名称 说明
scrubbingRules 应用于日志以清理的规则。 WebApplicationFirewallScrubbingRules[]
state 日志清理配置的状态。默认值为 Enabled。 “Disabled”
“已启用”

WebApplicationFirewallScrubbingRules

名称 说明
matchVariable 要从日志中清理的变量。 “RequestArgNames”
“RequestCookieNames”
“RequestHeaderNames”
“RequestIPAddress”
“RequestJSONArgNames”
“RequestPostArgNames” (必需)
选择器 当 matchVariable 是集合时,运算符用于指定此规则应用于集合中的哪些元素。 字符串
selectorMatchOperator 如果 matchVariable 是集合,请在选择器上操作以指定此规则应用于集合中的哪些元素。 “Equals”
“EqualsAny” (必需)
state 定义日志清理规则的状态。 默认值为 Enabled。 “Disabled”
“已启用”

快速入门模板

以下快速入门模板部署此资源类型。

模板 说明
在 Azure 应用程序网关 上创建 Azure WAF v2

部署到 Azure
此模板在 Azure 应用程序网关 上创建 Azure Web 应用程序防火墙 v2,后端池中具有两个Windows Server 2016服务器
具有 NAT 网关和应用程序网关的 AKS 群集

部署到 Azure
此示例演示如何使用 NAT 网关部署 AKS 群集进行出站连接,为入站连接部署应用程序网关。
具有应用程序网关源的 Front Door 标准版/高级版

部署到 Azure
此模板创建 Front Door 标准版/高级版和应用程序网关实例,并使用 NSG 和 WAF 策略验证流量是否已通过 Front Door 源。
带有容器实例和应用程序网关的 Front Door

部署到 Azure
此模板使用容器组和应用程序网关创建 Front Door 标准版/高级版。
具有 应用程序网关 入口控制器的 AKS 群集

部署到 Azure
此示例演示如何使用 应用程序网关、应用程序网关 入口控制器、Azure 容器注册表、Log Analytics 和 密钥保管库 部署 AKS 群集
使用 WAF 和防火墙策略应用程序网关

部署到 Azure
此模板创建一个应用程序网关,其中配置了 WAF 和防火墙策略

ARM 模板资源定义

ApplicationGatewayWebApplicationFirewallPolicies 资源类型可以使用以下目标操作进行部署:

有关每个 API 版本中更改的属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies 资源,请将以下 JSON 添加到模板。

{
  "type": "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies",
  "apiVersion": "2023-04-01",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "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"
    }
  }
}

属性值

ApplicationGatewayWebApplicationFirewallPolicies

名称 说明 Value
type 资源类型 “Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies”
apiVersion 资源 API 版本 '2023-04-01'
name 资源名称 字符串 (必需)
location 资源位置。 字符串
标记 资源标记。 标记名称和值的字典。 请参阅 模板中的标记
properties Web 应用程序防火墙策略的属性。 WebApplicationFirewallPolicyPropertiesFormat

WebApplicationFirewallPolicyPropertiesFormat

名称 说明
customRules 策略中的自定义规则。 WebApplicationFirewallCustomRule[]
managedRules 介绍 managedRules 结构。 ManagedRulesDefinition (必需)
policySettings 策略的 PolicySettings。 PolicySettings

WebApplicationFirewallCustomRule

名称 说明
action 操作的类型。 “允许”
“阻止”
“Log” (必需)
groupByUserSession 用户会话标识符组 by 子句的列表。 GroupByUserSession[]
matchConditions 匹配条件列表。 MatchCondition[] (必需的)
name 策略中唯一的资源的名称。 此名称可用于访问资源。 字符串
priority 规则的优先级。 值较低的规则将在具有较高值的规则之前进行评估。 int (必需)
rateLimitDuration 应用速率限制策略的持续时间。 仅当 ruleType 为 RateLimitRule 时适用。 “FiveMins”
“OneMin”
rateLimitThreshold 在 ruleType 为 RateLimitRule 的情况下要应用的速率限制阈值。 必须大于或等于 1 int
ruleType 规则类型。 “无效”
“MatchRule”
“RateLimitRule” (必需)
state 描述自定义规则处于启用或禁用状态。 如果未指定,则默认为 Enabled。 “Disabled”
“已启用”

GroupByUserSession

名称 说明
groupByVariables 分组依据子句变量的列表。 GroupByVariable[] (必需)

GroupByVariable

名称 说明
variableName User Session 子句变量。 “ClientAddr”
“GeoLocation”
“None” (必需)

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” (必需)

ManagedRulesDefinition

名称 说明
排除 应用于策略的排除项。 OwaspCrsExclusionEntry[]
managedRuleSets 与策略关联的托管规则集。 ManagedRuleSet[] (必需)

OwaspCrsExclusionEntry

名称 说明
exclusionManagedRuleSets 与排除项关联的托管规则集。 ExclusionManagedRuleSet[]
matchVariable 要排除的变量。 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
“RequestCookieNames”
'RequestCookieValues'
“RequestHeaderKeys”
'RequestHeaderNames'
“RequestHeaderValues” (必需)
选择器 当 matchVariable 是集合时,运算符用于指定此排除项应用于集合中的哪些元素。 字符串 (必需)
selectorMatchOperator 当 matchVariable 是集合时,对选择器执行操作以指定此排除项应用于集合中的哪些元素。 “Contains”
'EndsWith'
'Equals'
'EqualsAny'
“StartsWith” (必需)

ExclusionManagedRuleSet

名称 说明
ruleGroups 定义要应用于规则集的规则组。 ExclusionManagedRuleGroup[]
ruleSetType 定义要使用的规则集类型。 字符串 (必需)
ruleSetVersion 定义要使用的规则集的版本。 字符串 (必需)

ExclusionManagedRuleGroup

名称 说明
ruleGroupName 要排除的托管规则组。 字符串 (必需)
规则 将排除的规则列表。 如果未指定任何规则,则将排除组中的所有规则。 ExclusionManagedRule[]

ExclusionManagedRule

名称 说明
ruleId 托管规则的标识符。 字符串 (必需)

ManagedRuleSet

名称 说明
ruleGroupOverrides 定义要应用于规则集的规则组替代。 ManagedRuleGroupOverride[]
ruleSetType 定义要使用的规则集类型。 字符串 (必需)
ruleSetVersion 定义要使用的规则集的版本。 字符串 (必需)

ManagedRuleGroupOverride

名称 说明
ruleGroupName 要替代的托管规则组。 字符串 (必需)
规则 将禁用的规则列表。 如果未指定任何规则,则将禁用组中的所有规则。 ManagedRuleOverride[]

ManagedRuleOverride

名称 说明
action 描述在规则匹配时要应用的替代操作。 “允许”
“AnomalyScoring”
“阻止”
“Log”
ruleId 托管规则的标识符。 字符串 (必需)
state 托管规则的状态。 如果未指定,则默认为 Disabled。 “Disabled”
“已启用”

PolicySettings

名称 说明
customBlockResponseBody 如果操作类型为阻止,客户可以替代响应正文。 必须在 base64 编码中指定正文。 字符串
customBlockResponseStatusCode 如果操作类型为阻止,客户可以替代响应状态代码。 int
fileUploadEnforcement 是否允许 WAF 强制实施文件上传限制。 bool
fileUploadLimitInMb WAF 的最大文件上传大小(以 Mb 为单位)。 int
logScrubbing 清理敏感日志字段 PolicySettingsLogScrubbing
maxRequestBodySizeInKb WAF 的最大请求正文大小(以 Kb 为单位)。 int
mode 策略的模式。 “检测”
“预防”
requestBodyCheck 是否允许 WAF 检查请求正文。 bool
requestBodyEnforcement 是否允许 WAF 强制实施请求正文限制。 bool
requestBodyInspectLimitInKB WAF 请求正文检查的最大检查限制(以 KB 为单位)。 int
state 策略的状态。 “Disabled”
“已启用”

PolicySettingsLogScrubbing

名称 说明
scrubbingRules 应用于日志以清理的规则。 WebApplicationFirewallScrubbingRules[]
state 日志清理配置的状态。默认值为 Enabled。 “Disabled”
“已启用”

WebApplicationFirewallScrubbingRules

名称 说明
matchVariable 要从日志中清理的变量。 “RequestArgNames”
“RequestCookieNames”
“RequestHeaderNames”
“RequestIPAddress”
“RequestJSONArgNames”
“RequestPostArgNames” (必需)
选择器 当 matchVariable 是集合时,运算符用于指定此规则应用于集合中的哪些元素。 字符串
selectorMatchOperator 如果 matchVariable 是集合,请在选择器上操作以指定此规则应用于集合中的哪些元素。 “Equals”
“EqualsAny” (必需)
state 定义日志清理规则的状态。 默认值为 Enabled。 “Disabled”
“已启用”

快速入门模板

以下快速入门模板部署此资源类型。

模板 说明
在 Azure 应用程序网关 上创建 Azure WAF v2

部署到 Azure
此模板在 Azure 应用程序网关 上创建 Azure Web 应用程序防火墙 v2,后端池中具有两个Windows Server 2016服务器
具有 NAT 网关和应用程序网关的 AKS 群集

部署到 Azure
此示例演示如何使用 NAT 网关部署 AKS 群集进行出站连接,为入站连接部署应用程序网关。
具有应用程序网关源的 Front Door 标准版/高级版

部署到 Azure
此模板创建 Front Door 标准版/高级版和应用程序网关实例,并使用 NSG 和 WAF 策略验证流量是否已通过 Front Door 源。
带有容器实例和应用程序网关的 Front Door

部署到 Azure
此模板使用容器组和应用程序网关创建 Front Door 标准版/高级版。
具有 应用程序网关 入口控制器的 AKS 群集

部署到 Azure
此示例演示如何使用 应用程序网关、应用程序网关 入口控制器、Azure 容器注册表、Log Analytics 和 密钥保管库 部署 AKS 群集
使用 WAF 和防火墙策略应用程序网关

部署到 Azure
此模板创建一个应用程序网关,其中配置了 WAF 和防火墙策略

Terraform (AzAPI 提供程序) 资源定义

ApplicationGatewayWebApplicationFirewallPolicies 资源类型可以使用以下目标操作进行部署:

  • 资源组

有关每个 API 版本中更改的属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies 资源,请将以下 Terraform 添加到模板。

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-04-01"
  name = "string"
  location = "string"
  parent_id = "string"
  tags = {
    tagName1 = "tagValue1"
    tagName2 = "tagValue2"
  }
  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"
      }
    }
  })
}

属性值

ApplicationGatewayWebApplicationFirewallPolicies

名称 说明 Value
type 资源类型 “Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-04-01”
name 资源名称 字符串 (必需)
location 资源位置。 字符串
parent_id 若要部署到资源组,请使用该资源组的 ID。 字符串 (必需)
标记 资源标记。 标记名称和值的字典。
properties Web 应用程序防火墙策略的属性。 WebApplicationFirewallPolicyPropertiesFormat

WebApplicationFirewallPolicyPropertiesFormat

名称 说明
customRules 策略中的自定义规则。 WebApplicationFirewallCustomRule[]
managedRules 介绍 managedRules 结构。 ManagedRulesDefinition (必需)
policySettings 策略的 PolicySettings。 PolicySettings

WebApplicationFirewallCustomRule

名称 说明
action 操作的类型。 “允许”
“阻止”
“Log” (必需)
groupByUserSession 用户会话标识符组 by 子句的列表。 GroupByUserSession[]
matchConditions 匹配条件列表。 MatchCondition[] (必需的)
name 策略中唯一的资源的名称。 此名称可用于访问资源。 字符串
priority 规则的优先级。 值较低的规则将在具有较高值的规则之前进行评估。 int (必需)
rateLimitDuration 应用速率限制策略的持续时间。 仅当 ruleType 为 RateLimitRule 时适用。 “FiveMins”
“OneMin”
rateLimitThreshold 在 ruleType 为 RateLimitRule 的情况下要应用的速率限制阈值。 必须大于或等于 1 int
ruleType 规则类型。 “无效”
“MatchRule”
需要“RateLimitRule” ()
state 描述自定义规则处于启用或禁用状态。 如果未指定,则默认为 Enabled。 “Disabled”
“Enabled”

GroupByUserSession

名称 说明
groupByVariables group by 子句变量的列表。 GroupByVariable[] (必需)

GroupByVariable

名称 说明
variableName 用户会话子句变量。 “ClientAddr”
“GeoLocation”
“None” (必需)

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” ()

ManagedRulesDefinition

名称 说明
排除 应用于策略的排除项。 OwaspCrsExclusionEntry[]
managedRuleSets 与策略关联的托管规则集。 ManagedRuleSet[] (必需的)

OwaspCrsExclusionEntry

名称 说明
exclusionManagedRuleSets 与排除项关联的托管规则集。 ExclusionManagedRuleSet[]
matchVariable 要排除的变量。 “RequestArgKeys”
“RequestArgNames”
“RequestArgValues”
“RequestCookieKeys”
“RequestCookieNames”
“RequestCookieValues”
“RequestHeaderKeys”
“RequestHeaderNames”
“RequestHeaderValues” (必需的)
选择器 当 matchVariable 是集合时,运算符用于指定此排除项适用于集合中的哪些元素。 字符串 (必需)
selectorMatchOperator 当 matchVariable 是集合时,对选择器执行操作以指定此排除项适用于集合中的哪些元素。 “Contains”
“EndsWith”
“Equals”
“EqualsAny”
“StartsWith” (必需)

ExclusionManagedRuleSet

名称 说明
ruleGroups 定义要应用于规则集的规则组。 ExclusionManagedRuleGroup[]
ruleSetType 定义要使用的规则集类型。 字符串 (必需)
ruleSetVersion 定义要使用的规则集的版本。 字符串 (必需)

ExclusionManagedRuleGroup

名称 说明
ruleGroupName 用于排除的托管规则组。 字符串 (必需)
规则 将排除的规则列表。 如果未指定任何规则,则将排除组中的所有规则。 ExclusionManagedRule[]

ExclusionManagedRule

名称 说明
ruleId 托管规则的标识符。 字符串 (必需)

ManagedRuleSet

名称 说明
ruleGroupOverrides 定义要应用于规则集的规则组替代。 ManagedRuleGroupOverride[]
ruleSetType 定义要使用的规则集类型。 字符串 (必需)
ruleSetVersion 定义要使用的规则集的版本。 字符串 (必需)

ManagedRuleGroupOverride

名称 说明
ruleGroupName 要替代的托管规则组。 字符串 (必需)
规则 将禁用的规则列表。 如果未指定任何规则,则将禁用组中的所有规则。 ManagedRuleOverride[]

ManagedRuleOverride

名称 说明
action 描述在规则匹配时要应用的替代操作。 “允许”
“AnomalyScoring”
“阻止”
“Log”
ruleId 托管规则的标识符。 字符串 (必需)
state 托管规则的状态。 如果未指定,则默认为 Disabled。 “Disabled”
“已启用”

PolicySettings

名称 说明
customBlockResponseBody 如果操作类型为阻止,客户可以替代响应正文。 必须在 base64 编码中指定正文。 字符串
customBlockResponseStatusCode 如果操作类型为阻止,客户可以替代响应状态代码。 int
fileUploadEnforcement 是否允许 WAF 强制实施文件上传限制。 bool
fileUploadLimitInMb WAF 的最大文件上传大小(以 Mb 为单位)。 int
logScrubbing 清理敏感日志字段 PolicySettingsLogScrubbing
maxRequestBodySizeInKb WAF 的最大请求正文大小(以 Kb 为单位)。 int
mode 策略的模式。 “检测”
“预防”
requestBodyCheck 是否允许 WAF 检查请求正文。 bool
requestBodyEnforcement 是否允许 WAF 强制实施请求正文限制。 bool
requestBodyInspectLimitInKB WAF 请求正文检查的最大检查限制(以 KB 为单位)。 int
state 策略的状态。 “Disabled”
“已启用”

PolicySettingsLogScrubbing

名称 说明
scrubbingRules 应用于日志以清理的规则。 WebApplicationFirewallScrubbingRules[]
state 日志清理配置的状态。默认值为 Enabled。 “Disabled”
“已启用”

WebApplicationFirewallScrubbingRules

名称 说明
matchVariable 要从日志中清理的变量。 “RequestArgNames”
“RequestCookieNames”
“RequestHeaderNames”
“RequestIPAddress”
“RequestJSONArgNames”
“RequestPostArgNames” (必需)
选择器 当 matchVariable 是集合时,运算符用于指定此规则应用于集合中的哪些元素。 字符串
selectorMatchOperator 如果 matchVariable 是集合,请在选择器上操作以指定此规则应用于集合中的哪些元素。 “Equals”
“EqualsAny” (必需)
state 定义日志清理规则的状态。 默认值为 Enabled。 “Disabled”
“已启用”