Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies 2023-09-01
Определение ресурса Bicep
Тип ресурса ApplicationGatewayWebApplicationFirewallPolicies можно развернуть с помощью операций, предназначенных для:
- Группы ресурсов — см. команды развертывания групп ресурсов.
Список измененных свойств в каждой версии API см. в журнале изменений.
Формат ресурсов
Чтобы создать ресурс Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, добавьте следующий Bicep в шаблон.
resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-09-01' = {
name: 'string'
location: 'string'
tags: {
tagName1: 'tagValue1'
tagName2: 'tagValue2'
}
properties: {
customRules: [
{
action: 'string'
groupByUserSession: [
{
groupByVariables: [
{
variableName: 'string'
}
]
}
]
matchConditions: [
{
matchValues: [
'string'
]
matchVariables: [
{
selector: 'string'
variableName: 'string'
}
]
negationConditon: bool
operator: 'string'
transforms: [
'string'
]
}
]
name: 'string'
priority: int
rateLimitDuration: 'string'
rateLimitThreshold: int
ruleType: 'string'
state: 'string'
}
]
managedRules: {
exclusions: [
{
exclusionManagedRuleSets: [
{
ruleGroups: [
{
ruleGroupName: 'string'
rules: [
{
ruleId: 'string'
}
]
}
]
ruleSetType: 'string'
ruleSetVersion: 'string'
}
]
matchVariable: 'string'
selector: 'string'
selectorMatchOperator: 'string'
}
]
managedRuleSets: [
{
ruleGroupOverrides: [
{
ruleGroupName: 'string'
rules: [
{
action: 'string'
ruleId: 'string'
state: 'string'
}
]
}
]
ruleSetType: 'string'
ruleSetVersion: 'string'
}
]
}
policySettings: {
customBlockResponseBody: 'string'
customBlockResponseStatusCode: int
fileUploadEnforcement: bool
fileUploadLimitInMb: int
logScrubbing: {
scrubbingRules: [
{
matchVariable: 'string'
selector: 'string'
selectorMatchOperator: 'string'
state: 'string'
}
]
state: 'string'
}
maxRequestBodySizeInKb: int
mode: 'string'
requestBodyCheck: bool
requestBodyEnforcement: bool
requestBodyInspectLimitInKB: int
state: 'string'
}
}
}
Значения свойств
ApplicationGatewayWebApplicationFirewallPolicies
Имя | Описание | Значение |
---|---|---|
name | имя ресурса. | 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 | Переменная предложения сеанса пользователя. | ClientAddr 'GeoLocation' 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 является коллекцией, оператор используется для указания элементов в коллекции, к которым применяется это исключение. | строка (обязательно) |
selectorMatchOperator | Если matchVariable является коллекцией, с помощью селектора укажите, к каким элементам в коллекции применяется это исключение. | "Contains" 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' Журнал |
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 |
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 Брандмауэр веб-приложений версии 2 на Шлюз приложений Azure с двумя Windows Server 2016 серверами во внутреннем пуле. |
Кластер AKS со шлюзом NAT и Шлюз приложений |
В этом примере показано, как развернуть кластер AKS со шлюзом NAT для исходящих подключений и Шлюз приложений для входящих подключений. |
Front Door уровня "Стандартный" или "Премиум" с источником Шлюз приложений |
Этот шаблон создает экземпляр Front Door уровня "Стандартный" или "Премиум" и экземпляр Шлюз приложений, а также использует политику NSG и WAF для проверки того, что трафик проходит через источник Front Door. |
Front Door с Экземпляры контейнеров и Шлюз приложений |
Этот шаблон создает Front Door уровня "Стандартный" или "Премиум" с группой контейнеров и Шлюз приложений. |
Кластер AKS с контроллером входящего трафика Шлюз приложений |
В этом примере показано, как развернуть кластер AKS с Шлюз приложений, контроллером Шлюз приложений входящего трафика, Реестр контейнеров Azure, Log Analytics и Key Vault |
Шлюз приложений с WAF и политикой брандмауэра |
Этот шаблон создает Шлюз приложений с настроенным WAF и политикой брандмауэра. |
Определение ресурса шаблона ARM
Тип ресурса ApplicationGatewayWebApplicationFirewallPolicies можно развернуть с помощью следующих операций:
- Группы ресурсов — см. команды развертывания группы ресурсов.
Список измененных свойств в каждой версии API см. в журнале изменений.
Формат ресурсов
Чтобы создать ресурс Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, добавьте следующий код JSON в шаблон.
{
"type": "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies",
"apiVersion": "2023-09-01",
"name": "string",
"location": "string",
"tags": {
"tagName1": "tagValue1",
"tagName2": "tagValue2"
},
"properties": {
"customRules": [
{
"action": "string",
"groupByUserSession": [
{
"groupByVariables": [
{
"variableName": "string"
}
]
}
],
"matchConditions": [
{
"matchValues": [ "string" ],
"matchVariables": [
{
"selector": "string",
"variableName": "string"
}
],
"negationConditon": "bool",
"operator": "string",
"transforms": [ "string" ]
}
],
"name": "string",
"priority": "int",
"rateLimitDuration": "string",
"rateLimitThreshold": "int",
"ruleType": "string",
"state": "string"
}
],
"managedRules": {
"exclusions": [
{
"exclusionManagedRuleSets": [
{
"ruleGroups": [
{
"ruleGroupName": "string",
"rules": [
{
"ruleId": "string"
}
]
}
],
"ruleSetType": "string",
"ruleSetVersion": "string"
}
],
"matchVariable": "string",
"selector": "string",
"selectorMatchOperator": "string"
}
],
"managedRuleSets": [
{
"ruleGroupOverrides": [
{
"ruleGroupName": "string",
"rules": [
{
"action": "string",
"ruleId": "string",
"state": "string"
}
]
}
],
"ruleSetType": "string",
"ruleSetVersion": "string"
}
]
},
"policySettings": {
"customBlockResponseBody": "string",
"customBlockResponseStatusCode": "int",
"fileUploadEnforcement": "bool",
"fileUploadLimitInMb": "int",
"logScrubbing": {
"scrubbingRules": [
{
"matchVariable": "string",
"selector": "string",
"selectorMatchOperator": "string",
"state": "string"
}
],
"state": "string"
},
"maxRequestBodySizeInKb": "int",
"mode": "string",
"requestBodyCheck": "bool",
"requestBodyEnforcement": "bool",
"requestBodyInspectLimitInKB": "int",
"state": "string"
}
}
}
Значения свойств
ApplicationGatewayWebApplicationFirewallPolicies
Имя | Описание | Значение |
---|---|---|
тип | Тип ресурса | Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies |
версия_API | Версия API ресурсов | '2023-09-01' |
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 | Переменная предложения сеанса пользователя. | ClientAddr 'GeoLocation' 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 | Определяет используемый тип набора правил. | 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 |
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 Брандмауэр веб-приложений версии 2 на Шлюз приложений Azure с двумя Windows Server 2016 серверами во внутреннем пуле. |
Кластер AKS со шлюзом NAT и Шлюз приложений |
В этом примере показано, как развернуть кластер AKS со шлюзом NAT для исходящих подключений и Шлюз приложений для входящих подключений. |
Front Door уровня "Стандартный" или "Премиум" с источником Шлюз приложений |
Этот шаблон создает экземпляр Front Door уровня "Стандартный" или "Премиум" и экземпляр Шлюз приложений, а также использует политику NSG и WAF для проверки того, что трафик проходит через источник Front Door. |
Front Door с Экземпляры контейнеров и Шлюз приложений |
Этот шаблон создает Front Door уровня "Стандартный" или "Премиум" с группой контейнеров и Шлюз приложений. |
Кластер AKS с контроллером входящего трафика Шлюз приложений |
В этом примере показано, как развернуть кластер AKS с Шлюз приложений, контроллером Шлюз приложений входящего трафика, Реестр контейнеров Azure, Log Analytics и Key Vault |
Шлюз приложений с WAF и политикой брандмауэра |
Этот шаблон создает Шлюз приложений с настроенным WAF и политикой брандмауэра. |
Определение ресурса Terraform (поставщик AzAPI)
Тип ресурса ApplicationGatewayWebApplicationFirewallPolicies можно развернуть с помощью следующих операций:
- Группы ресурсов
Список измененных свойств в каждой версии API см. в журнале изменений.
Формат ресурсов
Чтобы создать ресурс Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, добавьте в шаблон следующую terraform.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-09-01"
name = "string"
location = "string"
parent_id = "string"
tags = {
tagName1 = "tagValue1"
tagName2 = "tagValue2"
}
body = jsonencode({
properties = {
customRules = [
{
action = "string"
groupByUserSession = [
{
groupByVariables = [
{
variableName = "string"
}
]
}
]
matchConditions = [
{
matchValues = [
"string"
]
matchVariables = [
{
selector = "string"
variableName = "string"
}
]
negationConditon = bool
operator = "string"
transforms = [
"string"
]
}
]
name = "string"
priority = int
rateLimitDuration = "string"
rateLimitThreshold = int
ruleType = "string"
state = "string"
}
]
managedRules = {
exclusions = [
{
exclusionManagedRuleSets = [
{
ruleGroups = [
{
ruleGroupName = "string"
rules = [
{
ruleId = "string"
}
]
}
]
ruleSetType = "string"
ruleSetVersion = "string"
}
]
matchVariable = "string"
selector = "string"
selectorMatchOperator = "string"
}
]
managedRuleSets = [
{
ruleGroupOverrides = [
{
ruleGroupName = "string"
rules = [
{
action = "string"
ruleId = "string"
state = "string"
}
]
}
]
ruleSetType = "string"
ruleSetVersion = "string"
}
]
}
policySettings = {
customBlockResponseBody = "string"
customBlockResponseStatusCode = int
fileUploadEnforcement = bool
fileUploadLimitInMb = int
logScrubbing = {
scrubbingRules = [
{
matchVariable = "string"
selector = "string"
selectorMatchOperator = "string"
state = "string"
}
]
state = "string"
}
maxRequestBodySizeInKb = int
mode = "string"
requestBodyCheck = bool
requestBodyEnforcement = bool
requestBodyInspectLimitInKB = int
state = "string"
}
}
})
}
Значения свойств
ApplicationGatewayWebApplicationFirewallPolicies
Имя | Описание | Значение |
---|---|---|
тип | Тип ресурса | "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-09-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 |
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" (обязательно) |
Состояние | Определяет состояние правила очистки журнала. Значение по умолчанию — Включено. | "Отключено" "Включено" |