Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies 2025-01-01

Определение ресурсов Bicep

Тип ресурса ApplicationGatewayWebApplicationFirewallPolicies можно развернуть с помощью операций, предназначенных для следующих операций:

Список измененных свойств в каждой версии API см. в журнала изменений.

Формат ресурса

Чтобы создать ресурс Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, добавьте следующий Bicep в шаблон.

resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2025-01-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: {
      exceptions: [
        {
          exceptionManagedRuleSets: [
            {
              ruleGroups: [
                {
                  ruleGroupName: 'string'
                  rules: [
                    {
                      ruleId: 'string'
                    }
                  ]
                }
              ]
              ruleSetType: 'string'
              ruleSetVersion: 'string'
            }
          ]
          matchVariable: 'string'
          selector: 'string'
          selectorMatchOperator: 'string'
          valueMatchOperator: 'string'
          values: [
            'string'
          ]
        }
      ]
      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'
                  sensitivity: 'string'
                  state: 'string'
                }
              ]
            }
          ]
          ruleSetType: 'string'
          ruleSetVersion: 'string'
        }
      ]
    }
    policySettings: {
      customBlockResponseBody: 'string'
      customBlockResponseStatusCode: int
      fileUploadEnforcement: bool
      fileUploadLimitInMb: int
      jsChallengeCookieExpirationInMins: 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'
  }
}

Значения свойств

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

Имя Description Ценность
location Расположение ресурса. струна
имя имя ресурса. string

Constraints:
Максимальная длина = 128 (обязательно)
properties Свойства политики брандмауэра веб-приложения. WebApplicationFirewallPolicyPropertiesFormat
tags Теги ресурсов Словарь имен и значений тегов. См. теги в шаблонах

ИсключениеВход

Имя Description Ценность
exceptionManagedRuleSets Управляемые наборы правил, связанные с исключением. ExclusionManagedRuleSet[]
matchVariable Переменная, с которой мы вычисляем условие исключения RemoteAddr
"RequestHeader"
RequestURI (обязательный)
selector Если сопоставлениеVariable указывает на пару "ключ-значение" (например, RequestHeader), это определяет ключ. струна
оператор совпадения селектора Если сопоставлениеVariable указывает на пару "ключ-значение" (например, RequestHeader), это работает с селектором. "Содержит"
"EndsWith"
"Равно"
"StartsWith"
valueMatchOperator Работает с допустимыми значениями для matchVariable "Содержит"
"EndsWith"
"Равно"
"IPMatch"
"StartsWith" (обязательно)
values Допустимые значения для сопоставленияVariable строка[]

ExclusionManagedRule (Правило ExclusionManagedRule)

Имя Description Ценность
Идентификатор правила Идентификатор управляемого правила. строка (обязательно)

ExclusionManagedRuleGroup (Группа исключений)

Имя Description Ценность
ruleGroupName Управляемая группа правил для исключения. строка (обязательно)
правила Список правил, которые будут исключены. Если ни один из них не указан, все правила в группе будут исключены. Правило ExclusionManagedRule[]

ExclusionManagedRuleSet (Набор исключений)

Имя Description Ценность
ruleGroups Определяет группы правил, применяемые к набору правил. ExclusionManagedRuleGroup[]
тип набора правил Определяет используемый тип набора правил. строка (обязательно)
версия набора правил Определяет версию используемого набора правил. строка (обязательно)

GroupByUserSession

Имя Description Ценность
groupByVariables Список групп по переменным предложения. GroupByVariable[] (обязательно)

GroupByVariable

Имя Description Ценность
variableName Переменная предложения сеанса пользователя. ClientAddr
'ClientAddrXFFHeader'
GeoLocation
'GeoLocationXFFHeader'
"Нет" (обязательно)

ManagedRuleGroupOverride (УправляемоеПравилоГрупповоеПереопределение)

Имя Description Ценность
ruleGroupName Управляемая группа правил для переопределения. строка (обязательно)
правила Список правил, которые будут отключены. Если ни один из них не указан, все правила в группе будут отключены. ManagedRuleOverride[]

ManagedRuleOverride (УправляемыйПереопределение правил)

Имя Description Ценность
действие Описывает действие переопределения, которое будет применяться при совпадении правил. "Разрешить"
«Оценка аномалий»
"Блокировать"
"JSChallenge"
'Log'
Идентификатор правила Идентификатор управляемого правила. строка (обязательно)
чувствительность Описывает чувствительность переопределения, применяемую при совпадении правил. «Кайф»
«Низкий»
«Средний»
'None'
государство Состояние управляемого правила. Значение по умолчанию отключено, если оно не указано. 'Disabled'
"Включено"

ManagedRulesDefinition (УправляемоеОпределение правил)

Имя Description Ценность
Исключения Исключения, применяемые к политике. ИсключениеЗапись[]
Исключения Исключения, применяемые к политике. OwaspCrsExclusionEntry[]
managedRuleSets Управляемые наборы правил, связанные с политикой. ManagedRuleSet[] (обязательно)

