Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
- Latest
- 2025-05-01
- 2025-03-01
- 2025-01-01
- 2024-10-01
- 2024-07-01
- 2024-05-01
- 2024-03-01
- 2024-01-01
- 2023-11-01
- 2023-09-01
- 2023-06-01
- 2023-05-01
- 2023-04-01
- 2023-02-01
- 2022-11-01
- 2022-09-01
- 2022-07-01
- 2022-05-01
- 2022-01-01
- 2021-08-01
- 2021-05-01
- 2021-03-01
- 2021-02-01
- 2020-11-01
- 2020-08-01
- 2020-07-01
- 2020-06-01
- 2020-05-01
- 2020-04-01
- 2020-03-01
- 2019-12-01
- 2019-11-01
- 2019-09-01
- 2019-08-01
- 2019-07-01
- 2019-06-01
- 2019-04-01
- 2019-02-01
- 2018-12-01
- 2018-10-01
Определение ресурсов Bicep
Тип ресурса ApplicationGatewayWebApplicationFirewallPolicies можно развернуть с помощью операций, предназначенных для следующих операций:
- группы ресурсов . См. команды развертывания группы ресурсов
Список измененных свойств в каждой версии API см. в журнала изменений.
Формат ресурса
Чтобы создать ресурс Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, добавьте следующий Bicep в шаблон.
resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2025-03-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 (обязательный) |
| селектор | Если сопоставлениеVariable указывает на пару "ключ-значение" (например, RequestHeader), это определяет ключ. | струна |
| оператор совпадения селектора | Если сопоставлениеVariable указывает на пару "ключ-значение" (например, RequestHeader), это работает с селектором. | "Содержит" "EndsWith" "Равно" "StartsWith" |
| valueMatchOperator | Работает с допустимыми значениями для matchVariable | "Содержит" "EndsWith" "Равно" "IPMatch" "StartsWith" (обязательно) |
| values | Допустимые значения для сопоставленияVariable | строка[] |
ExclusionManagedRule (Правило ExclusionManagedRule)
| Имя | Description | Ценность |
|---|---|---|
| ruleId | Идентификатор управляемого правила. | строка (обязательно) |
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 | Ценность |
|---|---|---|
| действие | Описывает действие переопределения, которое будет применяться при совпадении правил. | 'Allow' «Оценка аномалий» "Блокировать" "JSChallenge" 'Log' |
| ruleId | Идентификатор управляемого правила. | строка (обязательно) |
| sensitivity | Описывает чувствительность переопределения, применяемую при совпадении правил. | 'High' 'Low' 'Medium' |
| государство | Состояние управляемого правила. Значение по умолчанию отключено, если оно не указано. | 'Disabled' 'Enabled' |
ManagedRulesDefinition (УправляемоеОпределение правил)
| Имя | Description | Ценность |
|---|---|---|
| Исключения | Исключения, применяемые к политике. | ИсключениеЗапись[] |
| Исключения | Исключения, применяемые к политике. | OwaspCrsExclusionEntry[] |
| managedRuleSets | Управляемые наборы правил, связанные с политикой. | ManagedRuleSet[] (обязательно) |
ManagedRuleSet (УправляемыйНабор Правил)
| Имя | Description | Ценность |
|---|---|---|
| ruleGroupOverrides | Определяет переопределение группы правил для применения к набору правил. | ManagedRuleGroupOverride[] |
| тип набора правил | Определяет используемый тип набора правил. | строка (обязательно) |
| версия набора правил | Определяет версию используемого набора правил. | строка (обязательно) |
Условие совпадения
| Имя | Description | Ценность |
|---|---|---|
| matchValues | Сопоставление значения. | string[] (обязательно) |
| matchVariables | Список переменных соответствия. | MatchVariable[] (обязательно) |
| отрицаниеConditon | Является ли это неуготным условием или нет. | bool |
| operator | Оператор, который нужно сопоставить. | 'Any' BeginsWith "Содержит" "EndsWith" "Равно" "GeoMatch" «Больше, чем» «Больше, чем Или Равно» "IPMatch" "LessThan" "LessThanOrEqual" Regex (обязательный) |
| Преобразует | Список преобразований. | Массив строк, содержащий любой из: "HtmlEntityDecode" Нижний регистр RemoveNulls "Обрезка" "Верхний регистр" UrlDecode UrlEncode |
MatchVariable (Переменная соответствия)
| Имя | Description | Ценность |
|---|---|---|
| селектор | Селектор переменной соответствия. | струна |
| variableName | Сопоставление переменной. | PostArgs QueryString RemoteAddr "RequestBody" "RequestCookies" "RequestHeaders" RequestMethod RequestUri (обязательный) |
OwaspCrsExclusionEntry
| Имя | Description | Ценность |
|---|---|---|
| exclusionManagedRuleSets | Управляемые наборы правил, связанные с исключением. | ExclusionManagedRuleSet[] |
| matchVariable | Переменная, изменяемая. | RequestArgKeys "RequestArgNames" RequestArgValues RequestCookieKeys "RequestCookieNames" "RequestCookieValues" RequestHeaderKeys "RequestHeaderNames" RequestHeaderValues (обязательный) |
| селектор | Если сопоставлениеVariable является коллекцией, оператор используется для указания элементов коллекции, к которым применяется это исключение. | строка (обязательно) |
| оператор совпадения селектора | Если 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' 'Enabled' |
PolicySettingsLogScrubbing
| Имя | Description | Ценность |
|---|---|---|
| Правила перемотки | Правила, применяемые к журналам для очистки. | WebApplicationFirewallScrubbingRules[] |
| государство | Состояние конфигурации scrubbing журнала. Значение по умолчанию включено. | 'Disabled' 'Enabled' |
Теги ресурса
| Имя | Description | Ценность |
|---|
WebApplicationFirewallCustomRule
| Имя | Description | Ценность |
|---|---|---|
| действие | Типы действий. | 'Allow' "Блокировать" "JSChallenge" Log (обязательно) |
| groupByUserSession | Список групп идентификаторов сеансов пользователя по предложениям. | GroupByUserSession[] |
| matchConditions | Список условий соответствия. | MatchCondition[] (обязательно) |
| имя | Имя ресурса, уникального в политике. Это имя можно использовать для доступа к ресурсу. | string Constraints: Максимальная длина = 128 |
| priority | Приоритет правила. Правила с более низким значением будут оцениваться перед правилами с более высоким значением. | int (обязательно) |
| rateLimitDuration | Длительность применения политики ограничения скорости. Применяется только в том случае, если значение ruleType равно RateLimitRule. | «Пять минут» "OneMin" |
| rateLimitThreshold | Пороговое значение ограничения скорости для применения в типе правила регистра — RateLimitRule. Должно быть больше или равно 1 | инт |
| ruleType | Тип правила. | 'Invalid' MatchRule RateLimitRule (обязательный) |
| государство | Описывает, включено или отключено ли настраиваемое правило. Значение по умолчанию включено, если не указано. | 'Disabled' 'Enabled' |
WebApplicationFirewallPolicyPropertiesFormat
| Имя | Description | Ценность |
|---|---|---|
| customRules | Пользовательские правила внутри политики. | WebApplicationFirewallCustomRule[] |
| managedRules | Описывает структуру managedRules. | ManagedRulesDefinition (обязательно) |
| настройки политики | PolicySettings для политики. | PolicySettings (PolicySettings) |
WebApplicationFirewallScrubbingRules
| Имя | Description | Ценность |
|---|---|---|
| matchVariable | Переменная для очистки из журналов. | "RequestArgNames" "RequestCookieNames" "RequestHeaderNames" RequestIPAddress "RequestJSONArgNames" RequestPostArgNames (обязательно) |
| селектор | При сопоставлении является коллекцией, оператор используется для указания элементов коллекции, к которым применяется это правило. | струна |
| оператор совпадения селектора | Если matchVariable является коллекцией, селектор используется для указания элементов коллекции, к которым применяется это правило. | "Равно" "EqualsAny" (обязательный) |
| государство | Определяет состояние правила очистки журналов. Значение по умолчанию включено. | 'Disabled' 'Enabled' |
Примеры использования
Примеры 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-03-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-03-01' |
| location | Расположение ресурса. | струна |
| имя | имя ресурса. | string Constraints: Максимальная длина = 128 (обязательно) |
| properties | Свойства политики брандмауэра веб-приложения. | WebApplicationFirewallPolicyPropertiesFormat |
| tags | Теги ресурсов | Словарь имен и значений тегов. См. теги в шаблонах |
| type | Тип ресурса | "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies" |
ИсключениеВход
| Имя | Description | Ценность |
|---|---|---|
| exceptionManagedRuleSets | Управляемые наборы правил, связанные с исключением. | ExclusionManagedRuleSet[] |
| matchVariable | Переменная, с которой мы вычисляем условие исключения | RemoteAddr "RequestHeader" RequestURI (обязательный) |
| селектор | Если сопоставлениеVariable указывает на пару "ключ-значение" (например, RequestHeader), это определяет ключ. | струна |
| оператор совпадения селектора | Если сопоставлениеVariable указывает на пару "ключ-значение" (например, RequestHeader), это работает с селектором. | "Содержит" "EndsWith" "Равно" "StartsWith" |
| valueMatchOperator | Работает с допустимыми значениями для matchVariable | "Содержит" "EndsWith" "Равно" "IPMatch" "StartsWith" (обязательно) |
| values | Допустимые значения для сопоставленияVariable | строка[] |
ExclusionManagedRule (Правило ExclusionManagedRule)
| Имя | Description | Ценность |
|---|---|---|
| ruleId | Идентификатор управляемого правила. | строка (обязательно) |
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 | Ценность |
|---|---|---|
| действие | Описывает действие переопределения, которое будет применяться при совпадении правил. | 'Allow' «Оценка аномалий» "Блокировать" "JSChallenge" 'Log' |
| ruleId | Идентификатор управляемого правила. | строка (обязательно) |
| sensitivity | Описывает чувствительность переопределения, применяемую при совпадении правил. | 'High' 'Low' 'Medium' |
| государство | Состояние управляемого правила. Значение по умолчанию отключено, если оно не указано. | 'Disabled' 'Enabled' |
ManagedRulesDefinition (УправляемоеОпределение правил)
| Имя | Description | Ценность |
|---|---|---|
| Исключения | Исключения, применяемые к политике. | ИсключениеЗапись[] |
| Исключения | Исключения, применяемые к политике. | OwaspCrsExclusionEntry[] |
| managedRuleSets | Управляемые наборы правил, связанные с политикой. | ManagedRuleSet[] (обязательно) |
ManagedRuleSet (УправляемыйНабор Правил)
| Имя | Description | Ценность |
|---|---|---|
| ruleGroupOverrides | Определяет переопределение группы правил для применения к набору правил. | ManagedRuleGroupOverride[] |
| тип набора правил | Определяет используемый тип набора правил. | строка (обязательно) |
| версия набора правил | Определяет версию используемого набора правил. | строка (обязательно) |
Условие совпадения
| Имя | Description | Ценность |
|---|---|---|
| matchValues | Сопоставление значения. | string[] (обязательно) |
| matchVariables | Список переменных соответствия. | MatchVariable[] (обязательно) |
| отрицаниеConditon | Является ли это неуготным условием или нет. | bool |
| operator | Оператор, который нужно сопоставить. | 'Any' BeginsWith "Содержит" "EndsWith" "Равно" "GeoMatch" «Больше, чем» «Больше, чем Или Равно» "IPMatch" "LessThan" "LessThanOrEqual" Regex (обязательный) |
| Преобразует | Список преобразований. | Массив строк, содержащий любой из: "HtmlEntityDecode" Нижний регистр RemoveNulls "Обрезка" "Верхний регистр" UrlDecode UrlEncode |
MatchVariable (Переменная соответствия)
| Имя | Description | Ценность |
|---|---|---|
| селектор | Селектор переменной соответствия. | струна |
| variableName | Сопоставление переменной. | PostArgs QueryString RemoteAddr "RequestBody" "RequestCookies" "RequestHeaders" RequestMethod RequestUri (обязательный) |
OwaspCrsExclusionEntry
| Имя | Description | Ценность |
|---|---|---|
| exclusionManagedRuleSets | Управляемые наборы правил, связанные с исключением. | ExclusionManagedRuleSet[] |
| matchVariable | Переменная, изменяемая. | RequestArgKeys "RequestArgNames" RequestArgValues RequestCookieKeys "RequestCookieNames" "RequestCookieValues" RequestHeaderKeys "RequestHeaderNames" RequestHeaderValues (обязательный) |
| селектор | Если сопоставлениеVariable является коллекцией, оператор используется для указания элементов коллекции, к которым применяется это исключение. | строка (обязательно) |
| оператор совпадения селектора | Если 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' 'Enabled' |
PolicySettingsLogScrubbing
| Имя | Description | Ценность |
|---|---|---|
| Правила перемотки | Правила, применяемые к журналам для очистки. | WebApplicationFirewallScrubbingRules[] |
| государство | Состояние конфигурации scrubbing журнала. Значение по умолчанию включено. | 'Disabled' 'Enabled' |
Теги ресурса
| Имя | Description | Ценность |
|---|
WebApplicationFirewallCustomRule
| Имя | Description | Ценность |
|---|---|---|
| действие | Типы действий. | 'Allow' "Блокировать" "JSChallenge" Log (обязательно) |
| groupByUserSession | Список групп идентификаторов сеансов пользователя по предложениям. | GroupByUserSession[] |
| matchConditions | Список условий соответствия. | MatchCondition[] (обязательно) |
| имя | Имя ресурса, уникального в политике. Это имя можно использовать для доступа к ресурсу. | string Constraints: Максимальная длина = 128 |
| priority | Приоритет правила. Правила с более низким значением будут оцениваться перед правилами с более высоким значением. | int (обязательно) |
| rateLimitDuration | Длительность применения политики ограничения скорости. Применяется только в том случае, если значение ruleType равно RateLimitRule. | «Пять минут» "OneMin" |
| rateLimitThreshold | Пороговое значение ограничения скорости для применения в типе правила регистра — RateLimitRule. Должно быть больше или равно 1 | инт |
| ruleType | Тип правила. | 'Invalid' MatchRule RateLimitRule (обязательный) |
| государство | Описывает, включено или отключено ли настраиваемое правило. Значение по умолчанию включено, если не указано. | 'Disabled' 'Enabled' |
WebApplicationFirewallPolicyPropertiesFormat
| Имя | Description | Ценность |
|---|---|---|
| customRules | Пользовательские правила внутри политики. | WebApplicationFirewallCustomRule[] |
| managedRules | Описывает структуру managedRules. | ManagedRulesDefinition (обязательно) |
| настройки политики | PolicySettings для политики. | PolicySettings (PolicySettings) |
WebApplicationFirewallScrubbingRules
| Имя | Description | Ценность |
|---|---|---|
| matchVariable | Переменная для очистки из журналов. | "RequestArgNames" "RequestCookieNames" "RequestHeaderNames" RequestIPAddress "RequestJSONArgNames" RequestPostArgNames (обязательно) |
| селектор | При сопоставлении является коллекцией, оператор используется для указания элементов коллекции, к которым применяется это правило. | струна |
| оператор совпадения селектора | Если matchVariable является коллекцией, селектор используется для указания элементов коллекции, к которым применяется это правило. | "Равно" "EqualsAny" (обязательный) |
| государство | Определяет состояние правила очистки журналов. Значение по умолчанию включено. | 'Disabled' 'Enabled' |
Примеры использования
Шаблоны быстрого запуска Azure
Следующие шаблоны быстрого запуска Azure развернуть этот тип ресурса.
| Template | 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 с группой контейнеров и шлюзом приложений. |
Определение ресурса Terraform (поставщик AzAPI)
Тип ресурса ApplicationGatewayWebApplicationFirewallPolicies можно развернуть с помощью операций, предназначенных для следующих операций:
- Группы ресурсов
Список измененных свойств в каждой версии API см. в журнала изменений.
Формат ресурса
Чтобы создать ресурс Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, добавьте следующий объект Terraform в шаблон.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2025-03-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-03-01" |
ИсключениеВход
| Имя | Description | Ценность |
|---|---|---|
| exceptionManagedRuleSets | Управляемые наборы правил, связанные с исключением. | ExclusionManagedRuleSet[] |
| matchVariable | Переменная, с которой мы вычисляем условие исключения | RemoteAddr "RequestHeader" RequestURI (обязательный) |
| селектор | Если сопоставлениеVariable указывает на пару "ключ-значение" (например, RequestHeader), это определяет ключ. | струна |
| оператор совпадения селектора | Если сопоставлениеVariable указывает на пару "ключ-значение" (например, RequestHeader), это работает с селектором. | "Содержит" "EndsWith" "Равно" "StartsWith" |
| valueMatchOperator | Работает с допустимыми значениями для matchVariable | "Содержит" "EndsWith" "Равно" "IPMatch" "StartsWith" (обязательно) |
| values | Допустимые значения для сопоставленияVariable | строка[] |
ExclusionManagedRule (Правило ExclusionManagedRule)
| Имя | Description | Ценность |
|---|---|---|
| ruleId | Идентификатор управляемого правила. | строка (обязательно) |
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 | Ценность |
|---|---|---|
| действие | Описывает действие переопределения, которое будет применяться при совпадении правил. | 'Allow' «Оценка аномалий» "Блокировать" "JSChallenge" 'Log' |
| ruleId | Идентификатор управляемого правила. | строка (обязательно) |
| sensitivity | Описывает чувствительность переопределения, применяемую при совпадении правил. | 'High' 'Low' 'Medium' |
| государство | Состояние управляемого правила. Значение по умолчанию отключено, если оно не указано. | 'Disabled' 'Enabled' |
ManagedRulesDefinition (УправляемоеОпределение правил)
| Имя | Description | Ценность |
|---|---|---|
| Исключения | Исключения, применяемые к политике. | ИсключениеЗапись[] |
| Исключения | Исключения, применяемые к политике. | OwaspCrsExclusionEntry[] |
| managedRuleSets | Управляемые наборы правил, связанные с политикой. | ManagedRuleSet[] (обязательно) |
ManagedRuleSet (УправляемыйНабор Правил)
| Имя | Description | Ценность |
|---|---|---|
| ruleGroupOverrides | Определяет переопределение группы правил для применения к набору правил. | ManagedRuleGroupOverride[] |
| тип набора правил | Определяет используемый тип набора правил. | строка (обязательно) |
| версия набора правил | Определяет версию используемого набора правил. | строка (обязательно) |
Условие совпадения
| Имя | Description | Ценность |
|---|---|---|
| matchValues | Сопоставление значения. | string[] (обязательно) |
| matchVariables | Список переменных соответствия. | MatchVariable[] (обязательно) |
| отрицаниеConditon | Является ли это неуготным условием или нет. | bool |
| operator | Оператор, который нужно сопоставить. | 'Any' BeginsWith "Содержит" "EndsWith" "Равно" "GeoMatch" «Больше, чем» «Больше, чем Или Равно» "IPMatch" "LessThan" "LessThanOrEqual" Regex (обязательный) |
| Преобразует | Список преобразований. | Массив строк, содержащий любой из: "HtmlEntityDecode" Нижний регистр RemoveNulls "Обрезка" "Верхний регистр" UrlDecode UrlEncode |
MatchVariable (Переменная соответствия)
| Имя | Description | Ценность |
|---|---|---|
| селектор | Селектор переменной соответствия. | струна |
| variableName | Сопоставление переменной. | PostArgs QueryString RemoteAddr "RequestBody" "RequestCookies" "RequestHeaders" RequestMethod RequestUri (обязательный) |
OwaspCrsExclusionEntry
| Имя | Description | Ценность |
|---|---|---|
| exclusionManagedRuleSets | Управляемые наборы правил, связанные с исключением. | ExclusionManagedRuleSet[] |
| matchVariable | Переменная, изменяемая. | RequestArgKeys "RequestArgNames" RequestArgValues RequestCookieKeys "RequestCookieNames" "RequestCookieValues" RequestHeaderKeys "RequestHeaderNames" RequestHeaderValues (обязательный) |
| селектор | Если сопоставлениеVariable является коллекцией, оператор используется для указания элементов коллекции, к которым применяется это исключение. | строка (обязательно) |
| оператор совпадения селектора | Если 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' 'Enabled' |
PolicySettingsLogScrubbing
| Имя | Description | Ценность |
|---|---|---|
| Правила перемотки | Правила, применяемые к журналам для очистки. | WebApplicationFirewallScrubbingRules[] |
| государство | Состояние конфигурации scrubbing журнала. Значение по умолчанию включено. | 'Disabled' 'Enabled' |
Теги ресурса
| Имя | Description | Ценность |
|---|
WebApplicationFirewallCustomRule
| Имя | Description | Ценность |
|---|---|---|
| действие | Типы действий. | 'Allow' "Блокировать" "JSChallenge" Log (обязательно) |
| groupByUserSession | Список групп идентификаторов сеансов пользователя по предложениям. | GroupByUserSession[] |
| matchConditions | Список условий соответствия. | MatchCondition[] (обязательно) |
| имя | Имя ресурса, уникального в политике. Это имя можно использовать для доступа к ресурсу. | string Constraints: Максимальная длина = 128 |
| priority | Приоритет правила. Правила с более низким значением будут оцениваться перед правилами с более высоким значением. | int (обязательно) |
| rateLimitDuration | Длительность применения политики ограничения скорости. Применяется только в том случае, если значение ruleType равно RateLimitRule. | «Пять минут» "OneMin" |
| rateLimitThreshold | Пороговое значение ограничения скорости для применения в типе правила регистра — RateLimitRule. Должно быть больше или равно 1 | инт |
| ruleType | Тип правила. | 'Invalid' MatchRule RateLimitRule (обязательный) |
| государство | Описывает, включено или отключено ли настраиваемое правило. Значение по умолчанию включено, если не указано. | 'Disabled' 'Enabled' |
WebApplicationFirewallPolicyPropertiesFormat
| Имя | Description | Ценность |
|---|---|---|
| customRules | Пользовательские правила внутри политики. | WebApplicationFirewallCustomRule[] |
| managedRules | Описывает структуру managedRules. | ManagedRulesDefinition (обязательно) |
| настройки политики | PolicySettings для политики. | PolicySettings (PolicySettings) |
WebApplicationFirewallScrubbingRules
| Имя | Description | Ценность |
|---|---|---|
| matchVariable | Переменная для очистки из журналов. | "RequestArgNames" "RequestCookieNames" "RequestHeaderNames" RequestIPAddress "RequestJSONArgNames" RequestPostArgNames (обязательно) |
| селектор | При сопоставлении является коллекцией, оператор используется для указания элементов коллекции, к которым применяется это правило. | струна |
| оператор совпадения селектора | Если matchVariable является коллекцией, селектор используется для указания элементов коллекции, к которым применяется это правило. | "Равно" "EqualsAny" (обязательный) |
| государство | Определяет состояние правила очистки журналов. Значение по умолчанию включено. | 'Disabled' 'Enabled' |
Примеры использования
Примеры 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) |