Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies 2023-04-01

Definición de recursos de Bicep

El tipo de recurso ApplicationGatewayWebApplicationFirewallPolicies se puede implementar con operaciones destinadas a:

Para obtener una lista de las propiedades modificadas en cada versión de api, consulte registro de cambios.

Formato de los recursos

Para crear un recurso Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, agregue el siguiente bicep a la plantilla.

resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-04-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'
    }
  }
}

Valores de propiedad

ApplicationGatewayWebApplicationFirewallPolicies

Nombre Descripción Value
name El nombre del recurso string (obligatorio)
ubicación Ubicación del recurso string
etiquetas Etiquetas del recurso. Diccionario de nombres y valores de etiqueta. Consulte Etiquetas en plantillas.
properties Propiedades de la directiva de firewall de aplicaciones web. WebApplicationFirewallPolicyPropertiesFormat

WebApplicationFirewallPolicyPropertiesFormat

Nombre Descripción Valor
customRules Reglas personalizadas dentro de la directiva. WebApplicationFirewallCustomRule[]
managedRules Describe la estructura managedRules. ManagedRulesDefinition (obligatorio)
policySettings PolicySettings para la directiva. PolicySettings

WebApplicationFirewallCustomRule

Nombre Descripción Valor
action Tipo de acción. 'Permitir'
'Bloquear'
'Log' (obligatorio)
groupByUserSession Lista de cláusulas de grupo por identificador de sesión de usuario. GroupByUserSession[]
matchConditions Lista de condiciones de coincidencia. MatchCondition[] (obligatorio)
name Nombre del recurso que es único dentro de una directiva. Este nombre se puede usar para acceder al recurso. string

Restricciones:
Longitud máxima = 128
priority 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 de límite de frecuencia. Solo se aplica cuando ruleType es RateLimitRule. "FiveMins"
'OneMin'
rateLimitThreshold Umbral de límite de frecuencia que se 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)
state Describe si la regla personalizada está en estado habilitado o deshabilitado. El valor predeterminado es Habilitado si no se especifica. 'Deshabilitado'
'Habilitado'

GroupByUserSession

Nombre Descripción Valor
groupByVariables Lista de variables de cláusula group by. GroupByVariable[] (obligatorio)

GroupByVariable

Nombre Descripción Valor
variableName Variable de cláusula User Session. "ClientAddr"
'GeoLocation'
'None' (obligatorio)

MatchCondition

Nombre Descripción Valor
matchValues Valor de coincidencia. string[] (obligatorio)
matchVariables Lista de variables de coincidencia. MatchVariable[] (obligatorio)
negationConditon Si se trata de una condición negada o no. bool
operator Operador que se va a buscar. "Cualquiera"
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GeoMatch'
'GreaterThan'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual'
'Regex' (obligatorio)
transformaciones Lista de transformaciones. Matriz de cadenas que contiene cualquiera de:
'HtmlEntityDecode'
'Minúsculas'
'RemoveNulls'
'Recortar'
'Mayúsculas'
'UrlDecode'
'UrlEncode'

MatchVariable

Nombre Descripción Valor
selector Selector de variable de coincidencia. string
variableName Variable de coincidencia. 'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri' (obligatorio)

ManagedRulesDefinition

Nombre Descripción Valor
exclusiones Exclusiones que se aplican a la directiva. OwaspCrsExclusionEntry[]
managedRuleSets Conjuntos de reglas administradas asociados a la directiva. ManagedRuleSet[] (obligatorio)

OwaspCrsExclusionEntry

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)

ExclusionManagedRuleSet

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)

ExclusionManagedRuleGroup

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[]

ExclusionManagedRule

Nombre Descripción Valor
ruleId Identificador de la regla administrada. string (obligatorio)

ManagedRuleSet

Nombre Descripción Valor
ruleGroupOverrides Define las invalidaciones del grupo de reglas que se aplicarán al conjunto de reglas. ManagedRuleGroupOverride[]
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)

