Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies

Определение ресурса Bicep

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

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

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

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

resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-11-01' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  properties: {
    customRules: [
      {
        action: 'string'
        groupByUserSession: [
          {
            groupByVariables: [
              {
                variableName: 'string'
              }
            ]
          }
        ]
        matchConditions: [
          {
            matchValues: [
              'string'
            ]
            matchVariables: [
              {
                selector: 'string'
                variableName: 'string'
              }
            ]
            negationConditon: bool
            operator: 'string'
            transforms: [
              'string'
            ]
          }
        ]
        name: 'string'
        priority: int
        rateLimitDuration: 'string'
        rateLimitThreshold: int
        ruleType: 'string'
        state: 'string'
      }
    ]
    managedRules: {
      exclusions: [
        {
          exclusionManagedRuleSets: [
            {
              ruleGroups: [
                {
                  ruleGroupName: 'string'
                  rules: [
                    {
                      ruleId: 'string'
                    }
                  ]
                }
              ]
              ruleSetType: 'string'
              ruleSetVersion: 'string'
            }
          ]
          matchVariable: 'string'
          selector: 'string'
          selectorMatchOperator: 'string'
        }
      ]
      managedRuleSets: [
        {
          ruleGroupOverrides: [
            {
              ruleGroupName: 'string'
              rules: [
                {
                  action: 'string'
                  ruleId: 'string'
                  state: 'string'
                }
              ]
            }
          ]
          ruleSetType: 'string'
          ruleSetVersion: 'string'
        }
      ]
    }
    policySettings: {
      customBlockResponseBody: 'string'
      customBlockResponseStatusCode: int
      fileUploadEnforcement: bool
      fileUploadLimitInMb: int
      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'
    }
  }
}

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

ApplicationGatewayWebApplicationFirewallPolicies

Имя Описание Значение
name имя ресурса. string (обязательно)
location Расположение ресурса. строка
tags Теги ресурсов. Словарь имен и значений тегов. См . раздел Теги в шаблонах
properties Свойства политики брандмауэра веб-приложения. WebApplicationFirewallPolicyPropertiesFormat

WebApplicationFirewallPolicyPropertiesFormat

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

WebApplicationFirewallCustomRule

Имя Описание Значение
action Типы действий. "Разрешить"
"Block"
'JSChallenge'
Log (обязательно)
groupByUserSession Список групп идентификаторов сеансов пользователей по предложениям. GroupByUserSession[]
matchConditions Список условий соответствия. MatchCondition[] (обязательно)
name Имя ресурса, уникального в рамках политики. Это имя можно использовать для доступа к ресурсу. строка

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

GroupByUserSession

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

GroupByVariable

Имя Описание Значение
variableName Переменная предложения User Session. ClientAddr
"Географическое положение"
None (обязательно)

MatchCondition

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

MatchVariable

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

ManagedRulesDefinition

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

OwaspCrsExclusionEntry

Имя Описание Значение
exclusionManagedRuleSets Наборы управляемых правил, связанные с исключением. ExclusionManagedRuleSet[]
matchVariable Исключаемая переменная. RequestArgKeys
RequestArgNames
RequestArgValues
RequestCookieKeys
RequestCookieNames
RequestCookieValues
RequestHeaderKeys
RequestHeaderNames
RequestHeaderValues (обязательно)
selector Если matchVariable является коллекцией, оператор используется для указания элементов в коллекции, к которым применяется это исключение. string (обязательно)
selectorMatchOperator Если matchVariable является коллекцией, с помощью селектора укажите, к каким элементам в коллекции применяется это исключение. "Contains"
'EndsWith'
"Equals"
"EqualsAny"
StartsWith (обязательно)

ExclusionManagedRuleSet

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

ExclusionManagedRuleGroup

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

ExclusionManagedRule

Имя Описание Значение
ruleId Идентификатор управляемого правила. string (обязательно)

ManagedRuleSet

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

ManagedRuleGroupOverride

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

ManagedRuleOverride

Имя Описание Значение
action Описывает действие переопределения, применяемое при совпадении с правилом. "Разрешить"
'Anomalyscoring'
"Block"
'JSChallenge'
'Log'
ruleId Идентификатор управляемого правила. string (обязательно)
Состояние Состояние управляемого правила. По умолчанию используется значение Отключено, если не указано. "Отключено"
"Включено"

PolicySettings

Имя Описание Значение
customBlockResponseBody Если тип действия — block, клиент может переопределить текст ответа. Текст должен быть указан в кодировке Base64. строка

Ограничения:
Максимальная длина = 32768
Шаблон = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode Если тип действия — block, клиент может переопределить код состояния ответа. 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. INT
Состояние Состояние политики. "Отключено"
"Включено"

PolicySettingsLogScrubbing

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

WebApplicationFirewallScrubbingRules

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

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

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

Шаблон Описание
Create Azure WAF версии 2 на Шлюз приложений Azure

