Compartilhar via


Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies 2024-03-01

Definição de recurso do Bicep

O tipo de recurso ApplicationGatewayWebApplicationFirewallPolicies pode ser implantado com operações direcionadas:

Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.

Formato de recurso

Para criar um recurso Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, adicione o seguinte Bicep ao modelo.

resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2024-03-01' = {
  location: 'string'
  name: 'string'
  properties: {
    customRules: [
      {
        action: 'string'
        groupByUserSession: [
          {
            groupByVariables: [
              {
                variableName: 'string'
              }
            ]
          }
        ]
        matchConditions: [
          {
            matchValues: [
              'string'
            ]
            matchVariables: [
              {
                selector: 'string'
                variableName: 'string'
              }
            ]
            negationConditon: bool
            operator: 'string'
            transforms: [
              'string'
            ]
          }
        ]
        name: 'string'
        priority: int
        rateLimitDuration: 'string'
        rateLimitThreshold: int
        ruleType: 'string'
        state: 'string'
      }
    ]
    managedRules: {
      exceptions: [
        {
          exceptionManagedRuleSets: [
            {
              ruleGroups: [
                {
                  ruleGroupName: 'string'
                  rules: [
                    {
                      ruleId: 'string'
                    }
                  ]
                }
              ]
              ruleSetType: 'string'
              ruleSetVersion: 'string'
            }
          ]
          matchVariable: 'string'
          selector: 'string'
          selectorMatchOperator: 'string'
          valueMatchOperator: 'string'
          values: [
            'string'
          ]
        }
      ]
      exclusions: [
        {
          exclusionManagedRuleSets: [
            {
              ruleGroups: [
                {
                  ruleGroupName: 'string'
                  rules: [
                    {
                      ruleId: 'string'
                    }
                  ]
                }
              ]
              ruleSetType: 'string'
              ruleSetVersion: 'string'
            }
          ]
          matchVariable: 'string'
          selector: 'string'
          selectorMatchOperator: 'string'
        }
      ]
      managedRuleSets: [
        {
          ruleGroupOverrides: [
            {
              ruleGroupName: 'string'
              rules: [
                {
                  action: 'string'
                  ruleId: 'string'
                  sensitivity: 'string'
                  state: 'string'
                }
              ]
            }
          ]
          ruleSetType: 'string'
          ruleSetVersion: 'string'
        }
      ]
    }
    policySettings: {
      customBlockResponseBody: 'string'
      customBlockResponseStatusCode: int
      fileUploadEnforcement: bool
      fileUploadLimitInMb: int
      jsChallengeCookieExpirationInMins: int
      logScrubbing: {
        scrubbingRules: [
          {
            matchVariable: 'string'
            selector: 'string'
            selectorMatchOperator: 'string'
            state: 'string'
          }
        ]
        state: 'string'
      }
      maxRequestBodySizeInKb: int
      mode: 'string'
      requestBodyCheck: bool
      requestBodyEnforcement: bool
      requestBodyInspectLimitInKB: int
      state: 'string'
    }
  }
  tags: {
    {customized property}: 'string'
  }
}

Valores de propriedade

ExceptionEntry

Nome Descrição Valor
exceptionManagedRuleSets Os conjuntos de regras gerenciadas associados à exceção. ExclusionManagedRuleSet []
matchVariable A variável na qual avaliamos a condição de exceção 'RemoteAddr'
'RequestHeader'
'RequestURI' (obrigatório)
seletor Quando o matchVariable aponta para um par chave-valor (por exemplo, RequestHeader), isso identifica a chave. corda
selectorMatchOperator Quando o matchVariable aponta para um par chave-valor (por exemplo, RequestHeader), isso opera no seletor 'Contains'
'EndsWith'
'Equals'
'StartsWith'
valueMatchOperator Opera nos valores permitidos para o matchVariable 'Contains'
'EndsWith'
'Equals'
'IPMatch'
'StartsWith' (obrigatório)
Valores Valores permitidos para o matchVariable string[]

ExclusionManagedRule

Nome Descrição Valor
ruleId Identificador para a regra gerenciada. cadeia de caracteres (obrigatório)

ExclusionManagedRuleGroup

Nome Descrição Valor
ruleGroupName O grupo de regras gerenciadas para exclusão. cadeia de caracteres (obrigatório)
réguas Lista de regras que serão excluídas. Se nenhuma especificada, todas as regras no grupo serão excluídas. ExclusionManagedRule []

ExclusionManagedRuleSet

Nome Descrição Valor
ruleGroups Define os grupos de regras a serem aplicados ao conjunto de regras. ExclusionManagedRuleGroup []
ruleSetType Define o tipo de conjunto de regras a ser usado. cadeia de caracteres (obrigatório)
ruleSetVersion Define a versão do conjunto de regras a ser usado. cadeia de caracteres (obrigatório)

GroupByUserSession

Nome Descrição Valor
groupByVariables Lista de variáveis de grupo por cláusula. GroupByVariable [] (obrigatório)

GroupByVariable

Nome Descrição Valor
variableName Variável da cláusula Sessão do Usuário. 'ClientAddr'
'GeoLocation'
'None' (obrigatório)