ManagedRuleSet (УправляемыйНабор Правил)

Имя Description Ценность
ruleGroupOverrides Определяет переопределение группы правил для применения к набору правил. ManagedRuleGroupOverride[]
тип набора правил Определяет используемый тип набора правил. строка (обязательно)
версия набора правил Определяет версию используемого набора правил. строка (обязательно)

Условие совпадения

Имя Description Ценность
matchValues Значение соответствия. string[] (обязательно)
matchVariables Список переменных соответствия. MatchVariable[] (обязательно)
отрицаниеConditon Является ли это неуготным условием или нет. bool
operator Оператор, который нужно сопоставить. "Любой"
BeginsWith
"Содержит"
"EndsWith"
"Равно"
"GeoMatch"
«Больше, чем»
«Больше, чем Или Равно»
"IPMatch"
"LessThan"
"LessThanOrEqual"
Regex (обязательный)
Преобразует Список преобразований. Массив строк, содержащий любой из:
"HtmlEntityDecode"
Нижний регистр
RemoveNulls
"Обрезка"
"Верхний регистр"
UrlDecode
UrlEncode

MatchVariable (Переменная соответствия)

Имя Description Ценность
selector Селектор переменной соответствия. струна
variableName Совпадать с переменной. PostArgs
QueryString
RemoteAddr
"RequestBody"
"RequestCookies"
"RequestHeaders"
RequestMethod
RequestUri (обязательный)

OwaspCrsExclusionEntry

Имя Description Ценность
exclusionManagedRuleSets Управляемые наборы правил, связанные с исключением. ExclusionManagedRuleSet[]
matchVariable Переменная, изменяемая. RequestArgKeys
"RequestArgNames"
RequestArgValues
RequestCookieKeys
"RequestCookieNames"
"RequestCookieValues"
RequestHeaderKeys
"RequestHeaderNames"
RequestHeaderValues (обязательный)
selector Если matchVariable является коллекцией, оператор используется для указания того, к каким элементам в коллекции применяется это исключение. строка (обязательно)
оператор совпадения селектора Если matchVariable является коллекцией, выполните работу с селектором, чтобы указать, к каким элементам в коллекции применяется это исключение. "Содержит"
"EndsWith"
"Равно"
"EqualsAny"
"StartsWith" (обязательно)

PolicySettings (PolicySettings)

Имя Description Ценность
customBlockResponseBody Если тип действия является блоком, клиент может переопределить текст ответа. Текст должен быть указан в кодировке Base64. string

Constraints:
Максимальная длина = 32768
Шаблон = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode Если тип действия является блоком, клиент может переопределить код состояния ответа. int

Constraints:
Минимальное значение = 0
fileUploadEnforcement Разрешить WAF применять ограничения отправки файлов. bool
fileUploadLimitInMb Максимальный размер загрузки файла в Мб для WAF. int

Constraints:
Минимальное значение = 0
jsChallengeCookieExpirationInMins Время истечения срока действия файла cookie для брандмауэра веб-приложений JavaScript в минутах. int

Constraints:
Минимальное значение = 5
Максимальное значение = 1440
logScrubbing Чтобы скубировать конфиденциальные поля журнала PolicySettingsLogScrubbing
maxRequestBodySizeInKb Максимальный размер тела запроса в Кб для WAF. int

Constraints:
Минимальное значение = 8
mode Режим политики. "Обнаружение"
"Предотвращение"
requestBodyCheck Следует ли разрешить WAF проверять текст запроса. bool
requestBodyEnforcement Разрешить WAF применять ограничения текста запроса. bool
requestBodyInspectLimitInKB Максимальное ограничение проверки в КБ для проверки текста запроса для WAF. инт
государство Состояние политики. 'Disabled'
"Включено"

PolicySettingsLogScrubbing

Имя Description Ценность
Правила перемотки Правила, применяемые к журналам для очистки. WebApplicationFirewallScrubbingRules[]
государство Состояние конфигурации scrubbing журнала. Значение по умолчанию включено. 'Disabled'
"Включено"

ResourceTags

Имя Description Ценность

WebApplicationFirewallCustomRule

Имя Description Ценность
действие Тип действий. "Разрешить"
"Блокировать"
"JSChallenge"
Log (обязательно)
groupByUserSession Список групп идентификаторов сеансов пользователя по предложениям. GroupByUserSession[]
matchConditions Список условий соответствия. MatchCondition[] (обязательно)
имя Имя ресурса, уникального в политике. Это имя можно использовать для доступа к ресурсу. string

Constraints:
Максимальная длина = 128
priority Приоритет правила. Правила с более низким значением будут оцениваться перед правилами с более высоким значением. int (обязательный)
rateLimitDuration Длительность применения политики ограничения скорости. Применяется только в том случае, если значение ruleType равно RateLimitRule. «Пять минут»
"OneMin"
rateLimitThreshold Пороговое значение ограничения скорости для применения в типе правила регистра — RateLimitRule. Должно быть больше или равно 1 инт
ruleType Тип правила. 'Invalid'
MatchRule
RateLimitRule (обязательный)
государство Описывает, включено или отключено ли настраиваемое правило. Значение по умолчанию включено, если не указано. 'Disabled'
"Включено"