Развертывание в Azure
Этот шаблон создает azure Брандмауэр веб-приложений версии 2 на Шлюз приложений Azure с двумя серверами Windows Server 2016 во внутреннем пуле.
Кластер AKS со шлюзом NAT и Шлюз приложений

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

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

Развертывание в Azure
Этот шаблон создает Front Door уровня "Стандартный" или "Премиум" с группой контейнеров и Шлюз приложений.
Кластер AKS с контроллером входящего трафика Шлюз приложений

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

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

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

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

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

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

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

{
  "type": "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies",
  "apiVersion": "2023-11-01",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "properties": {
    "customRules": [
      {
        "action": "string",
        "groupByUserSession": [
          {
            "groupByVariables": [
              {
                "variableName": "string"
              }
            ]
          }
        ],
        "matchConditions": [
          {
            "matchValues": [ "string" ],
            "matchVariables": [
              {
                "selector": "string",
                "variableName": "string"
              }
            ],
            "negationConditon": "bool",
            "operator": "string",
            "transforms": [ "string" ]
          }
        ],
        "name": "string",
        "priority": "int",
        "rateLimitDuration": "string",
        "rateLimitThreshold": "int",
        "ruleType": "string",
        "state": "string"
      }
    ],
    "managedRules": {
      "exclusions": [
        {
          "exclusionManagedRuleSets": [
            {
              "ruleGroups": [
                {
                  "ruleGroupName": "string",
                  "rules": [
                    {
                      "ruleId": "string"
                    }
                  ]
                }
              ],
              "ruleSetType": "string",
              "ruleSetVersion": "string"
            }
          ],
          "matchVariable": "string",
          "selector": "string",
          "selectorMatchOperator": "string"
        }
      ],
      "managedRuleSets": [
        {
          "ruleGroupOverrides": [
            {
              "ruleGroupName": "string",
              "rules": [
                {
                  "action": "string",
                  "ruleId": "string",
                  "state": "string"
                }
              ]
            }
          ],
          "ruleSetType": "string",
          "ruleSetVersion": "string"
        }
      ]
    },
    "policySettings": {
      "customBlockResponseBody": "string",
      "customBlockResponseStatusCode": "int",
      "fileUploadEnforcement": "bool",
      "fileUploadLimitInMb": "int",
      "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"
    }
  }
}

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

ApplicationGatewayWebApplicationFirewallPolicies

Имя Описание Значение
тип Тип ресурса Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies
версия_API Версия API ресурсов '2023-11-01'
name имя ресурса. строка (обязательно)
location Расположение ресурса. строка
tags Теги ресурсов. Словарь имен и значений тегов. См . раздел Теги в шаблонах
properties Свойства политики брандмауэра веб-приложения. WebApplicationFirewallPolicyPropertiesFormat

WebApplicationFirewallPolicyPropertiesFormat

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

WebApplicationFirewallCustomRule

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

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

GroupByUserSession

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

GroupByVariable

Имя Описание Значение
variableName Переменная предложения User Session. ClientAddr
"Географическое положение"
None (обязательно)

MatchCondition

Имя Описание Значение
matchValues Сопоставление значения. string[] (обязательно)
matchVariables Список переменных соответствия. MatchVariable[] (обязательно)
negationConditon Является ли это условием отмены или нет. bool
оператор Оператор для сопоставления. "Любой"
BeginsWith
"Contains"
'EndsWith'
"Equal"
"GeoMatch"
'GreaterThan'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
"LessThanOrEqual"
"Регулярное выражение" (обязательно)
преобразования Список преобразований. Массив строк, содержащий любой из:
HtmlEntityDecode
"Нижний регистр"
RemoveNulls
"Обрезка"
"Верхний регистр"
'UrlDecode'
'UrlEncode'

MatchVariable

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

ManagedRulesDefinition

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

OwaspCrsExclusionEntry

Имя Описание Значение
exclusionManagedRuleSets Управляемые наборы правил, связанные с исключением. ExclusionManagedRuleSet[]
matchVariable Исключаемая переменная. RequestArgKeys
RequestArgNames
RequestArgValues
RequestCookieKeys
RequestCookieNames
RequestCookieValues
RequestHeaderKeys
RequestHeaderNames
RequestHeaderValues (обязательно)
selector Если matchVariable является коллекцией, оператор используется для указания элементов в коллекции, к которым применяется это исключение. string (обязательно)
selectorMatchOperator Если matchVariable является коллекцией, с помощью селектора укажите, к каким элементам в коллекции применяется это исключение. "Contains"
'EndsWith'
"Equals"
"EqualsAny"
StartsWith (обязательно)

ExclusionManagedRuleSet

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

ExclusionManagedRuleGroup

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

ExclusionManagedRule

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

ManagedRuleSet

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

ManagedRuleGroupOverride

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

ManagedRuleOverride

Имя Описание Значение
action Описывает действие переопределения, которое будет применяться при совпадении с правилом. "Разрешить"
'AnomalyScoring'
"Блокировать"
'JSChallenge'
Журнал
ruleId Идентификатор управляемого правила. строка (обязательно)
Состояние Состояние управляемого правила. По умолчанию — Отключено, если не указано. "Отключено"
"Включено"