ManagedRuleGroupOverride

Nome Descrição Valor
ruleGroupName O grupo de regras gerenciadas a ser substituído. cadeia de caracteres (obrigatório)
réguas Lista de regras que serão desabilitadas. Se nenhuma especificada, todas as regras do grupo serão desabilitadas. ManagedRuleOverride []

ManagedRuleOverride

Nome Descrição Valor
ação Descreve a ação de substituição a ser aplicada quando a regra corresponde. 'Permitir'
'AnomalyScoring'
'Bloquear'
'JSChallenge'
'Log'
ruleId Identificador para a regra gerenciada. cadeia de caracteres (obrigatório)
sensibilidade Descreve a sensibilidade de substituição a ser aplicada quando a regra corresponde. 'Alto'
'Baixo'
'Médio'
'None'
estado O estado da regra gerenciada. O padrão será Desabilitado se não for especificado. 'Desabilitado'
'Habilitado'

ManagedRulesDefinition

Nome Descrição Valor
Exceções As exceções que são aplicadas na política. ExceptionEntry []
Exclusões As Exclusões aplicadas na política. OwaspCrsExclusionEntry[]
managedRuleSets Os conjuntos de regras gerenciadas associados à política. ManagedRuleSet[] (obrigatório)

ManagedRuleSet

Nome Descrição Valor
ruleGroupOverrides Define as substituições do grupo de regras a serem aplicadas ao conjunto de regras. ManagedRuleGroupOverride []
ruleSetType Define o tipo de conjunto de regras a ser usado. cadeia de caracteres (obrigatório)
ruleSetVersion Define a versão do conjunto de regras a ser usado. cadeia de caracteres (obrigatório)

MatchCondition

Nome Descrição Valor
matchValues Valor de correspondência. string[] (obrigatório)
matchVariables Lista de variáveis de correspondência. MatchVariable [] (obrigatório)
negationConditon Se essa é uma condição negada ou não. Bool
operador O operador a ser correspondido. 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Igual'
'GeoMatch'
'GreaterThan'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual'
'Regex' (obrigatório)
Transforma Lista de transformações. Matriz de cadeia de caracteres que contém qualquer um dos:
'HtmlEntityDecode'
'Minúscula'
'RemoveNulls'
'Trim'
'Maiúscula'
'UrlDecode'
'UrlEncode'

MatchVariable

Nome Descrição Valor
seletor O seletor da variável de correspondência. corda
variableName Variável de correspondência. 'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri' (obrigatório)

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

Nome Descrição Valor
localização Local do recurso. corda
nome O nome do recurso corda

Restrições:
Comprimento máximo = (obrigatório)
Propriedades Propriedades da política de firewall do aplicativo Web. WebApplicationFirewallPolicyPropertiesFormat
Tags Marcas de recurso Dicionário de nomes e valores de marca. Consulte Marcas em modelos

OwaspCrsExclusionEntry

Nome Descrição Valor
exclusionManagedRuleSets Os conjuntos de regras gerenciadas associados à exclusão. ExclusionManagedRuleSet []
matchVariable A variável a ser excluída. 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'RequestHeaderNames'
'RequestHeaderValues' (obrigatório)
seletor Quando matchVariable é uma coleção, o operador usado para especificar a quais elementos na coleção essa exclusão se aplica. cadeia de caracteres (obrigatório)
selectorMatchOperator Quando matchVariable for uma coleção, opere no seletor para especificar a quais elementos na coleção essa exclusão se aplica. 'Contains'
'EndsWith'
'Equals'
'EqualsAny'
'StartsWith' (obrigatório)

PolicySettings

Nome Descrição Valor
customBlockResponseBody Se o tipo de ação for bloqueado, o cliente poderá substituir o corpo da resposta. O corpo deve ser especificado na codificação base64. corda

Restrições:
Comprimento máximo =
Padrão = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode Se o tipo de ação for bloqueado, o cliente poderá substituir o código de status de resposta. int

Restrições:
Valor mínimo = 0
fileUploadEnforcement Se permitir que o WAF imponha limites de upload de arquivo. Bool
fileUploadLimitInMb Tamanho máximo de upload de arquivo em Mb para WAF. int

Restrições:
Valor mínimo = 0
jsChallengeCookieExpirationInMins Tempo de expiração do cookie do Desafio javaScript do Firewall do Aplicativo Web em minutos. int

Restrições:
Valor mínimo = 5
Valor máximo = 1440
logScrubbing Para esfregar campos de log confidenciais PolicySettingsLogScrubbing
maxRequestBodySizeInKb Tamanho máximo do corpo da solicitação em Kb para WAF. int

Restrições:
Valor mínimo = 8
modo O modo da política. 'Detecção'
'Prevenção'
requestBodyCheck Se o WAF deve permitir que o WAF verifique o corpo da solicitação. Bool
requestBodyEnforcement Se permite que o WAF imponha limites do corpo da solicitação. Bool
requestBodyInspectLimitInKB Limite máximo de inspeção em KB para inspeção do corpo da solicitação para WAF. int
estado O estado da política. 'Desabilitado'
'Habilitado'