WebApplicationFirewallPolicyPropertiesFormat

Имя Description Ценность
customRules Пользовательские правила внутри политики. WebApplicationFirewallCustomRule[]
managedRules Описывает структуру managedRules. ManagedRulesDefinition (обязательно)
настройки политики PolicySettings для политики. PolicySettings (PolicySettings)

WebApplicationFirewallScrubbingRules

Имя Description Ценность
matchVariable Переменная для очистки из журналов. "RequestArgNames"
"RequestCookieNames"
"RequestHeaderNames"
RequestIPAddress
"RequestJSONArgNames"
RequestPostArgNames (обязательно)
selector При сопоставлении является коллекцией, оператор используется для указания элементов коллекции, к которым применяется это правило. струна
оператор совпадения селектора Если matchVariable является коллекцией, селектор используется для указания элементов коллекции, к которым применяется это правило. "Равно"
"EqualsAny" (обязательный)
государство Определяет состояние правила очистки журналов. Значение по умолчанию включено. 'Disabled'
"Включено"

Примеры использования

Примеры Bicep

Простой пример развертывания экземпляра политики брандмауэра веб-приложения Azure.

param resourceName string = 'acctest0001'
param location string = 'westeurope'

resource applicationgatewaywebapplicationfirewallpolicy 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2022-07-01' = {
  name: resourceName
  location: location
  properties: {
    customRules: []
    managedRules: {
      exclusions: []
      managedRuleSets: [
        {
          ruleGroupOverrides: []
          ruleSetType: 'OWASP'
          ruleSetVersion: '3.1'
        }
      ]
    }
    policySettings: {
      fileUploadLimitInMb: 100
      maxRequestBodySizeInKb: 128
      mode: 'Detection'
      requestBodyCheck: true
      state: 'Enabled'
    }
  }
}

Проверенные модули Azure

Следующие проверенные модули Azure можно использовать для развертывания этого типа ресурсов.

Модуль Description
политика брандмауэра веб-приложений шлюза приложений (WAF) Модуль ресурсов AVM для политики брандмауэра веб-приложений шлюза приложений (WAF)

Примеры быстрого запуска Azure

Следующие шаблоны быстрого запуска Azure содержат примеры Bicep для развертывания этого типа ресурса.

Файл Bicep Description
кластер AKS с шлюзом NAT и шлюзом приложений В этом примере показано, как развернуть кластер AKS с шлюзом NAT для исходящих подключений и шлюза приложений для входящих подключений.
кластер AKS с контроллером входящего трафика шлюза приложений В этом примере показано, как развернуть кластер AKS с помощью шлюза приложений, контроллера входящего трафика шлюза приложений, реестра контейнеров Azure, Log Analytics и Key Vault
шлюз приложений для маршрутизации на основе URL-адресов Этот шаблон создает шлюз приложений и настраивает его для маршрутизации на основе URL-адресов.
Шлюз приложений с помощью политики WAF и брандмауэра Этот шаблон создает шлюз приложений с помощью WAF, настроенного вместе с политикой брандмауэра
Создание Azure WAF версии 2 в шлюзе приложений Azure Этот шаблон создает брандмауэр веб-приложений Azure версии 2 на шлюзе приложений Azure с двумя серверами Windows Server 2016 в серверном пуле.
Front Door Standard/Premium с источником шлюза приложений Этот шаблон создает экземпляр Front Door Standard/Premium и экземпляр шлюза приложений и использует политику NSG и WAF для проверки того, что трафик прошел через источник Front Door.
Front Door с экземплярами контейнеров и шлюза приложений Этот шаблон создает Front Door Standard/Premium с группой контейнеров и шлюзом приложений.

Определение ресурса шаблона ARM

Тип ресурса ApplicationGatewayWebApplicationFirewallPolicies можно развернуть с помощью операций, предназначенных для следующих операций:

Список измененных свойств в каждой версии API см. в журнала изменений.

Формат ресурса

Чтобы создать ресурс Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, добавьте следующий код JSON в шаблон.

{
  "type": "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies",
  "apiVersion": "2025-01-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": {
      "exceptions": [
        {
          "exceptionManagedRuleSets": [
            {
              "ruleGroups": [
                {
                  "ruleGroupName": "string",
                  "rules": [
                    {
                      "ruleId": "string"
                    }
                  ]
                }
              ],
              "ruleSetType": "string",
              "ruleSetVersion": "string"
            }
          ],
          "matchVariable": "string",
          "selector": "string",
          "selectorMatchOperator": "string",
          "valueMatchOperator": "string",
          "values": [ "string" ]
        }
      ],
      "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",
                  "sensitivity": "string",
                  "state": "string"
                }
              ]
            }
          ],
          "ruleSetType": "string",
          "ruleSetVersion": "string"
        }
      ]
    },
    "policySettings": {
      "customBlockResponseBody": "string",
      "customBlockResponseStatusCode": "int",
      "fileUploadEnforcement": "bool",
      "fileUploadLimitInMb": "int",
      "jsChallengeCookieExpirationInMins": "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"
  }
}