PolicySettings

Имя Описание Значение
customBlockResponseBody Если тип действия — block, клиент может переопределить текст ответа. Текст должен быть указан в кодировке base64. строка

Ограничения:
Максимальная длина = 32768
Шаблон = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode Если тип действия — block, клиент может переопределить код состояния ответа. 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. INT
Состояние Состояние политики. "Отключено"
"Включено"

PolicySettingsLogScrubbing

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

WebApplicationFirewallScrubbingRules

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

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

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

Шаблон Описание
Create Azure WAF версии 2 в Шлюз приложений Azure

Развертывание в Azure
Этот шаблон создает azure Брандмауэр веб-приложений версии 2 на Шлюз приложений Azure с двумя Windows Server 2016 серверами во внутреннем пуле.
Кластер AKS со шлюзом NAT и Шлюз приложений

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

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

Развертывание в Azure
Этот шаблон создает Front Door уровня "Стандартный" или "Премиум" с группой контейнеров и Шлюз приложений.
Кластер AKS с контроллером входящего трафика Шлюз приложений

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

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

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

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

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

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

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

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

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-11-01"
  name = "string"
  location = "string"
  parent_id = "string"
  tags = {
    tagName1 = "tagValue1"
    tagName2 = "tagValue2"
  }
  body = jsonencode({
    properties = {
      customRules = [
        {
          action = "string"
          groupByUserSession = [
            {
              groupByVariables = [
                {
                  variableName = "string"
                }
              ]
            }
          ]
          matchConditions = [
            {
              matchValues = [
                "string"
              ]
              matchVariables = [
                {
                  selector = "string"
                  variableName = "string"
                }
              ]
              negationConditon = bool
              operator = "string"
              transforms = [
                "string"
              ]
            }
          ]
          name = "string"
          priority = int
          rateLimitDuration = "string"
          rateLimitThreshold = int
          ruleType = "string"
          state = "string"
        }
      ]
      managedRules = {
        exclusions = [
          {
            exclusionManagedRuleSets = [
              {
                ruleGroups = [
                  {
                    ruleGroupName = "string"
                    rules = [
                      {
                        ruleId = "string"
                      }
                    ]
                  }
                ]
                ruleSetType = "string"
                ruleSetVersion = "string"
              }
            ]
            matchVariable = "string"
            selector = "string"
            selectorMatchOperator = "string"
          }
        ]
        managedRuleSets = [
          {
            ruleGroupOverrides = [
              {
                ruleGroupName = "string"
                rules = [
                  {
                    action = "string"
                    ruleId = "string"
                    state = "string"
                  }
                ]
              }
            ]
            ruleSetType = "string"
            ruleSetVersion = "string"
          }
        ]
      }
      policySettings = {
        customBlockResponseBody = "string"
        customBlockResponseStatusCode = int
        fileUploadEnforcement = bool
        fileUploadLimitInMb = int
        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"
      }
    }
  })
}

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

ApplicationGatewayWebApplicationFirewallPolicies

Имя Описание Значение
тип Тип ресурса "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-11-01"
name имя ресурса. строка (обязательно)
location Расположение ресурса. строка
parent_id Чтобы выполнить развертывание в группе ресурсов, используйте идентификатор этой группы ресурсов. строка (обязательно)
tags Теги ресурсов. Словарь имен и значений тегов.
properties Свойства политики брандмауэра веб-приложения. WebApplicationFirewallPolicyPropertiesFormat

WebApplicationFirewallPolicyPropertiesFormat

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

WebApplicationFirewallCustomRule

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

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

GroupByUserSession

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

GroupByVariable

Имя Описание Значение
variableName Переменная предложения User Session. ClientAddr
"GeoLocation"
"None" (обязательно)

MatchCondition

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

MatchVariable

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

ManagedRulesDefinition

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

OwaspCrsExclusionEntry

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

ExclusionManagedRuleSet

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

ExclusionManagedRuleGroup

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

ExclusionManagedRule

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

ManagedRuleSet

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

ManagedRuleGroupOverride

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

ManagedRuleOverride

Имя Описание Значение
action Описывает действие переопределения, которое будет применяться при совпадении с правилом. "Разрешить"
"AnomalyScoring"
"Блокировать"
"JSChallenge"
"Log"
ruleId Идентификатор управляемого правила. строка (обязательно)
Состояние Состояние управляемого правила. По умолчанию — Отключено, если не указано. "Отключено"
"Включено"

PolicySettings

Имя Описание Значение
customBlockResponseBody Если тип действия — block, клиент может переопределить текст ответа. Текст должен быть указан в кодировке base64. строка

Ограничения:
Максимальная длина = 32768
Шаблон = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode Если тип действия — block, клиент может переопределить код состояния ответа. 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. INT
Состояние Состояние политики. "Отключено"
"Включено"

PolicySettingsLogScrubbing

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

WebApplicationFirewallScrubbingRules

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