PolicySettingsLogScrubbing

Nome Descrição Valor
scrubbingRules As regras que são aplicadas aos logs para limpeza. WebApplicationFirewallScrubbingRules[]
estado Estado da configuração de limpeza de log. O valor padrão está habilitado. 'Desabilitado'
'Habilitado'

ResourceTags

Nome Descrição Valor

WebApplicationFirewallCustomRule

Nome Descrição Valor
ação Tipo de Ações. 'Permitir'
'Bloquear'
'JSChallenge'
'Log' (obrigatório)
groupByUserSession Lista de cláusulas de grupo de identificadores de sessão de usuário. GroupByUserSession []
matchConditions Lista de condições de correspondência. MatchCondition[] (obrigatório)
nome O nome do recurso que é exclusivo dentro de uma política. Esse nome pode ser usado para acessar o recurso. corda

Restrições:
Comprimento máximo =
prioridade Prioridade da regra. As regras com um valor mais baixo serão avaliadas antes das regras com um valor mais alto. int (obrigatório)
rateLimitDuration Duração sobre a qual a política limite de taxa será aplicada. Aplica-se somente quando ruleType é RateLimitRule. 'FiveMins'
'OneMin'
rateLimitThreshold Limite de taxa a ser aplicado caso ruleType seja RateLimitRule. Deve ser maior ou igual a 1 int
ruleType O tipo de regra. 'Inválido'
'MatchRule'
'RateLimitRule' (obrigatório)
estado Descreve se a regra personalizada está no estado habilitado ou desabilitado. O padrão é Habilitado se não for especificado. 'Desabilitado'
'Habilitado'

WebApplicationFirewallPolicyPropertiesFormat

Nome Descrição Valor
customRules As regras personalizadas dentro da política. WebApplicationFirewallCustomRule[]
managedRules Descreve a estrutura managedRules. ManagedRulesDefinition (obrigatório)
policySettings Os PolicySettings para a política. PolicySettings

WebApplicationFirewallScrubbingRules

Nome Descrição Valor
matchVariable A variável a ser removida dos logs. 'RequestArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestJSONArgNames'
'RequestPostArgNames' (obrigatório)
seletor Quando matchVariable é uma coleção, o operador usado para especificar a quais elementos na coleção essa regra se aplica. corda
selectorMatchOperator Quando matchVariable for uma coleção, opere no seletor para especificar a quais elementos na coleção essa regra se aplica. 'Equals'
'EqualsAny' (obrigatório)
estado Define o estado da regra de limpeza de log. O valor padrão está habilitado. 'Desabilitado'
'Habilitado'

Exemplos de início rápido

Os exemplos de início rápido a seguir implantam esse tipo de recurso.

Arquivo Bicep Descrição
cluster do AKS com um Gateway nat e um gateway de aplicativo Este exemplo mostra como implantar um cluster do AKS com o Gateway de NAT para conexões de saída e um Gateway de Aplicativo para conexões de entrada.
cluster do AKS com o Controlador de Entrada do Gateway de Aplicativo Este exemplo mostra como implantar um cluster do AKS com o Gateway de Aplicativo, o Controlador de Entrada do Gateway de Aplicativo, o Registro de Contêiner do Azure, o Log Analytics e o Key Vault
Gateway de Aplicativo com waf e política de firewall Este modelo cria um Gateway de Aplicativo com WAF configurado junto com uma política de firewall
Criar um WAF do Azure v2 no Gateway de Aplicativo do Azure Este modelo cria um Firewall do Aplicativo Web do Azure v2 no Gateway de Aplicativo do Azure com dois servidores do Windows Server 2016 no pool de back-end
Front Door Standard/Premium com origem do Gateway de Aplicativo Esse modelo cria um Front Door Standard/Premium e uma instância do Gateway de Aplicativo e usa uma política de NSG e WAF para validar que o tráfego veio por meio da origem do Front Door.
Front Door com instâncias de contêiner e gateway de aplicativo Esse modelo cria um Front Door Standard/Premium com um grupo de contêineres e o Gateway de Aplicativo.

Definição de recurso de modelo do ARM

O tipo de recurso ApplicationGatewayWebApplicationFirewallPolicies pode ser implantado com operações direcionadas:

Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.

Formato de recurso

Para criar um recurso Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, adicione o JSON a seguir ao modelo.