Значения свойств

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

Имя Description Ценность
apiVersion Версия API '2025-01-01'
location Расположение ресурса. струна
имя имя ресурса. string

Constraints:
Максимальная длина = 128 (обязательно)
properties Свойства политики брандмауэра веб-приложения. WebApplicationFirewallPolicyPropertiesFormat
tags Теги ресурсов Словарь имен и значений тегов. См. теги в шаблонах
type Тип ресурса "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies"

ИсключениеВход

Имя Description Ценность
exceptionManagedRuleSets Управляемые наборы правил, связанные с исключением. ExclusionManagedRuleSet[]
matchVariable Переменная, с которой мы вычисляем условие исключения RemoteAddr
"RequestHeader"
RequestURI (обязательный)
selector Если сопоставлениеVariable указывает на пару "ключ-значение" (например, RequestHeader), это определяет ключ. струна
оператор совпадения селектора Если сопоставлениеVariable указывает на пару "ключ-значение" (например, RequestHeader), это работает с селектором. "Содержит"
"EndsWith"
"Равно"
"StartsWith"
valueMatchOperator Работает с допустимыми значениями для matchVariable "Содержит"
"EndsWith"
"Равно"
"IPMatch"
"StartsWith" (обязательно)
values Допустимые значения для сопоставленияVariable строка[]

ExclusionManagedRule (Правило ExclusionManagedRule)

Имя Description Ценность
Идентификатор правила Идентификатор управляемого правила. строка (обязательно)

ExclusionManagedRuleGroup (Группа исключений)

Имя Description Ценность
ruleGroupName Управляемая группа правил для исключения. строка (обязательно)
правила Список правил, которые будут исключены. Если ни один из них не указан, все правила в группе будут исключены. Правило ExclusionManagedRule[]

ExclusionManagedRuleSet (Набор исключений)

Имя Description Ценность
ruleGroups Определяет группы правил, применяемые к набору правил. ExclusionManagedRuleGroup[]
тип набора правил Определяет используемый тип набора правил. строка (обязательно)
версия набора правил Определяет версию используемого набора правил. строка (обязательно)

GroupByUserSession

Имя Description Ценность
groupByVariables Список групп по переменным предложения. GroupByVariable[] (обязательно)

GroupByVariable

Имя Description Ценность
variableName Переменная предложения сеанса пользователя. ClientAddr
'ClientAddrXFFHeader'
GeoLocation
'GeoLocationXFFHeader'
"Нет" (обязательно)

ManagedRuleGroupOverride (УправляемоеПравилоГрупповоеПереопределение)

Имя Description Ценность
ruleGroupName Управляемая группа правил для переопределения. строка (обязательно)
правила Список правил, которые будут отключены. Если ни один из них не указан, все правила в группе будут отключены. ManagedRuleOverride[]

ManagedRuleOverride (УправляемыйПереопределение правил)

Имя Description Ценность
действие Описывает действие переопределения, которое будет применяться при совпадении правил. "Разрешить"
«Оценка аномалий»
"Блокировать"
"JSChallenge"
'Log'
Идентификатор правила Идентификатор управляемого правила. строка (обязательно)
чувствительность Описывает чувствительность переопределения, применяемую при совпадении правил. «Кайф»
«Низкий»
«Средний»
'None'
государство Состояние управляемого правила. Значение по умолчанию отключено, если оно не указано. 'Disabled'
"Включено"

ManagedRulesDefinition (УправляемоеОпределение правил)

Имя Description Ценность
Исключения Исключения, применяемые к политике. ИсключениеЗапись[]
Исключения Исключения, применяемые к политике. OwaspCrsExclusionEntry[]
managedRuleSets Управляемые наборы правил, связанные с политикой. ManagedRuleSet[] (обязательно)

ManagedRuleSet (УправляемыйНабор Правил)

Имя Description Ценность
ruleGroupOverrides Определяет переопределение группы правил для применения к набору правил. ManagedRuleGroupOverride[]
тип набора правил Определяет используемый тип набора правил. строка (обязательно)
версия набора правил Определяет версию используемого набора правил. строка (обязательно)

Условие совпадения

Имя Description Ценность
matchValues Значение соответствия. string[] (обязательно)
matchVariables Список переменных соответствия. MatchVariable[] (обязательно)
отрицаниеConditon Является ли это неуготным условием или нет. bool
operator Оператор, который нужно сопоставить. "Любой"
BeginsWith
"Содержит"
"EndsWith"
"Равно"
"GeoMatch"
«Больше, чем»
«Больше, чем Или Равно»
"IPMatch"
"LessThan"
"LessThanOrEqual"
Regex (обязательный)
Преобразует Список преобразований. Массив строк, содержащий любой из:
"HtmlEntityDecode"
Нижний регистр
RemoveNulls
"Обрезка"
"Верхний регистр"
UrlDecode
UrlEncode