ManagedRuleGroupOverride

Nombre Descripción Valor
ruleGroupName Grupo de reglas administradas que se va a invalidar. string (obligatorio)
reglas Lista de reglas que se deshabilitarán. Si no se especifica ninguno, todas las reglas del grupo se deshabilitarán. ManagedRuleOverride[]

ManagedRuleOverride

Nombre Descripción Valor
action Describe la acción de invalidación que se va a aplicar cuando la regla coincide. 'Permitir'
'AnomalíaScoring'
'Bloquear'
'Log'
ruleId Identificador de la regla administrada. string (obligatorio)
state Estado de la regla administrada. El valor predeterminado es Deshabilitado si no se especifica. 'Deshabilitado'
'Habilitado'

PolicySettings

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. string

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
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
mode Modo de la directiva. "Detección"
'Prevención'
requestBodyCheck Si se permite que WAF compruebe el cuerpo de la solicitud. bool
requestBodyEnforcement Si 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
state Estado de la directiva. 'Deshabilitado'
'Habilitado'

PolicySettingsLogScrubbing

Nombre Descripción Valor
scrubbingRules Reglas que se aplican a los registros para el limpieza. WebApplicationFirewallScrubbingRules[]
state Estado de la configuración de limpieza de registros. El valor predeterminado es Enabled. 'Deshabilitado'
'Habilitado'

WebApplicationFirewallScrubbingRules

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. string
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)
state Define el estado de la regla de limpieza de registros. El valor predeterminado es Enabled. 'Deshabilitado'
'Habilitado'

Plantillas de inicio rápido

Las siguientes plantillas de inicio rápido implementan este tipo de recurso.

Plantilla Descripción
Create una instancia de Azure WAF v2 en Azure Application Gateway

Implementación en Azure
Esta plantilla crea una instancia de Azure Web Application Firewall v2 en Azure Application Gateway con dos servidores Windows Server 2016 en el grupo de back-end
Clúster de AKS con una puerta de enlace NAT y una Application Gateway

Implementación en Azure
En este ejemplo se muestra cómo implementar un clúster de AKS con NAT Gateway para conexiones salientes y una Application Gateway para las conexiones entrantes.
Front Door Estándar/Premium con Application Gateway origen

Implementación en Azure
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 Container Instances y Application Gateway

Implementación en Azure
Esta plantilla crea una instancia de Front Door Standard/Premium con un grupo de contenedores y Application Gateway.
Clúster de AKS con el controlador de entrada de Application Gateway

Implementación en Azure
En este ejemplo se muestra cómo implementar un clúster de AKS con Application Gateway, controlador de entrada de Application Gateway, Azure Container Registry, Log Analytics y Key Vault
Application Gateway con WAF y directiva de firewall

Implementación en Azure
Esta plantilla crea un Application Gateway con WAF configurado junto con una directiva de firewall

Definición de recursos de plantilla de ARM

El tipo de recurso ApplicationGatewayWebApplicationFirewallPolicies se puede implementar con operaciones destinadas a:

Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.

Formato de los recursos

Para crear un recurso Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, agregue el siguiente JSON a la plantilla.

{
  "type": "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies",
  "apiVersion": "2023-04-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"
    }
  }
}

Valores de propiedad

ApplicationGatewayWebApplicationFirewallPolicies

Nombre Descripción Value
type Tipo de recurso "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies"
apiVersion La versión de la API de recursos '2023-04-01'
name El nombre del recurso string (obligatorio)
ubicación Ubicación del recurso string
etiquetas Etiquetas del recurso. Diccionario de nombres y valores de etiqueta. Consulte Etiquetas en plantillas.
properties Propiedades de la directiva de firewall de aplicaciones web. WebApplicationFirewallPolicyPropertiesFormat

WebApplicationFirewallPolicyPropertiesFormat

Nombre Descripción Valor
customRules Reglas personalizadas dentro de la directiva. WebApplicationFirewallCustomRule[]
managedRules Describe la estructura managedRules. ManagedRulesDefinition (obligatorio)
policySettings PolicySettings para la directiva. PolicySettings