{
  "type": "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies",
  "apiVersion": "2024-03-01",
  "name": "string",
  "location": "string",
  "properties": {
    "customRules": [
      {
        "action": "string",
        "groupByUserSession": [
          {
            "groupByVariables": [
              {
                "variableName": "string"
              }
            ]
          }
        ],
        "matchConditions": [
          {
            "matchValues": [ "string" ],
            "matchVariables": [
              {
                "selector": "string",
                "variableName": "string"
              }
            ],
            "negationConditon": "bool",
            "operator": "string",
            "transforms": [ "string" ]
          }
        ],
        "name": "string",
        "priority": "int",
        "rateLimitDuration": "string",
        "rateLimitThreshold": "int",
        "ruleType": "string",
        "state": "string"
      }
    ],
    "managedRules": {
      "exceptions": [
        {
          "exceptionManagedRuleSets": [
            {
              "ruleGroups": [
                {
                  "ruleGroupName": "string",
                  "rules": [
                    {
                      "ruleId": "string"
                    }
                  ]
                }
              ],
              "ruleSetType": "string",
              "ruleSetVersion": "string"
            }
          ],
          "matchVariable": "string",
          "selector": "string",
          "selectorMatchOperator": "string",
          "valueMatchOperator": "string",
          "values": [ "string" ]
        }
      ],
      "exclusions": [
        {
          "exclusionManagedRuleSets": [
            {
              "ruleGroups": [
                {
                  "ruleGroupName": "string",
                  "rules": [
                    {
                      "ruleId": "string"
                    }
                  ]
                }
              ],
              "ruleSetType": "string",
              "ruleSetVersion": "string"
            }
          ],
          "matchVariable": "string",
          "selector": "string",
          "selectorMatchOperator": "string"
        }
      ],
      "managedRuleSets": [
        {
          "ruleGroupOverrides": [
            {
              "ruleGroupName": "string",
              "rules": [
                {
                  "action": "string",
                  "ruleId": "string",
                  "sensitivity": "string",
                  "state": "string"
                }
              ]
            }
          ],
          "ruleSetType": "string",
          "ruleSetVersion": "string"
        }
      ]
    },
    "policySettings": {
      "customBlockResponseBody": "string",
      "customBlockResponseStatusCode": "int",
      "fileUploadEnforcement": "bool",
      "fileUploadLimitInMb": "int",
      "jsChallengeCookieExpirationInMins": "int",
      "logScrubbing": {
        "scrubbingRules": [
          {
            "matchVariable": "string",
            "selector": "string",
            "selectorMatchOperator": "string",
            "state": "string"
          }
        ],
        "state": "string"
      },
      "maxRequestBodySizeInKb": "int",
      "mode": "string",
      "requestBodyCheck": "bool",
      "requestBodyEnforcement": "bool",
      "requestBodyInspectLimitInKB": "int",
      "state": "string"
    }
  },
  "tags": {
    "{customized property}": "string"
  }
}

Valores de propriedade

ExceptionEntry

Nome Descrição Valor
exceptionManagedRuleSets Os conjuntos de regras gerenciadas associados à exceção. ExclusionManagedRuleSet []
matchVariable A variável na qual avaliamos a condição de exceção 'RemoteAddr'
'RequestHeader'
'RequestURI' (obrigatório)
seletor Quando o matchVariable aponta para um par chave-valor (por exemplo, RequestHeader), isso identifica a chave. corda
selectorMatchOperator Quando o matchVariable aponta para um par chave-valor (por exemplo, RequestHeader), isso opera no seletor 'Contains'
'EndsWith'
'Equals'
'StartsWith'
valueMatchOperator Opera nos valores permitidos para o matchVariable 'Contains'
'EndsWith'
'Equals'
'IPMatch'
'StartsWith' (obrigatório)
Valores Valores permitidos para o matchVariable string[]

ExclusionManagedRule

Nome Descrição Valor
ruleId Identificador para a regra gerenciada. cadeia de caracteres (obrigatório)

ExclusionManagedRuleGroup

Nome Descrição Valor
ruleGroupName O grupo de regras gerenciadas para exclusão. cadeia de caracteres (obrigatório)
réguas Lista de regras que serão excluídas. Se nenhuma especificada, todas as regras no grupo serão excluídas. ExclusionManagedRule []

ExclusionManagedRuleSet

Nome Descrição Valor
ruleGroups Define os grupos de regras a serem aplicados ao conjunto de regras. ExclusionManagedRuleGroup []
ruleSetType Define o tipo de conjunto de regras a ser usado. cadeia de caracteres (obrigatório)
ruleSetVersion Define a versão do conjunto de regras a ser usado. cadeia de caracteres (obrigatório)

GroupByUserSession

Nome Descrição Valor
groupByVariables Lista de variáveis de grupo por cláusula. GroupByVariable [] (obrigatório)

GroupByVariable

Nome Descrição Valor
variableName Variável da cláusula Sessão do Usuário. 'ClientAddr'
'GeoLocation'
'None' (obrigatório)

ManagedRuleGroupOverride

Nome Descrição Valor
ruleGroupName O grupo de regras gerenciadas a ser substituído. cadeia de caracteres (obrigatório)
réguas Lista de regras que serão desabilitadas. Se nenhuma especificada, todas as regras do grupo serão desabilitadas. ManagedRuleOverride []

ManagedRuleOverride

Nome Descrição Valor
ação Descreve a ação de substituição a ser aplicada quando a regra corresponde. 'Permitir'
'AnomalyScoring'
'Bloquear'
'JSChallenge'
'Log'
ruleId Identificador para a regra gerenciada. cadeia de caracteres (obrigatório)
sensibilidade Descreve a sensibilidade de substituição a ser aplicada quando a regra corresponde. 'Alto'
'Baixo'
'Médio'
'None'
estado O estado da regra gerenciada. O padrão será Desabilitado se não for especificado. 'Desabilitado'
'Habilitado'