MatchVariable (Переменная соответствия)

Имя Description Ценность
selector Селектор переменной соответствия. струна
variableName Совпадать с переменной. PostArgs
QueryString
RemoteAddr
"RequestBody"
"RequestCookies"
"RequestHeaders"
RequestMethod
RequestUri (обязательный)

OwaspCrsExclusionEntry

Имя Description Ценность
exclusionManagedRuleSets Управляемые наборы правил, связанные с исключением. ExclusionManagedRuleSet[]
matchVariable Переменная, изменяемая. RequestArgKeys
"RequestArgNames"
RequestArgValues
RequestCookieKeys
"RequestCookieNames"
"RequestCookieValues"
RequestHeaderKeys
"RequestHeaderNames"
RequestHeaderValues (обязательный)
selector Если matchVariable является коллекцией, оператор используется для указания того, к каким элементам в коллекции применяется это исключение. строка (обязательно)
оператор совпадения селектора Если matchVariable является коллекцией, выполните работу с селектором, чтобы указать, к каким элементам в коллекции применяется это исключение. "Содержит"
"EndsWith"
"Равно"
"EqualsAny"
"StartsWith" (обязательно)

PolicySettings (PolicySettings)

Имя Description Ценность
customBlockResponseBody Если тип действия является блоком, клиент может переопределить текст ответа. Текст должен быть указан в кодировке Base64. string

Constraints:
Максимальная длина = 32768
Шаблон = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode Если тип действия является блоком, клиент может переопределить код состояния ответа. int

Constraints:
Минимальное значение = 0
fileUploadEnforcement Разрешить WAF применять ограничения отправки файлов. bool
fileUploadLimitInMb Максимальный размер загрузки файла в Мб для WAF. int

Constraints:
Минимальное значение = 0
jsChallengeCookieExpirationInMins Время истечения срока действия файла cookie для брандмауэра веб-приложений JavaScript в минутах. int

Constraints:
Минимальное значение = 5
Максимальное значение = 1440
logScrubbing Чтобы скубировать конфиденциальные поля журнала PolicySettingsLogScrubbing
maxRequestBodySizeInKb Максимальный размер тела запроса в Кб для WAF. int

Constraints:
Минимальное значение = 8
mode Режим политики. "Обнаружение"
"Предотвращение"
requestBodyCheck Следует ли разрешить WAF проверять текст запроса. bool
requestBodyEnforcement Разрешить WAF применять ограничения текста запроса. bool
requestBodyInspectLimitInKB Максимальное ограничение проверки в КБ для проверки текста запроса для WAF. инт
государство Состояние политики. 'Disabled'
"Включено"

PolicySettingsLogScrubbing

Имя Description Ценность
Правила перемотки Правила, применяемые к журналам для очистки. WebApplicationFirewallScrubbingRules[]
государство Состояние конфигурации scrubbing журнала. Значение по умолчанию включено. 'Disabled'
"Включено"

ResourceTags

Имя Description Ценность

WebApplicationFirewallCustomRule

Имя Description Ценность
действие Тип действий. "Разрешить"
"Блокировать"
"JSChallenge"
Log (обязательно)
groupByUserSession Список групп идентификаторов сеансов пользователя по предложениям. GroupByUserSession[]
matchConditions Список условий соответствия. MatchCondition[] (обязательно)
имя Имя ресурса, уникального в политике. Это имя можно использовать для доступа к ресурсу. string

Constraints:
Максимальная длина = 128
priority Приоритет правила. Правила с более низким значением будут оцениваться перед правилами с более высоким значением. int (обязательный)
rateLimitDuration Длительность применения политики ограничения скорости. Применяется только в том случае, если значение ruleType равно RateLimitRule. «Пять минут»
"OneMin"
rateLimitThreshold Пороговое значение ограничения скорости для применения в типе правила регистра — RateLimitRule. Должно быть больше или равно 1 инт
ruleType Тип правила. 'Invalid'
MatchRule
RateLimitRule (обязательный)
государство Описывает, включено или отключено ли настраиваемое правило. Значение по умолчанию включено, если не указано. 'Disabled'
"Включено"

WebApplicationFirewallPolicyPropertiesFormat

Имя Description Ценность
customRules Пользовательские правила внутри политики. WebApplicationFirewallCustomRule[]
managedRules Описывает структуру managedRules. ManagedRulesDefinition (обязательно)
настройки политики PolicySettings для политики. PolicySettings (PolicySettings)

WebApplicationFirewallScrubbingRules

