Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies 2024-01-01
El tipo de recurso ApplicationGatewayWebApplicationFirewallPolicies se puede implementar con operaciones destinadas a:
- grupos de recursos: consulte comandos de implementación de grupos de recursos
Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.
Para crear un recurso Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, agregue el siguiente bicep a la plantilla.
resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2024-01-01' = {
location: 'string'
name: 'string'
properties: {
customRules: [
{
action: 'string'
groupByUserSession: [
{
groupByVariables: [
{
variableName: 'string'
}
]
}
]
matchConditions: [
{
matchValues: [
'string'
]
matchVariables: [
{
selector: 'string'
variableName: 'string'
}
]
negationConditon: bool
operator: 'string'
transforms: [
'string'
]
}
]
name: 'string'
priority: int
rateLimitDuration: 'string'
rateLimitThreshold: int
ruleType: 'string'
state: 'string'
}
]
managedRules: {
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'
}
}
tags: {
{customized property}: 'string'
}
}
Nombre | Descripción | Valor |
---|---|---|
ruleId | Identificador de la regla administrada. | string (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
ruleGroupName | Grupo de reglas administradas para la exclusión. | string (obligatorio) |
reglas | Lista de reglas que se excluirán. Si no se especifica ninguno, se excluirán todas las reglas del grupo. | ExclusionManagedRule[] |
Nombre | Descripción | Valor |
---|---|---|
ruleGroups | Define los grupos de reglas que se aplicarán al conjunto de reglas. | ExclusionManagedRuleGroup[] |
ruleSetType | Define el tipo de conjunto de reglas que se va a usar. | string (obligatorio) |
ruleSetVersion | Define la versión del conjunto de reglas que se va a usar. | string (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
groupByVariables | Lista de variables de cláusula group by. | GroupByVariable[] (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
variableName | Variable de cláusula User Session. | 'ClientAddr' 'GeoLocation' 'None' (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
acción | Describe la acción de invalidación que se va a aplicar cuando la regla coincide. | 'Permitir' 'AnomalyScoring' 'Bloquear' 'JSChallenge' 'Log' |
ruleId | Identificador de la regla administrada. | string (obligatorio) |
estado | Estado de la regla administrada. El valor predeterminado es Deshabilitado si no se especifica. | 'Deshabilitado' 'Habilitado' |
Nombre | Descripción | Valor |
---|---|---|
Exclusiones | Exclusiones que se aplican a la directiva. | OwaspCrsExclusionEntry[] |
managedRuleSets | Conjuntos de reglas administradas asociados a la directiva. | ManagedRuleSet[] (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
selector | Selector de variable de coincidencia. | cuerda |
variableName | Coincidencia de variable. | 'PostArgs' 'QueryString' 'RemoteAddr' 'RequestBody' 'RequestCookies' 'RequestHeaders' 'RequestMethod' 'RequestUri' (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
ubicación | Ubicación del recurso. | cuerda |
nombre | El nombre del recurso | cuerda Restricciones: Longitud máxima = 128 (obligatorio) |
Propiedades | Propiedades de la directiva de firewall de aplicaciones web. | WebApplicationFirewallPolicyPropertiesFormat |
Etiquetas | Etiquetas de recursos | Diccionario de nombres y valores de etiqueta. Consulte etiquetas de en plantillas |
Nombre | Descripción | Valor |
---|---|---|
exclusionManagedRuleSets | Conjuntos de reglas administradas asociados a la exclusión. | ExclusionManagedRuleSet[] |
matchVariable | Variable que se va a excluir. | 'RequestArgKeys' 'RequestArgNames' 'RequestArgValues' 'RequestCookieKeys' 'RequestCookieNames' 'RequestCookieValues' 'RequestHeaderKeys' 'RequestHeaderNames' 'RequestHeaderValues' (obligatorio) |
selector | Cuando matchVariable es una colección, el operador se usa para especificar a qué elementos de la colección se aplica esta exclusión. | string (obligatorio) |
selectorMatchOperator | Cuando matchVariable es una colección, opera en el selector para especificar a qué elementos de la colección se aplica esta exclusión. | 'Contains' 'EndsWith' 'Equals' 'EqualsAny' 'StartsWith' (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
customBlockResponseBody | Si el tipo de acción está bloqueado, el cliente puede invalidar el cuerpo de la respuesta. El cuerpo debe especificarse en la codificación base64. | cuerda Restricciones: Longitud máxima = 32768 Patrón = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$ |
customBlockResponseStatusCode | Si el tipo de acción está bloqueado, el cliente puede invalidar el código de estado de respuesta. | Int Restricciones: Valor mínimo = 0 |
fileUploadEnforcement | Si permite que WAF aplique límites de carga de archivos. | Bool |
fileUploadLimitInMb | Tamaño máximo de carga de archivos en Mb para WAF. | Int Restricciones: Valor mínimo = 0 |
jsChallengeCookieExpirationInMins | Tiempo de expiración de cookies de desafío de JavaScript del firewall de aplicaciones web en cuestión de minutos. | Int Restricciones: Valor mínimo = 5 Valor máximo = 1440 |
logScrubbing | Para limpiar los campos de registro confidenciales | policySettingsLogScrubbing |
maxRequestBodySizeInKb | Tamaño máximo del cuerpo de la solicitud en Kb para WAF. | Int Restricciones: Valor mínimo = 8 |
modo | Modo de la directiva. | "Detección" "Prevención" |
requestBodyCheck | Indica si se permite que WAF compruebe el cuerpo de la solicitud. | Bool |
requestBodyEnforcement | Indica si se permite que WAF aplique límites del cuerpo de la solicitud. | Bool |
requestBodyInspectLimitInKB | Límite máximo de inspección en KB para la inspección del cuerpo de la solicitud para WAF. | Int |
estado | Estado de la directiva. | 'Deshabilitado' 'Habilitado' |
Nombre | Descripción | Valor |
---|---|---|
scrubbingRules | Las reglas que se aplican a los registros para la limpieza. | webApplicationFirewallScrubbingRules[] |
estado | Estado de la configuración de limpieza de registros. El valor predeterminado es Habilitado. | 'Deshabilitado' 'Habilitado' |
Nombre | Descripción | Valor |
---|
Nombre | Descripción | Valor |
---|---|---|
acción | Tipo de acciones. | 'Permitir' 'Bloquear' 'JSChallenge' 'Log' (obligatorio) |
groupByUserSession | Lista de cláusulas de agrupación por identificador de sesión de usuario. | groupByUserSession[] |
matchConditions | Lista de condiciones de coincidencia. | MatchCondition [] (obligatorio) |
nombre | Nombre del recurso que es único dentro de una directiva. Este nombre se puede usar para acceder al recurso. | cuerda Restricciones: Longitud máxima = 128 |
prioridad | Prioridad de la regla. Las reglas con un valor inferior se evaluarán antes de que las reglas con un valor mayor. | int (obligatorio) |
rateLimitDuration | Duración sobre la que se aplicará la directiva límite de velocidad. Solo se aplica cuando ruleType es RateLimitRule. | "FiveMins" 'OneMin' |
rateLimitThreshold | Umbral de límite de velocidad para aplicar en caso de que ruleType sea RateLimitRule. Debe ser mayor o igual que 1 | Int |
ruleType | Tipo de regla. | 'No válido' 'MatchRule' 'RateLimitRule' (obligatorio) |
estado | Describe si la regla personalizada está habilitada o deshabilitada. El valor predeterminado es Habilitado si no se especifica. | 'Deshabilitado' 'Habilitado' |
Nombre | Descripción | Valor |
---|---|---|
customRules | Reglas personalizadas dentro de la directiva. | webApplicationFirewallCustomRule[] |
managedRules | Describe la estructura managedRules. | managedRulesDefinition (obligatorio) |
policySettings | PolicySettings para policy. | PolicySettings |
Nombre | Descripción | Valor |
---|---|---|
matchVariable | Variable que se va a limpiar de los registros. | 'RequestArgNames' 'RequestCookieNames' 'RequestHeaderNames' 'RequestIPAddress' 'RequestJSONArgNames' 'RequestPostArgNames' (obligatorio) |
selector | Cuando matchVariable es una colección, el operador se usa para especificar a qué elementos de la colección se aplica esta regla. | cuerda |
selectorMatchOperator | Cuando matchVariable es una colección, opera en el selector para especificar a qué elementos de la colección se aplica esta regla. | 'Equals' 'EqualsAny' (obligatorio) |
estado | Define el estado de la regla de limpieza de registros. El valor predeterminado es Habilitado. | 'Deshabilitado' 'Habilitado' |
Los siguientes módulos comprobados de Azure se pueden usar para implementar este tipo de recurso.
Módulo | Descripción |
---|---|
directiva de firewall de aplicaciones web (WAF) de Application Gateway | Módulo de recursos de AVM para la directiva de firewall de aplicaciones web (WAF) de Application Gateway |
Los siguientes plantillas de inicio rápido de Azure contienen ejemplos de Bicep para implementar este tipo de recurso.
Archivo de Bicep | Descripción |
---|---|
clúster de AKS con una puerta de enlace NAT y un de Application Gateway | En este ejemplo se muestra cómo implementar un clúster de AKS con NAT Gateway para las conexiones salientes y una instancia de Application Gateway para las conexiones entrantes. |
clúster de AKS con el controlador de entrada de Application Gateway | En este ejemplo se muestra cómo implementar un clúster de AKS con Application Gateway, Application Gateway Ingress Controller, Azure Container Registry, Log Analytics y Key Vault |
Application Gateway para la de enrutamiento basado en rutas de dirección URL | Esta plantilla crea una instancia de Application Gateway y la configura para el enrutamiento basado en rutas de acceso url. |
Application Gateway con waf y la directiva de firewall | Esta plantilla crea una instancia de Application Gateway con WAF configurado junto con una directiva de firewall. |
Creación de una instancia de Azure WAF v2 en Azure Application Gateway | Esta plantilla crea un firewall de aplicaciones web de Azure v2 en Azure Application Gateway con dos servidores de Windows Server 2016 en el grupo de back-end |
Front Door Estándar/Premium con el origen de Application Gateway | Esta plantilla crea una instancia de Front Door Standard/Premium y una instancia de Application Gateway y usa una directiva de NSG y WAF para validar que el tráfico ha llegado a través del origen de Front Door. |
Front Door con instancias de contenedor y Application Gateway | Esta plantilla crea una instancia de Front Door Standard/Premium con un grupo de contenedores y Application Gateway. |
El tipo de recurso ApplicationGatewayWebApplicationFirewallPolicies se puede implementar con operaciones destinadas a:
- grupos de recursos: consulte comandos de implementación de grupos de recursos
Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.
Para crear un recurso Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, agregue el siguiente JSON a la plantilla.
{
"type": "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies",
"apiVersion": "2024-01-01",
"name": "string",
"location": "string",
"properties": {
"customRules": [
{
"action": "string",
"groupByUserSession": [
{
"groupByVariables": [
{
"variableName": "string"
}
]
}
],
"matchConditions": [
{
"matchValues": [ "string" ],
"matchVariables": [
{
"selector": "string",
"variableName": "string"
}
],
"negationConditon": "bool",
"operator": "string",
"transforms": [ "string" ]
}
],
"name": "string",
"priority": "int",
"rateLimitDuration": "string",
"rateLimitThreshold": "int",
"ruleType": "string",
"state": "string"
}
],
"managedRules": {
"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"
}
},
"tags": {
"{customized property}": "string"
}
}
Nombre | Descripción | Valor |
---|---|---|
ruleId | Identificador de la regla administrada. | string (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
ruleGroupName | Grupo de reglas administradas para la exclusión. | string (obligatorio) |
reglas | Lista de reglas que se excluirán. Si no se especifica ninguno, se excluirán todas las reglas del grupo. | ExclusionManagedRule[] |
Nombre | Descripción | Valor |
---|---|---|
ruleGroups | Define los grupos de reglas que se aplicarán al conjunto de reglas. | ExclusionManagedRuleGroup[] |
ruleSetType | Define el tipo de conjunto de reglas que se va a usar. | string (obligatorio) |
ruleSetVersion | Define la versión del conjunto de reglas que se va a usar. | string (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
groupByVariables | Lista de variables de cláusula group by. | GroupByVariable[] (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
variableName | Variable de cláusula User Session. | 'ClientAddr' 'GeoLocation' 'None' (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
acción | Describe la acción de invalidación que se va a aplicar cuando la regla coincide. | 'Permitir' 'AnomalyScoring' 'Bloquear' 'JSChallenge' 'Log' |
ruleId | Identificador de la regla administrada. | string (obligatorio) |
estado | Estado de la regla administrada. El valor predeterminado es Deshabilitado si no se especifica. | 'Deshabilitado' 'Habilitado' |
Nombre | Descripción | Valor |
---|---|---|
Exclusiones | Exclusiones que se aplican a la directiva. | OwaspCrsExclusionEntry[] |
managedRuleSets | Conjuntos de reglas administradas asociados a la directiva. | ManagedRuleSet[] (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
selector | Selector de variable de coincidencia. | cuerda |
variableName | Coincidencia de variable. | 'PostArgs' 'QueryString' 'RemoteAddr' 'RequestBody' 'RequestCookies' 'RequestHeaders' 'RequestMethod' 'RequestUri' (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
apiVersion | La versión de api | '2024-01-01' |
ubicación | Ubicación del recurso. | cuerda |
nombre | El nombre del recurso | cuerda Restricciones: Longitud máxima = 128 (obligatorio) |
Propiedades | Propiedades de la directiva de firewall de aplicaciones web. | WebApplicationFirewallPolicyPropertiesFormat |
Etiquetas | Etiquetas de recursos | Diccionario de nombres y valores de etiqueta. Consulte etiquetas de en plantillas |
tipo | El tipo de recurso | 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies' |
Nombre | Descripción | Valor |
---|---|---|
exclusionManagedRuleSets | Conjuntos de reglas administradas asociados a la exclusión. | ExclusionManagedRuleSet[] |
matchVariable | Variable que se va a excluir. | 'RequestArgKeys' 'RequestArgNames' 'RequestArgValues' 'RequestCookieKeys' 'RequestCookieNames' 'RequestCookieValues' 'RequestHeaderKeys' 'RequestHeaderNames' 'RequestHeaderValues' (obligatorio) |
selector | Cuando matchVariable es una colección, el operador se usa para especificar a qué elementos de la colección se aplica esta exclusión. | string (obligatorio) |
selectorMatchOperator | Cuando matchVariable es una colección, opera en el selector para especificar a qué elementos de la colección se aplica esta exclusión. | 'Contains' 'EndsWith' 'Equals' 'EqualsAny' 'StartsWith' (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
customBlockResponseBody | Si el tipo de acción está bloqueado, el cliente puede invalidar el cuerpo de la respuesta. El cuerpo debe especificarse en la codificación base64. | cuerda Restricciones: Longitud máxima = 32768 Patrón = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$ |
customBlockResponseStatusCode | Si el tipo de acción está bloqueado, el cliente puede invalidar el código de estado de respuesta. | Int Restricciones: Valor mínimo = 0 |
fileUploadEnforcement | Si permite que WAF aplique límites de carga de archivos. | Bool |
fileUploadLimitInMb | Tamaño máximo de carga de archivos en Mb para WAF. | Int Restricciones: Valor mínimo = 0 |
jsChallengeCookieExpirationInMins | Tiempo de expiración de cookies de desafío de JavaScript del firewall de aplicaciones web en cuestión de minutos. | Int Restricciones: Valor mínimo = 5 Valor máximo = 1440 |
logScrubbing | Para limpiar los campos de registro confidenciales | policySettingsLogScrubbing |
maxRequestBodySizeInKb | Tamaño máximo del cuerpo de la solicitud en Kb para WAF. | Int Restricciones: Valor mínimo = 8 |
modo | Modo de la directiva. | "Detección" "Prevención" |
requestBodyCheck | Indica si se permite que WAF compruebe el cuerpo de la solicitud. | Bool |
requestBodyEnforcement | Indica si se permite que WAF aplique límites del cuerpo de la solicitud. | Bool |
requestBodyInspectLimitInKB | Límite máximo de inspección en KB para la inspección del cuerpo de la solicitud para WAF. | Int |
estado | Estado de la directiva. | 'Deshabilitado' 'Habilitado' |
Nombre | Descripción | Valor |
---|---|---|
scrubbingRules | Las reglas que se aplican a los registros para la limpieza. | webApplicationFirewallScrubbingRules[] |
estado | Estado de la configuración de limpieza de registros. El valor predeterminado es Habilitado. | 'Deshabilitado' 'Habilitado' |
Nombre | Descripción | Valor |
---|
Nombre | Descripción | Valor |
---|---|---|
acción | Tipo de acciones. | 'Permitir' 'Bloquear' 'JSChallenge' 'Log' (obligatorio) |
groupByUserSession | Lista de cláusulas de agrupación por identificador de sesión de usuario. | groupByUserSession[] |
matchConditions | Lista de condiciones de coincidencia. | MatchCondition [] (obligatorio) |
nombre | Nombre del recurso que es único dentro de una directiva. Este nombre se puede usar para acceder al recurso. | cuerda Restricciones: Longitud máxima = 128 |
prioridad | Prioridad de la regla. Las reglas con un valor inferior se evaluarán antes de que las reglas con un valor mayor. | int (obligatorio) |
rateLimitDuration | Duración sobre la que se aplicará la directiva límite de velocidad. Solo se aplica cuando ruleType es RateLimitRule. | "FiveMins" 'OneMin' |
rateLimitThreshold | Umbral de límite de velocidad para aplicar en caso de que ruleType sea RateLimitRule. Debe ser mayor o igual que 1 | Int |
ruleType | Tipo de regla. | 'No válido' 'MatchRule' 'RateLimitRule' (obligatorio) |
estado | Describe si la regla personalizada está habilitada o deshabilitada. El valor predeterminado es Habilitado si no se especifica. | 'Deshabilitado' 'Habilitado' |
Nombre | Descripción | Valor |
---|---|---|
customRules | Reglas personalizadas dentro de la directiva. | webApplicationFirewallCustomRule[] |
managedRules | Describe la estructura managedRules. | managedRulesDefinition (obligatorio) |
policySettings | PolicySettings para policy. | PolicySettings |
Nombre | Descripción | Valor |
---|---|---|
matchVariable | Variable que se va a limpiar de los registros. | 'RequestArgNames' 'RequestCookieNames' 'RequestHeaderNames' 'RequestIPAddress' 'RequestJSONArgNames' 'RequestPostArgNames' (obligatorio) |
selector | Cuando matchVariable es una colección, el operador se usa para especificar a qué elementos de la colección se aplica esta regla. | cuerda |
selectorMatchOperator | Cuando matchVariable es una colección, opera en el selector para especificar a qué elementos de la colección se aplica esta regla. | 'Equals' 'EqualsAny' (obligatorio) |
estado | Define el estado de la regla de limpieza de registros. El valor predeterminado es Habilitado. | 'Deshabilitado' 'Habilitado' |
Los siguientes plantillas de inicio rápido de Azure implementar este tipo de recurso.
Plantilla | Descripción |
---|---|
clúster de AKS con una puerta de enlace NAT y un de Application Gateway |
En este ejemplo se muestra cómo implementar un clúster de AKS con NAT Gateway para las conexiones salientes y una instancia de Application Gateway para las conexiones entrantes. |
clúster de AKS con el controlador de entrada de Application Gateway |
En este ejemplo se muestra cómo implementar un clúster de AKS con Application Gateway, Application Gateway Ingress Controller, Azure Container Registry, Log Analytics y Key Vault |
Application Gateway para la de enrutamiento basado en rutas de dirección URL |
Esta plantilla crea una instancia de Application Gateway y la configura para el enrutamiento basado en rutas de acceso url. |
Application Gateway con waf y la directiva de firewall |
Esta plantilla crea una instancia de Application Gateway con WAF configurado junto con una directiva de firewall. |
Creación de una instancia de Azure WAF v2 en Azure Application Gateway |
Esta plantilla crea un firewall de aplicaciones web de Azure v2 en Azure Application Gateway con dos servidores de Windows Server 2016 en el grupo de back-end |
Front Door Estándar/Premium con el origen de Application Gateway |
Esta plantilla crea una instancia de Front Door Standard/Premium y una instancia de Application Gateway y usa una directiva de NSG y WAF para validar que el tráfico ha llegado a través del origen de Front Door. |
Front Door con instancias de contenedor y Application Gateway |
Esta plantilla crea una instancia de Front Door Standard/Premium con un grupo de contenedores y Application Gateway. |
El tipo de recurso ApplicationGatewayWebApplicationFirewallPolicies se puede implementar con operaciones destinadas a:
- grupos de recursos de
Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.
Para crear un recurso Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, agregue el siguiente terraform a la plantilla.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2024-01-01"
name = "string"
location = "string"
tags = {
{customized property} = "string"
}
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"
}
}
})
}
Nombre | Descripción | Valor |
---|---|---|
ruleId | Identificador de la regla administrada. | string (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
ruleGroupName | Grupo de reglas administradas para la exclusión. | string (obligatorio) |
reglas | Lista de reglas que se excluirán. Si no se especifica ninguno, se excluirán todas las reglas del grupo. | ExclusionManagedRule[] |
Nombre | Descripción | Valor |
---|---|---|
ruleGroups | Define los grupos de reglas que se aplicarán al conjunto de reglas. | ExclusionManagedRuleGroup[] |
ruleSetType | Define el tipo de conjunto de reglas que se va a usar. | string (obligatorio) |
ruleSetVersion | Define la versión del conjunto de reglas que se va a usar. | string (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
groupByVariables | Lista de variables de cláusula group by. | GroupByVariable[] (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
variableName | Variable de cláusula User Session. | 'ClientAddr' 'GeoLocation' 'None' (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
acción | Describe la acción de invalidación que se va a aplicar cuando la regla coincide. | 'Permitir' 'AnomalyScoring' 'Bloquear' 'JSChallenge' 'Log' |
ruleId | Identificador de la regla administrada. | string (obligatorio) |
estado | Estado de la regla administrada. El valor predeterminado es Deshabilitado si no se especifica. | 'Deshabilitado' 'Habilitado' |
Nombre | Descripción | Valor |
---|---|---|
Exclusiones | Exclusiones que se aplican a la directiva. | OwaspCrsExclusionEntry[] |
managedRuleSets | Conjuntos de reglas administradas asociados a la directiva. | ManagedRuleSet[] (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
selector | Selector de variable de coincidencia. | cuerda |
variableName | Coincidencia de variable. | 'PostArgs' 'QueryString' 'RemoteAddr' 'RequestBody' 'RequestCookies' 'RequestHeaders' 'RequestMethod' 'RequestUri' (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
ubicación | Ubicación del recurso. | cuerda |
nombre | El nombre del recurso | cuerda Restricciones: Longitud máxima = 128 (obligatorio) |
Propiedades | Propiedades de la directiva de firewall de aplicaciones web. | WebApplicationFirewallPolicyPropertiesFormat |
Etiquetas | Etiquetas de recursos | Diccionario de nombres y valores de etiqueta. |
tipo | El tipo de recurso | "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2024-01-01" |
Nombre | Descripción | Valor |
---|---|---|
exclusionManagedRuleSets | Conjuntos de reglas administradas asociados a la exclusión. | ExclusionManagedRuleSet[] |
matchVariable | Variable que se va a excluir. | 'RequestArgKeys' 'RequestArgNames' 'RequestArgValues' 'RequestCookieKeys' 'RequestCookieNames' 'RequestCookieValues' 'RequestHeaderKeys' 'RequestHeaderNames' 'RequestHeaderValues' (obligatorio) |
selector | Cuando matchVariable es una colección, el operador se usa para especificar a qué elementos de la colección se aplica esta exclusión. | string (obligatorio) |
selectorMatchOperator | Cuando matchVariable es una colección, opera en el selector para especificar a qué elementos de la colección se aplica esta exclusión. | 'Contains' 'EndsWith' 'Equals' 'EqualsAny' 'StartsWith' (obligatorio) |
Nombre | Descripción | Valor |
---|---|---|
customBlockResponseBody | Si el tipo de acción está bloqueado, el cliente puede invalidar el cuerpo de la respuesta. El cuerpo debe especificarse en la codificación base64. | cuerda Restricciones: Longitud máxima = 32768 Patrón = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$ |
customBlockResponseStatusCode | Si el tipo de acción está bloqueado, el cliente puede invalidar el código de estado de respuesta. | Int Restricciones: Valor mínimo = 0 |
fileUploadEnforcement | Si permite que WAF aplique límites de carga de archivos. | Bool |
fileUploadLimitInMb | Tamaño máximo de carga de archivos en Mb para WAF. | Int Restricciones: Valor mínimo = 0 |
jsChallengeCookieExpirationInMins | Tiempo de expiración de cookies de desafío de JavaScript del firewall de aplicaciones web en cuestión de minutos. | Int Restricciones: Valor mínimo = 5 Valor máximo = 1440 |
logScrubbing | Para limpiar los campos de registro confidenciales | policySettingsLogScrubbing |
maxRequestBodySizeInKb | Tamaño máximo del cuerpo de la solicitud en Kb para WAF. | Int Restricciones: Valor mínimo = 8 |
modo | Modo de la directiva. | "Detección" "Prevención" |
requestBodyCheck | Indica si se permite que WAF compruebe el cuerpo de la solicitud. | Bool |
requestBodyEnforcement | Indica si se permite que WAF aplique límites del cuerpo de la solicitud. | Bool |
requestBodyInspectLimitInKB | Límite máximo de inspección en KB para la inspección del cuerpo de la solicitud para WAF. | Int |
estado | Estado de la directiva. | 'Deshabilitado' 'Habilitado' |
Nombre | Descripción | Valor |
---|---|---|
scrubbingRules | Las reglas que se aplican a los registros para la limpieza. | webApplicationFirewallScrubbingRules[] |
estado | Estado de la configuración de limpieza de registros. El valor predeterminado es Habilitado. | 'Deshabilitado' 'Habilitado' |
Nombre | Descripción | Valor |
---|
Nombre | Descripción | Valor |
---|---|---|
acción | Tipo de acciones. | 'Permitir' 'Bloquear' 'JSChallenge' 'Log' (obligatorio) |
groupByUserSession | Lista de cláusulas de agrupación por identificador de sesión de usuario. | groupByUserSession[] |
matchConditions | Lista de condiciones de coincidencia. | MatchCondition [] (obligatorio) |
nombre | Nombre del recurso que es único dentro de una directiva. Este nombre se puede usar para acceder al recurso. | cuerda Restricciones: Longitud máxima = 128 |
prioridad | Prioridad de la regla. Las reglas con un valor inferior se evaluarán antes de que las reglas con un valor mayor. | int (obligatorio) |
rateLimitDuration | Duración sobre la que se aplicará la directiva límite de velocidad. Solo se aplica cuando ruleType es RateLimitRule. | "FiveMins" 'OneMin' |
rateLimitThreshold | Umbral de límite de velocidad para aplicar en caso de que ruleType sea RateLimitRule. Debe ser mayor o igual que 1 | Int |
ruleType | Tipo de regla. | 'No válido' 'MatchRule' 'RateLimitRule' (obligatorio) |
estado | Describe si la regla personalizada está habilitada o deshabilitada. El valor predeterminado es Habilitado si no se especifica. | 'Deshabilitado' 'Habilitado' |
Nombre | Descripción | Valor |
---|---|---|
customRules | Reglas personalizadas dentro de la directiva. | webApplicationFirewallCustomRule[] |
managedRules | Describe la estructura managedRules. | managedRulesDefinition (obligatorio) |
policySettings | PolicySettings para policy. | PolicySettings |
Nombre | Descripción | Valor |
---|---|---|
matchVariable | Variable que se va a limpiar de los registros. | 'RequestArgNames' 'RequestCookieNames' 'RequestHeaderNames' 'RequestIPAddress' 'RequestJSONArgNames' 'RequestPostArgNames' (obligatorio) |
selector | Cuando matchVariable es una colección, el operador se usa para especificar a qué elementos de la colección se aplica esta regla. | cuerda |
selectorMatchOperator | Cuando matchVariable es una colección, opera en el selector para especificar a qué elementos de la colección se aplica esta regla. | 'Equals' 'EqualsAny' (obligatorio) |
estado | Define el estado de la regla de limpieza de registros. El valor predeterminado es Habilitado. | 'Deshabilitado' 'Habilitado' |
Los siguientes módulos comprobados de Azure se pueden usar para implementar este tipo de recurso.
Módulo | Descripción |
---|---|
directiva de firewall de aplicaciones web (WAF) de Application Gateway | Módulo de recursos de AVM para la directiva de firewall de aplicaciones web (WAF) de Application Gateway |