ManagedRulesDefinition

Nome Descrição Valor
Exceções As exceções que são aplicadas na política. ExceptionEntry []
Exclusões As Exclusões aplicadas na política. OwaspCrsExclusionEntry[]
managedRuleSets Os conjuntos de regras gerenciadas associados à política. ManagedRuleSet[] (obrigatório)

ManagedRuleSet

Nome Descrição Valor
ruleGroupOverrides Define as substituições do grupo de regras a serem aplicadas ao conjunto de regras. ManagedRuleGroupOverride []
ruleSetType Define o tipo de conjunto de regras a ser usado. cadeia de caracteres (obrigatório)
ruleSetVersion Define a versão do conjunto de regras a ser usado. cadeia de caracteres (obrigatório)

MatchCondition

Nome Descrição Valor
matchValues Valor de correspondência. string[] (obrigatório)
matchVariables Lista de variáveis de correspondência. MatchVariable [] (obrigatório)
negationConditon Se essa é uma condição negada ou não. Bool
operador O operador a ser correspondido. 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Igual'
'GeoMatch'
'GreaterThan'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual'
'Regex' (obrigatório)
Transforma Lista de transformações. Matriz de cadeia de caracteres que contém qualquer um dos:
'HtmlEntityDecode'
'Minúscula'
'RemoveNulls'
'Trim'
'Maiúscula'
'UrlDecode'
'UrlEncode'

MatchVariable

Nome Descrição Valor
seletor O seletor da variável de correspondência. corda
variableName Variável de correspondência. 'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri' (obrigatório)

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

Nome Descrição Valor
apiVersion A versão da API '2024-03-01'
localização Local do recurso. corda
nome O nome do recurso corda

Restrições:
Comprimento máximo = (obrigatório)
Propriedades Propriedades da política de firewall do aplicativo Web. WebApplicationFirewallPolicyPropertiesFormat
Tags Marcas de recurso Dicionário de nomes e valores de marca. Consulte Marcas em modelos
tipo O tipo de recurso 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies'

OwaspCrsExclusionEntry

Nome Descrição Valor
exclusionManagedRuleSets Os conjuntos de regras gerenciadas associados à exclusão. ExclusionManagedRuleSet []
matchVariable A variável a ser excluída. 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'RequestHeaderNames'
'RequestHeaderValues' (obrigatório)
seletor Quando matchVariable é uma coleção, o operador usado para especificar a quais elementos na coleção essa exclusão se aplica. cadeia de caracteres (obrigatório)
selectorMatchOperator Quando matchVariable for uma coleção, opere no seletor para especificar a quais elementos na coleção essa exclusão se aplica. 'Contains'
'EndsWith'
'Equals'
'EqualsAny'
'StartsWith' (obrigatório)

PolicySettings

Nome Descrição Valor
customBlockResponseBody Se o tipo de ação for bloqueado, o cliente poderá substituir o corpo da resposta. O corpo deve ser especificado na codificação base64. corda

Restrições:
Comprimento máximo =
Padrão = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode Se o tipo de ação for bloqueado, o cliente poderá substituir o código de status de resposta. int

Restrições:
Valor mínimo = 0
fileUploadEnforcement Se permitir que o WAF imponha limites de upload de arquivo. Bool
fileUploadLimitInMb Tamanho máximo de upload de arquivo em Mb para WAF. int

Restrições:
Valor mínimo = 0
jsChallengeCookieExpirationInMins Tempo de expiração do cookie do Desafio javaScript do Firewall do Aplicativo Web em minutos. int

Restrições:
Valor mínimo = 5
Valor máximo = 1440
logScrubbing Para esfregar campos de log confidenciais PolicySettingsLogScrubbing
maxRequestBodySizeInKb Tamanho máximo do corpo da solicitação em Kb para WAF. int

Restrições:
Valor mínimo = 8
modo O modo da política. 'Detecção'
'Prevenção'
requestBodyCheck Se o WAF deve permitir que o WAF verifique o corpo da solicitação. Bool
requestBodyEnforcement Se permite que o WAF imponha limites do corpo da solicitação. Bool
requestBodyInspectLimitInKB Limite máximo de inspeção em KB para inspeção do corpo da solicitação para WAF. int
estado O estado da política. 'Desabilitado'
'Habilitado'

PolicySettingsLogScrubbing

Nome Descrição Valor
scrubbingRules As regras que são aplicadas aos logs para limpeza. WebApplicationFirewallScrubbingRules[]
estado Estado da configuração de limpeza de log. O valor padrão está habilitado. 'Desabilitado'
'Habilitado'

ResourceTags

Nome Descrição Valor

WebApplicationFirewallCustomRule

Nome Descrição Valor
ação Tipo de Ações. 'Permitir'
'Bloquear'
'JSChallenge'
'Log' (obrigatório)
groupByUserSession Lista de cláusulas de grupo de identificadores de sessão de usuário. GroupByUserSession []
matchConditions Lista de condições de correspondência. MatchCondition[] (obrigatório)
nome O nome do recurso que é exclusivo dentro de uma política. Esse nome pode ser usado para acessar o recurso. corda