Имя Description Ценность
matchVariable Переменная для очистки из журналов. "RequestArgNames"
"RequestCookieNames"
"RequestHeaderNames"
RequestIPAddress
"RequestJSONArgNames"
RequestPostArgNames (обязательно)
selector При сопоставлении является коллекцией, оператор используется для указания элементов коллекции, к которым применяется это правило. струна
оператор совпадения селектора Если matchVariable является коллекцией, селектор используется для указания элементов коллекции, к которым применяется это правило. "Равно"
"EqualsAny" (обязательный)
государство Определяет состояние правила очистки журналов. Значение по умолчанию включено. 'Disabled'
"Включено"

Примеры использования

Шаблоны быстрого запуска Azure

Следующие шаблоны быстрого запуска Azure развернуть этот тип ресурса.

Template Description
кластер AKS с шлюзом NAT и шлюзом приложений

Развертывание в Azure
В этом примере показано, как развернуть кластер AKS с шлюзом NAT для исходящих подключений и шлюза приложений для входящих подключений.
кластер AKS с контроллером входящего трафика шлюза приложений

Развертывание в Azure
В этом примере показано, как развернуть кластер AKS с помощью шлюза приложений, контроллера входящего трафика шлюза приложений, реестра контейнеров Azure, Log Analytics и Key Vault
шлюз приложений для маршрутизации на основе URL-адресов

Развертывание в Azure
Этот шаблон создает шлюз приложений и настраивает его для маршрутизации на основе URL-адресов.
Шлюз приложений с помощью политики WAF и брандмауэра

Развертывание в Azure
Этот шаблон создает шлюз приложений с помощью WAF, настроенного вместе с политикой брандмауэра
Создание Azure WAF версии 2 в шлюзе приложений Azure

Развертывание в Azure
Этот шаблон создает брандмауэр веб-приложений Azure версии 2 на шлюзе приложений Azure с двумя серверами Windows Server 2016 в серверном пуле.
Front Door Standard/Premium с источником шлюза приложений

Развертывание в Azure
Этот шаблон создает экземпляр Front Door Standard/Premium и экземпляр шлюза приложений и использует политику NSG и WAF для проверки того, что трафик прошел через источник Front Door.
Front Door с экземплярами контейнеров и шлюза приложений

Развертывание в Azure
Этот шаблон создает Front Door Standard/Premium с группой контейнеров и шлюзом приложений.

Определение ресурса Terraform (поставщик AzAPI)

Тип ресурса ApplicationGatewayWebApplicationFirewallPolicies можно развернуть с помощью операций, предназначенных для следующих операций:

  • Группы ресурсов

Список измененных свойств в каждой версии API см. в журнала изменений.

Формат ресурса

Чтобы создать ресурс Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, добавьте следующий объект Terraform в шаблон.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2025-01-01"
  name = "string"
  parent_id = "string"
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    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 = {
        exceptions = [
          {
            exceptionManagedRuleSets = [
              {
                ruleGroups = [
                  {
                    ruleGroupName = "string"
                    rules = [
                      {
                        ruleId = "string"
                      }
                    ]
                  }
                ]
                ruleSetType = "string"
                ruleSetVersion = "string"
              }
            ]
            matchVariable = "string"
            selector = "string"
            selectorMatchOperator = "string"
            valueMatchOperator = "string"
            values = [
              "string"
            ]
          }
        ]
        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"
                    sensitivity = "string"
                    state = "string"
                  }
                ]
              }
            ]
            ruleSetType = "string"
            ruleSetVersion = "string"
          }
        ]
      }
      policySettings = {
        customBlockResponseBody = "string"
        customBlockResponseStatusCode = int
        fileUploadEnforcement = bool
        fileUploadLimitInMb = int
        jsChallengeCookieExpirationInMins = 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"
      }
    }
  }
}

Значения свойств

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

Имя Description Ценность
location Расположение ресурса. струна
имя имя ресурса. string

Constraints:
Максимальная длина = 128 (обязательно)
properties Свойства политики брандмауэра веб-приложения. WebApplicationFirewallPolicyPropertiesFormat
tags Теги ресурсов Словарь имен и значений тегов.
type Тип ресурса "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2025-01-01"

ИсключениеВход

Имя Description Ценность
exceptionManagedRuleSets Управляемые наборы правил, связанные с исключением. ExclusionManagedRuleSet[]
matchVariable Переменная, с которой мы вычисляем условие исключения RemoteAddr
"RequestHeader"
RequestURI (обязательный)
selector Если сопоставлениеVariable указывает на пару "ключ-значение" (например, RequestHeader), это определяет ключ. струна
оператор совпадения селектора Если сопоставлениеVariable указывает на пару "ключ-значение" (например, RequestHeader), это работает с селектором. "Содержит"
"EndsWith"
"Равно"
"StartsWith"
valueMatchOperator Работает с допустимыми значениями для matchVariable "Содержит"
"EndsWith"
"Равно"
"IPMatch"
"StartsWith" (обязательно)
values Допустимые значения для сопоставленияVariable строка[]

