Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies 2024-10-01

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

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

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

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

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

resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2024-10-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

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

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

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

ExclusionManagedRule (Правило ExclusionManagedRule)

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

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

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

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

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

GroupByUserSession

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

GroupByVariable

Имя Description Ценность
variableName Переменная предложения сеанса пользователя. 'КлиентАдР'
'ClientAddrXFFHeader'
«Геолокация»
'GeoLocationXFFHeader'
«Нет» (обязательно)

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

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

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

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

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

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

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

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

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

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

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

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

OwaspCrsExclusionEntry

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

PolicySettings (PolicySettings)

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

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

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

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

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

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

PolicySettingsLogScrubbing

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

ResourceTags

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

WebApplicationFirewallCustomRule

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

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

WebApplicationFirewallPolicyPropertiesFormat

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

WebApplicationFirewallScrubbingRules

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

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

Примеры 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": "2024-10-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 '2024-10-01'
location Расположение ресурса. струна
имя имя ресурса. string

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

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

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

ExclusionManagedRule (Правило ExclusionManagedRule)

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

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

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

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

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

GroupByUserSession

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

GroupByVariable

Имя Description Ценность
variableName Переменная предложения сеанса пользователя. 'КлиентАдР'
'ClientAddrXFFHeader'
«Геолокация»
'GeoLocationXFFHeader'
«Нет» (обязательно)

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

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

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

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

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

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

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

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

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

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

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

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

OwaspCrsExclusionEntry

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

PolicySettings (PolicySettings)

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

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

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

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

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

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

PolicySettingsLogScrubbing

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

ResourceTags

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

WebApplicationFirewallCustomRule

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

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

WebApplicationFirewallPolicyPropertiesFormat

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

WebApplicationFirewallScrubbingRules

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

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

Шаблоны быстрого запуска 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@2024-10-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

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

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

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

ExclusionManagedRule (Правило ExclusionManagedRule)

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

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

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

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

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

GroupByUserSession

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

GroupByVariable

Имя Description Ценность
variableName Переменная предложения сеанса пользователя. 'КлиентАдР'
'ClientAddrXFFHeader'
«Геолокация»
'GeoLocationXFFHeader'
«Нет» (обязательно)

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

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

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

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

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

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

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

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

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

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

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

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

OwaspCrsExclusionEntry

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

PolicySettings (PolicySettings)

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

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

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

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

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

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

PolicySettingsLogScrubbing

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

ResourceTags

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

WebApplicationFirewallCustomRule

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

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

WebApplicationFirewallPolicyPropertiesFormat

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

WebApplicationFirewallScrubbingRules

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

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

Примеры 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) Шлюза приложений