WebApplicationFirewallCustomRule

Nombre Descripción Valor
action Tipo de acción. 'Permitir'
'Bloquear'
'Log' (obligatorio)
groupByUserSession Lista de cláusulas de grupo por identificador de sesión de usuario. GroupByUserSession[]
matchConditions Lista de condiciones de coincidencia. MatchCondition[] (obligatorio)
name Nombre del recurso que es único dentro de una directiva. Este nombre se puede usar para acceder al recurso. string

Restricciones:
Longitud máxima = 128
priority 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 de límite de frecuencia. Solo se aplica cuando ruleType es RateLimitRule. "FiveMins"
'OneMin'
rateLimitThreshold Umbral de límite de frecuencia que se 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)
state Describe si la regla personalizada está en estado habilitado o deshabilitado. El valor predeterminado es Habilitado si no se especifica. 'Deshabilitado'
'Habilitado'

GroupByUserSession

Nombre Descripción Valor
groupByVariables Lista de variables de cláusula group by. GroupByVariable[] (obligatorio)

GroupByVariable

Nombre Descripción Valor
variableName Variable de cláusula User Session. "ClientAddr"
'GeoLocation'
'None' (obligatorio)

MatchCondition

Nombre Descripción Valor
matchValues Valor de coincidencia. string[] (obligatorio)
matchVariables Lista de variables de coincidencia. MatchVariable[] (obligatorio)
negationConditon Si se trata de una condición negada o no. bool
operator Operador que se va a buscar. "Cualquiera"
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GeoMatch'
'GreaterThan'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual'
'Regex' (obligatorio)
transformaciones Lista de transformaciones. Matriz de cadenas que contiene cualquiera de:
'HtmlEntityDecode'
'Minúsculas'
'RemoveNulls'
'Recortar'
'Mayúsculas'
'UrlDecode'
'UrlEncode'

MatchVariable

Nombre Descripción Valor
selector Selector de variable de coincidencia. string
variableName Variable de coincidencia. 'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri' (obligatorio)

ManagedRulesDefinition

Nombre Descripción Valor
exclusiones Exclusiones que se aplican a la directiva. OwaspCrsExclusionEntry[]
managedRuleSets Conjuntos de reglas administradas asociados a la directiva. ManagedRuleSet[] (obligatorio)

OwaspCrsExclusionEntry

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)

ExclusionManagedRuleSet

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)

ExclusionManagedRuleGroup

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[]

ExclusionManagedRule

Nombre Descripción Valor
ruleId Identificador de la regla administrada. string (obligatorio)

ManagedRuleSet

Nombre Descripción Valor
ruleGroupOverrides Define las invalidaciones del grupo de reglas que se aplicarán al conjunto de reglas. ManagedRuleGroupOverride[]
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)

ManagedRuleGroupOverride

Nombre Descripción Valor
ruleGroupName Grupo de reglas administradas que se va a invalidar. string (obligatorio)
reglas Lista de reglas que se deshabilitarán. Si no se especifica ninguno, todas las reglas del grupo se deshabilitarán. ManagedRuleOverride[]

ManagedRuleOverride

Nombre Descripción Valor
action Describe la acción de invalidación que se va a aplicar cuando la regla coincide. 'Permitir'
'AnomalíaScoring'
'Bloquear'
'Log'
ruleId Identificador de la regla administrada. string (obligatorio)
state Estado de la regla administrada. El valor predeterminado es Deshabilitado si no se especifica. 'Deshabilitado'
'Habilitado'

PolicySettings

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. string

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
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
mode Modo de la directiva. "Detección"
'Prevención'
requestBodyCheck Si se permite que WAF compruebe el cuerpo de la solicitud. bool
requestBodyEnforcement Si 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
state Estado de la directiva. 'Deshabilitado'
'Habilitado'

PolicySettingsLogScrubbing