ExclusionManagedRule (Правило ExclusionManagedRule)

Имя Description Ценность
Идентификатор правила Идентификатор управляемого правила. строка (обязательно)

ExclusionManagedRuleGroup (Группа исключений)

Имя Description Ценность
ruleGroupName Управляемая группа правил для исключения. строка (обязательно)
правила Список правил, которые будут исключены. Если ни один из них не указан, все правила в группе будут исключены. Правило ExclusionManagedRule[]

ExclusionManagedRuleSet (Набор исключений)

Имя Description Ценность
ruleGroups Определяет группы правил, применяемые к набору правил. ExclusionManagedRuleGroup[]
тип набора правил Определяет используемый тип набора правил. строка (обязательно)
версия набора правил Определяет версию используемого набора правил. строка (обязательно)

GroupByUserSession

Имя Description Ценность
groupByVariables Список групп по переменным предложения. GroupByVariable[] (обязательно)

GroupByVariable

Имя Description Ценность
variableName Переменная предложения сеанса пользователя. ClientAddr
'ClientAddrXFFHeader'
GeoLocation
'GeoLocationXFFHeader'
"Нет" (обязательно)

ManagedRuleGroupOverride (УправляемоеПравилоГрупповоеПереопределение)

Имя Description Ценность
ruleGroupName Управляемая группа правил для переопределения. строка (обязательно)
правила Список правил, которые будут отключены. Если ни один из них не указан, все правила в группе будут отключены. ManagedRuleOverride[]

ManagedRuleOverride (УправляемыйПереопределение правил)

Имя Description Ценность
действие Описывает действие переопределения, которое будет применяться при совпадении правил. "Разрешить"
«Оценка аномалий»
"Блокировать"
"JSChallenge"
'Log'
Идентификатор правила Идентификатор управляемого правила. строка (обязательно)
чувствительность Описывает чувствительность переопределения, применяемую при совпадении правил. «Кайф»
«Низкий»
«Средний»
'None'
государство Состояние управляемого правила. Значение по умолчанию отключено, если оно не указано. 'Disabled'
"Включено"

ManagedRulesDefinition (УправляемоеОпределение правил)

Имя Description Ценность
Исключения Исключения, применяемые к политике. ИсключениеЗапись[]
Исключения Исключения, применяемые к политике. OwaspCrsExclusionEntry[]
managedRuleSets Управляемые наборы правил, связанные с политикой. ManagedRuleSet[] (обязательно)

ManagedRuleSet (УправляемыйНабор Правил)

Имя Description Ценность
ruleGroupOverrides Определяет переопределение группы правил для применения к набору правил. ManagedRuleGroupOverride[]
тип набора правил Определяет используемый тип набора правил. строка (обязательно)
версия набора правил Определяет версию используемого набора правил. строка (обязательно)

Условие совпадения

Имя Description Ценность
matchValues Значение соответствия. string[] (обязательно)
matchVariables Список переменных соответствия. MatchVariable[] (обязательно)
отрицаниеConditon Является ли это неуготным условием или нет. bool
operator Оператор, который нужно сопоставить. "Любой"
BeginsWith
"Содержит"
"EndsWith"
"Равно"
"GeoMatch"
«Больше, чем»
«Больше, чем Или Равно»
"IPMatch"
"LessThan"
"LessThanOrEqual"
Regex (обязательный)
Преобразует Список преобразований. Массив строк, содержащий любой из:
"HtmlEntityDecode"
Нижний регистр
RemoveNulls
"Обрезка"
"Верхний регистр"
UrlDecode
UrlEncode

MatchVariable (Переменная соответствия)

Имя Description Ценность
selector Селектор переменной соответствия. струна
variableName Совпадать с переменной. PostArgs
QueryString
RemoteAddr
"RequestBody"
"RequestCookies"
"RequestHeaders"
RequestMethod
RequestUri (обязательный)

OwaspCrsExclusionEntry

Имя Description Ценность
exclusionManagedRuleSets Управляемые наборы правил, связанные с исключением. ExclusionManagedRuleSet[]
matchVariable Переменная, изменяемая. RequestArgKeys
"RequestArgNames"
RequestArgValues
RequestCookieKeys
"RequestCookieNames"
"RequestCookieValues"
RequestHeaderKeys
"RequestHeaderNames"
RequestHeaderValues (обязательный)
selector Если matchVariable является коллекцией, оператор используется для указания того, к каким элементам в коллекции применяется это исключение. строка (обязательно)
оператор совпадения селектора Если matchVariable является коллекцией, выполните работу с селектором, чтобы указать, к каким элементам в коллекции применяется это исключение. "Содержит"
"EndsWith"
"Равно"
"EqualsAny"
"StartsWith" (обязательно)

PolicySettings (PolicySettings)

Имя Description Ценность
customBlockResponseBody Если тип действия является блоком, клиент может переопределить текст ответа. Текст должен быть указан в кодировке Base64. string