Restrições:
Comprimento máximo =
prioridade Prioridade da regra. As regras com um valor mais baixo serão avaliadas antes das regras com um valor mais alto. int (obrigatório)
rateLimitDuration Duração sobre a qual a política limite de taxa será aplicada. Aplica-se somente quando ruleType é RateLimitRule. 'FiveMins'
'OneMin'
rateLimitThreshold Limite de taxa a ser aplicado caso ruleType seja RateLimitRule. Deve ser maior ou igual a 1 int
ruleType O tipo de regra. 'Inválido'
'MatchRule'
'RateLimitRule' (obrigatório)
estado Descreve se a regra personalizada está no estado habilitado ou desabilitado. O padrão é Habilitado se não for especificado. 'Desabilitado'
'Habilitado'

WebApplicationFirewallPolicyPropertiesFormat

Nome Descrição Valor
customRules As regras personalizadas dentro da política. WebApplicationFirewallCustomRule[]
managedRules Descreve a estrutura managedRules. ManagedRulesDefinition (obrigatório)
policySettings Os PolicySettings para a política. PolicySettings

WebApplicationFirewallScrubbingRules

Nome Descrição Valor
matchVariable A variável a ser removida dos logs. 'RequestArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestJSONArgNames'
'RequestPostArgNames' (obrigatório)
seletor Quando matchVariable é uma coleção, o operador usado para especificar a quais elementos na coleção essa regra se aplica. corda
selectorMatchOperator Quando matchVariable for uma coleção, opere no seletor para especificar a quais elementos na coleção essa regra se aplica. 'Equals'
'EqualsAny' (obrigatório)
estado Define o estado da regra de limpeza de log. O valor padrão está habilitado. 'Desabilitado'
'Habilitado'

Modelos de início rápido

Os modelos de início rápido a seguir implantam esse tipo de recurso.

Modelo Descrição
cluster do AKS com um Gateway nat e um gateway de aplicativo

Implantar no Azure
Este exemplo mostra como implantar um cluster do AKS com o Gateway de NAT para conexões de saída e um Gateway de Aplicativo para conexões de entrada.
cluster do AKS com o Controlador de Entrada do Gateway de Aplicativo

Implantar no Azure
Este exemplo mostra como implantar um cluster do AKS com o Gateway de Aplicativo, o Controlador de Entrada do Gateway de Aplicativo, o Registro de Contêiner do Azure, o Log Analytics e o Key Vault
Gateway de Aplicativo com waf e política de firewall

Implantar no Azure
Este modelo cria um Gateway de Aplicativo com WAF configurado junto com uma política de firewall
Criar um WAF do Azure v2 no Gateway de Aplicativo do Azure

Implantar no Azure
Este modelo cria um Firewall do Aplicativo Web do Azure v2 no Gateway de Aplicativo do Azure com dois servidores do Windows Server 2016 no pool de back-end
Front Door Standard/Premium com origem do Gateway de Aplicativo

Implantar no Azure
Esse modelo cria um Front Door Standard/Premium e uma instância do Gateway de Aplicativo e usa uma política de NSG e WAF para validar que o tráfego veio por meio da origem do Front Door.
Front Door com instâncias de contêiner e gateway de aplicativo

Implantar no Azure
Esse modelo cria um Front Door Standard/Premium com um grupo de contêineres e o Gateway de Aplicativo.

Definição de recurso do Terraform (provedor de AzAPI)

O tipo de recurso ApplicationGatewayWebApplicationFirewallPolicies pode ser implantado com operações direcionadas:

  • grupos de recursos

Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.

Formato de recurso

Para criar um recurso Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, adicione o Terraform a seguir ao modelo.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2024-03-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 = {
        exceptions = [
          {
            exceptionManagedRuleSets = [
              {
                ruleGroups = [
                  {
                    ruleGroupName = "string"
                    rules = [
                      {
                        ruleId = "string"
                      }
                    ]
                  }
                ]
                ruleSetType = "string"
                ruleSetVersion = "string"
              }
            ]
            matchVariable = "string"
            selector = "string"
            selectorMatchOperator = "string"
            valueMatchOperator = "string"
            values = [
              "string"
            ]
          }
        ]
        exclusions = [
          {
            exclusionManagedRuleSets = [
              {
                ruleGroups = [
                  {
                    ruleGroupName = "string"
                    rules = [
                      {
                        ruleId = "string"
                      }
                    ]
                  }
                ]
                ruleSetType = "string"
                ruleSetVersion = "string"
              }
            ]
            matchVariable = "string"
            selector = "string"
            selectorMatchOperator = "string"
          }
        ]
        managedRuleSets = [
          {
            ruleGroupOverrides = [
              {
                ruleGroupName = "string"
                rules = [
                  {
                    action = "string"
                    ruleId = "string"
                    sensitivity = "string"
                    state = "string"
                  }
                ]
              }
            ]
            ruleSetType = "string"
            ruleSetVersion = "string"
          }
        ]
      }
      policySettings = {
        customBlockResponseBody = "string"
        customBlockResponseStatusCode = int
        fileUploadEnforcement = bool
        fileUploadLimitInMb = int
        jsChallengeCookieExpirationInMins = int
        logScrubbing = {
          scrubbingRules = [
            {
              matchVariable = "string"
              selector = "string"
              selectorMatchOperator = "string"
              state = "string"
            }
          ]
          state = "string"
        }
        maxRequestBodySizeInKb = int
        mode = "string"
        requestBodyCheck = bool
        requestBodyEnforcement = bool
        requestBodyInspectLimitInKB = int
        state = "string"
      }
    }
  })
}