Nombre Descripción Valor
scrubbingRules Reglas que se aplican a los registros para la limpieza. WebApplicationFirewallScrubbingRules[]
state Estado de la configuración de limpieza de registros. El valor predeterminado es Enabled. 'Deshabilitado'
'Habilitado'

WebApplicationFirewallScrubbingRules

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 utilizado para especificar a qué elementos de la colección se aplica esta regla. string
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)
state Define el estado de la regla de limpieza de registros. El valor predeterminado es Enabled. 'Deshabilitado'
'Habilitado'

Plantillas de inicio rápido

Las siguientes plantillas de inicio rápido implementan este tipo de recurso.

Plantilla Descripción
Create una versión 2 de Azure WAF v2 en Azure Application Gateway

Implementación en Azure
Esta plantilla crea una instancia de Azure Web Application Firewall v2 en Azure Application Gateway con dos servidores Windows Server 2016 en el grupo de back-end.
Clúster de AKS con una puerta de enlace NAT y un Application Gateway

Implementación en Azure
En este ejemplo se muestra cómo implementar un clúster de AKS con NAT Gateway para conexiones salientes y un Application Gateway para las conexiones entrantes.
Front Door Estándar/Premium con origen de Application Gateway

Implementación en Azure
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 Container Instances y Application Gateway

Implementación en Azure
Esta plantilla crea una instancia de Front Door Standard/Premium con un grupo de contenedores y Application Gateway.
Clúster de AKS con el controlador de entrada de Application Gateway

Implementación en Azure
En este ejemplo se muestra cómo implementar un clúster de AKS con Application Gateway, Application Gateway controlador de entrada, Azure Container Registry, Log Analytics y Key Vault
Application Gateway con WAF y directiva de firewall

Implementación en Azure
Esta plantilla crea una Application Gateway con WAF configurado junto con una directiva de firewall.

Definición de recursos de Terraform (proveedor AzAPI)

El tipo de recurso ApplicationGatewayWebApplicationFirewallPolicies se puede implementar con operaciones destinadas a:

  • Grupos de recursos

Para obtener una lista de las propiedades modificadas en cada versión de api, consulte registro de cambios.

Formato de los recursos

Para crear un recurso Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, agregue el siguiente terraform a la plantilla.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-04-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"
      }
    }
  })
}

Valores de propiedad

ApplicationGatewayWebApplicationFirewallPolicies

Nombre Descripción Value
type Tipo de recurso "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-04-01"
name El nombre del recurso string (obligatorio)
ubicación Ubicación del recurso string
parent_id Para realizar la implementación en un grupo de recursos, use el identificador de ese grupo de recursos. string (obligatorio)
etiquetas Etiquetas del recurso. Diccionario de nombres y valores de etiqueta.
properties Propiedades de la directiva de firewall de aplicaciones web. WebApplicationFirewallPolicyPropertiesFormat

WebApplicationFirewallPolicyPropertiesFormat

Nombre Descripción Valor
customRules Reglas personalizadas dentro de la directiva. WebApplicationFirewallCustomRule[]
managedRules Describe la estructura managedRules. ManagedRulesDefinition (obligatorio)
policySettings PolicySettings para la directiva. PolicySettings

WebApplicationFirewallCustomRule

Nombre Descripción Valor
action Tipo de acción. "Permitir"
"Bloquear"
"Log" (obligatorio)
groupByUserSession Lista de cláusulas de grupo por identificador de sesión de usuario. GroupByUserSession[]
matchConditions Lista de condiciones de coincidencia. MatchCondition[] (obligatorio)
name Nombre del recurso que es único dentro de una directiva. Este nombre se puede usar para acceder al recurso. string

Restricciones:
Longitud máxima = 128
priority 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 de límite de frecuencia. Solo se aplica cuando ruleType es RateLimitRule. "FiveMins"
"OneMin"
rateLimitThreshold Umbral de límite de frecuencia que se 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)
state Describe si la regla personalizada está en estado habilitado o deshabilitado. El valor predeterminado es Habilitado si no se especifica. "Deshabilitado"
"Habilitado"