Constraints:
Максимальная длина = 32768
Шаблон = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode Если тип действия является блоком, клиент может переопределить код состояния ответа. int

Constraints:
Минимальное значение = 0
fileUploadEnforcement Разрешить WAF применять ограничения отправки файлов. bool
fileUploadLimitInMb Максимальный размер загрузки файла в Мб для WAF. int

Constraints:
Минимальное значение = 0
jsChallengeCookieExpirationInMins Время истечения срока действия файла cookie для брандмауэра веб-приложений JavaScript в минутах. int

Constraints:
Минимальное значение = 5
Максимальное значение = 1440
logScrubbing Чтобы скубировать конфиденциальные поля журнала PolicySettingsLogScrubbing
maxRequestBodySizeInKb Максимальный размер тела запроса в Кб для WAF. int

Constraints:
Минимальное значение = 8
mode Режим политики. "Обнаружение"
"Предотвращение"
requestBodyCheck Следует ли разрешить WAF проверять текст запроса. bool
requestBodyEnforcement Разрешить WAF применять ограничения текста запроса. bool
requestBodyInspectLimitInKB Максимальное ограничение проверки в КБ для проверки текста запроса для WAF. инт
государство Состояние политики. 'Disabled'
"Включено"

PolicySettingsLogScrubbing

Имя Description Ценность
Правила перемотки Правила, применяемые к журналам для очистки. WebApplicationFirewallScrubbingRules[]
государство Состояние конфигурации scrubbing журнала. Значение по умолчанию включено. 'Disabled'
"Включено"

ResourceTags

Имя Description Ценность

WebApplicationFirewallCustomRule

Имя Description Ценность
действие Тип действий. "Разрешить"
"Блокировать"
"JSChallenge"
Log (обязательно)
groupByUserSession Список групп идентификаторов сеансов пользователя по предложениям. GroupByUserSession[]
matchConditions Список условий соответствия. MatchCondition[] (обязательно)
имя Имя ресурса, уникального в политике. Это имя можно использовать для доступа к ресурсу. string

Constraints:
Максимальная длина = 128
priority Приоритет правила. Правила с более низким значением будут оцениваться перед правилами с более высоким значением. int (обязательный)
rateLimitDuration Длительность применения политики ограничения скорости. Применяется только в том случае, если значение ruleType равно RateLimitRule. «Пять минут»
"OneMin"
rateLimitThreshold Пороговое значение ограничения скорости для применения в типе правила регистра — RateLimitRule. Должно быть больше или равно 1 инт
ruleType Тип правила. 'Invalid'
MatchRule
RateLimitRule (обязательный)
государство Описывает, включено или отключено ли настраиваемое правило. Значение по умолчанию включено, если не указано. 'Disabled'
"Включено"

WebApplicationFirewallPolicyPropertiesFormat

Имя Description Ценность
customRules Пользовательские правила внутри политики. WebApplicationFirewallCustomRule[]
managedRules Описывает структуру managedRules. ManagedRulesDefinition (обязательно)
настройки политики PolicySettings для политики. PolicySettings (PolicySettings)

WebApplicationFirewallScrubbingRules

Имя Description Ценность
matchVariable Переменная для очистки из журналов. "RequestArgNames"
"RequestCookieNames"
"RequestHeaderNames"
RequestIPAddress
"RequestJSONArgNames"
RequestPostArgNames (обязательно)
selector При сопоставлении является коллекцией, оператор используется для указания элементов коллекции, к которым применяется это правило. струна
оператор совпадения селектора Если matchVariable является коллекцией, селектор используется для указания элементов коллекции, к которым применяется это правило. "Равно"
"EqualsAny" (обязательный)
государство Определяет состояние правила очистки журналов. Значение по умолчанию включено. 'Disabled'
"Включено"

Примеры использования

Примеры Terraform

Простой пример развертывания экземпляра политики брандмауэра веб-приложения Azure.

terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
  }
}

provider "azapi" {
  skip_provider_registration = false
}

variable "resource_name" {
  type    = string
  default = "acctest0001"
}

variable "location" {
  type    = string
  default = "westeurope"
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "ApplicationGatewayWebApplicationFirewallPolicy" {
  type      = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2022-07-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      customRules = [
      ]
      managedRules = {
        exclusions = [
        ]
        managedRuleSets = [
          {
            ruleGroupOverrides = [
            ]
            ruleSetType    = "OWASP"
            ruleSetVersion = "3.1"
          },
        ]
      }
      policySettings = {
        fileUploadLimitInMb    = 100
        maxRequestBodySizeInKb = 128
        mode                   = "Detection"
        requestBodyCheck       = true
        state                  = "Enabled"
      }
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

Проверенные модули Azure

Следующие проверенные модули Azure можно использовать для развертывания этого типа ресурсов.

Модуль Description
политика брандмауэра веб-приложений шлюза приложений (WAF) Модуль ресурсов AVM для политики брандмауэра веб-приложений шлюза приложений (WAF)