Valores de propriedade

ExceptionEntry

Nome Descrição Valor
exceptionManagedRuleSets Os conjuntos de regras gerenciadas associados à exceção. ExclusionManagedRuleSet []
matchVariable A variável na qual avaliamos a condição de exceção 'RemoteAddr'
'RequestHeader'
'RequestURI' (obrigatório)
seletor Quando o matchVariable aponta para um par chave-valor (por exemplo, RequestHeader), isso identifica a chave. corda
selectorMatchOperator Quando o matchVariable aponta para um par chave-valor (por exemplo, RequestHeader), isso opera no seletor 'Contains'
'EndsWith'
'Equals'
'StartsWith'
valueMatchOperator Opera nos valores permitidos para o matchVariable 'Contains'
'EndsWith'
'Equals'
'IPMatch'
'StartsWith' (obrigatório)
Valores Valores permitidos para o matchVariable string[]

ExclusionManagedRule

Nome Descrição Valor
ruleId Identificador para a regra gerenciada. cadeia de caracteres (obrigatório)

ExclusionManagedRuleGroup

Nome Descrição Valor
ruleGroupName O grupo de regras gerenciadas para exclusão. cadeia de caracteres (obrigatório)
réguas Lista de regras que serão excluídas. Se nenhuma especificada, todas as regras no grupo serão excluídas. ExclusionManagedRule []

ExclusionManagedRuleSet

Nome Descrição Valor
ruleGroups Define os grupos de regras a serem aplicados ao conjunto de regras. ExclusionManagedRuleGroup []
ruleSetType Define o tipo de conjunto de regras a ser usado. cadeia de caracteres (obrigatório)
ruleSetVersion Define a versão do conjunto de regras a ser usado. cadeia de caracteres (obrigatório)

GroupByUserSession

Nome Descrição Valor
groupByVariables Lista de variáveis de grupo por cláusula. GroupByVariable [] (obrigatório)

GroupByVariable

Nome Descrição Valor
variableName Variável da cláusula Sessão do Usuário. 'ClientAddr'
'GeoLocation'
'None' (obrigatório)

ManagedRuleGroupOverride

Nome Descrição Valor
ruleGroupName O grupo de regras gerenciadas a ser substituído. cadeia de caracteres (obrigatório)
réguas Lista de regras que serão desabilitadas. Se nenhuma especificada, todas as regras do grupo serão desabilitadas. ManagedRuleOverride []

ManagedRuleOverride

Nome Descrição Valor
ação Descreve a ação de substituição a ser aplicada quando a regra corresponde. 'Permitir'
'AnomalyScoring'
'Bloquear'
'JSChallenge'
'Log'
ruleId Identificador para a regra gerenciada. cadeia de caracteres (obrigatório)
sensibilidade Descreve a sensibilidade de substituição a ser aplicada quando a regra corresponde. 'Alto'
'Baixo'
'Médio'
'None'
estado O estado da regra gerenciada. O padrão será Desabilitado se não for especificado. 'Desabilitado'
'Habilitado'

ManagedRulesDefinition

Nome Descrição Valor
Exceções As exceções que são aplicadas na política. ExceptionEntry []
Exclusões As Exclusões aplicadas na política. OwaspCrsExclusionEntry[]
managedRuleSets Os conjuntos de regras gerenciadas associados à política. ManagedRuleSet[] (obrigatório)

ManagedRuleSet

Nome Descrição Valor
ruleGroupOverrides Define as substituições do grupo de regras a serem aplicadas ao conjunto de regras. ManagedRuleGroupOverride []
ruleSetType Define o tipo de conjunto de regras a ser usado. cadeia de caracteres (obrigatório)
ruleSetVersion Define a versão do conjunto de regras a ser usado. cadeia de caracteres (obrigatório)

MatchCondition

Nome Descrição Valor
matchValues Valor de correspondência. string[] (obrigatório)
matchVariables Lista de variáveis de correspondência. MatchVariable [] (obrigatório)
negationConditon Se essa é uma condição negada ou não. Bool
operador O operador a ser correspondido. 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Igual'
'GeoMatch'
'GreaterThan'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual'
'Regex' (obrigatório)
Transforma Lista de transformações. Matriz de cadeia de caracteres que contém qualquer um dos:
'HtmlEntityDecode'
'Minúscula'
'RemoveNulls'
'Trim'
'Maiúscula'
'UrlDecode'
'UrlEncode'

MatchVariable

Nome Descrição Valor
seletor O seletor da variável de correspondência. corda
variableName Variável de correspondência. 'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri' (obrigatório)

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

Nome Descrição Valor
localização Local do recurso. corda
nome O nome do recurso corda