GroupByUserSession

Nombre Descripción Valor
groupByVariables Lista de variables de cláusula group by. GroupByVariable[] (obligatorio)

GroupByVariable

Nombre Descripción Valor
variableName Variable de cláusula User Session. "ClientAddr"
"GeoLocation"
"None" (obligatorio)

MatchCondition

Nombre Descripción Valor
matchValues Valor de coincidencia. string[] (obligatorio)
matchVariables Lista de variables de coincidencia. MatchVariable[] (obligatorio)
negationConditon Si se trata de una condición negada o no. bool
operator Operador que se va a buscar. "Cualquiera"
"BeginsWith"
"Contains"
"EndsWith"
"Igual"
"GeoMatch"
"GreaterThan"
"GreaterThanOrEqual"
"IPMatch"
"LessThan"
"LessThanOrEqual"
"Regex" (obligatorio)
transformaciones Lista de transformaciones. Matriz de cadenas que contiene cualquiera de:
"HtmlEntityDecode"
"Minúsculas"
"RemoveNulls"
"Recortar"
"Mayúsculas"
"UrlDecode"
"UrlEncode"

MatchVariable

Nombre Descripción Valor
selector Selector de variable de coincidencia. string
variableName Variable de coincidencia. "PostArgs"
"QueryString"
"RemoteAddr"
"RequestBody"
"RequestCookies"
"RequestHeaders"
"RequestMethod"
"RequestUri" (obligatorio)

ManagedRulesDefinition

Nombre Descripción Valor
exclusiones Exclusiones que se aplican a la directiva. OwaspCrsExclusionEntry[]
managedRuleSets Conjuntos de reglas administradas asociados a la directiva. ManagedRuleSet[] (obligatorio)

OwaspCrsExclusionEntry

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)

ExclusionManagedRuleSet

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)

ExclusionManagedRuleGroup

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[]

ExclusionManagedRule

Nombre Descripción Valor
ruleId Identificador de la regla administrada. string (obligatorio)

ManagedRuleSet

Nombre Descripción Valor
ruleGroupOverrides Define las invalidaciones del grupo de reglas que se aplicarán al conjunto de reglas. ManagedRuleGroupOverride[]
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)

ManagedRuleGroupOverride

Nombre Descripción Valor
ruleGroupName Grupo de reglas administradas que se va a invalidar. string (obligatorio)
reglas Lista de reglas que se deshabilitarán. Si no se especifica ninguno, todas las reglas del grupo se deshabilitarán. ManagedRuleOverride[]

ManagedRuleOverride

Nombre Descripción Valor
action Describe la acción de invalidación que se va a aplicar cuando la regla coincide. "Permitir"
"Anomalíascoring"
"Bloquear"
"Registro"
ruleId Identificador de la regla administrada. string (obligatorio)
state Estado de la regla administrada. El valor predeterminado es Deshabilitado si no se especifica. "Deshabilitado"
"Habilitado"

PolicySettings

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. string

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
logScrubbing Para limpiar 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
mode Modo de la directiva. "Detección"
"Prevención"
requestBodyCheck Indica si se permite que WAF compruebe el cuerpo de la solicitud. bool
requestBodyEnforcement Si permite que WAF aplique los 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
state Estado de la directiva. "Deshabilitado"
"Habilitado"

PolicySettingsLogScrubbing

Nombre Descripción Valor
scrubbingRules Reglas que se aplican a los registros para la limpieza. WebApplicationFirewallScrubbingRules[]
state Estado de la configuración de limpieza de registros. El valor predeterminado es Enabled. "Deshabilitado"
"Habilitado"

WebApplicationFirewallScrubbingRules

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 utilizado para especificar a qué elementos de la colección se aplica esta regla. string
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)
state Define el estado de la regla de limpieza de registros. El valor predeterminado es Enabled. "Deshabilitado"
"Habilitado"