Restrições:
Comprimento máximo = (obrigatório)
Propriedades Propriedades da política de firewall do aplicativo Web. WebApplicationFirewallPolicyPropertiesFormat
Tags Marcas de recurso Dicionário de nomes e valores de marca.
tipo O tipo de recurso "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2024-03-01"

OwaspCrsExclusionEntry

Nome Descrição Valor
exclusionManagedRuleSets Os conjuntos de regras gerenciadas associados à exclusão. ExclusionManagedRuleSet []
matchVariable A variável a ser excluída. 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'RequestHeaderNames'
'RequestHeaderValues' (obrigatório)
seletor Quando matchVariable é uma coleção, o operador usado para especificar a quais elementos na coleção essa exclusão se aplica. cadeia de caracteres (obrigatório)
selectorMatchOperator Quando matchVariable for uma coleção, opere no seletor para especificar a quais elementos na coleção essa exclusão se aplica. 'Contains'
'EndsWith'
'Equals'
'EqualsAny'
'StartsWith' (obrigatório)

PolicySettings

Nome Descrição Valor
customBlockResponseBody Se o tipo de ação for bloqueado, o cliente poderá substituir o corpo da resposta. O corpo deve ser especificado na codificação base64. corda

Restrições:
Comprimento máximo =
Padrão = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode Se o tipo de ação for bloqueado, o cliente poderá substituir o código de status de resposta. int

Restrições:
Valor mínimo = 0
fileUploadEnforcement Se permitir que o WAF imponha limites de upload de arquivo. Bool
fileUploadLimitInMb Tamanho máximo de upload de arquivo em Mb para WAF. int

Restrições:
Valor mínimo = 0
jsChallengeCookieExpirationInMins Tempo de expiração do cookie do Desafio javaScript do Firewall do Aplicativo Web em minutos. int

Restrições:
Valor mínimo = 5
Valor máximo = 1440
logScrubbing Para esfregar campos de log confidenciais PolicySettingsLogScrubbing
maxRequestBodySizeInKb Tamanho máximo do corpo da solicitação em Kb para WAF. int

Restrições:
Valor mínimo = 8
modo O modo da política. 'Detecção'
'Prevenção'
requestBodyCheck Se o WAF deve permitir que o WAF verifique o corpo da solicitação. Bool
requestBodyEnforcement Se permite que o WAF imponha limites do corpo da solicitação. Bool
requestBodyInspectLimitInKB Limite máximo de inspeção em KB para inspeção do corpo da solicitação para WAF. int
estado O estado da política. 'Desabilitado'
'Habilitado'

PolicySettingsLogScrubbing

Nome Descrição Valor
scrubbingRules As regras que são aplicadas aos logs para limpeza. WebApplicationFirewallScrubbingRules[]
estado Estado da configuração de limpeza de log. O valor padrão está habilitado. 'Desabilitado'
'Habilitado'

ResourceTags

Nome Descrição Valor

WebApplicationFirewallCustomRule

Nome Descrição Valor
ação Tipo de Ações. 'Permitir'
'Bloquear'
'JSChallenge'
'Log' (obrigatório)
groupByUserSession Lista de cláusulas de grupo de identificadores de sessão de usuário. GroupByUserSession []
matchConditions Lista de condições de correspondência. MatchCondition[] (obrigatório)
nome O nome do recurso que é exclusivo dentro de uma política. Esse nome pode ser usado para acessar o recurso. corda

Restrições:
Comprimento máximo =
prioridade Prioridade da regra. As regras com um valor mais baixo serão avaliadas antes das regras com um valor mais alto. int (obrigatório)
rateLimitDuration Duração sobre a qual a política limite de taxa será aplicada. Aplica-se somente quando ruleType é RateLimitRule. 'FiveMins'
'OneMin'
rateLimitThreshold Limite de taxa a ser aplicado caso ruleType seja RateLimitRule. Deve ser maior ou igual a 1 int
ruleType O tipo de regra. 'Inválido'
'MatchRule'
'RateLimitRule' (obrigatório)
estado Descreve se a regra personalizada está no estado habilitado ou desabilitado. O padrão é Habilitado se não for especificado. 'Desabilitado'
'Habilitado'

WebApplicationFirewallPolicyPropertiesFormat

Nome Descrição Valor
customRules As regras personalizadas dentro da política. WebApplicationFirewallCustomRule[]
managedRules Descreve a estrutura managedRules. ManagedRulesDefinition (obrigatório)
policySettings Os PolicySettings para a política. PolicySettings

WebApplicationFirewallScrubbingRules

Nome Descrição Valor
matchVariable A variável a ser removida dos logs. 'RequestArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestJSONArgNames'
'RequestPostArgNames' (obrigatório)
seletor Quando matchVariable é uma coleção, o operador usado para especificar a quais elementos na coleção essa regra se aplica. corda
selectorMatchOperator Quando matchVariable for uma coleção, opere no seletor para especificar a quais elementos na coleção essa regra se aplica. 'Equals'
'EqualsAny' (obrigatório)
estado Define o estado da regra de limpeza de log. O valor padrão está habilitado. 'Desabilitado'
'Habilitado'