Partilhar via


Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies 2023-09-01

Definição de recursos do bíceps

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 log de alterações.

Formato do recurso

Para criar um recurso Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies, adicione o seguinte Bíceps ao seu modelo.

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

ExclusionManagedRule

Designação Descrição Valor
ruleId Identificador da regra gerenciada. string (obrigatório)

ExclusionManagedRuleGroup

Designação Descrição Valor
ruleGroupName O grupo de regras gerenciadas para exclusão. string (obrigatório)
regras Lista de regras que serão excluídas. Se nenhuma for especificada, todas as regras do grupo serão excluídas. ExclusionManagedRule[]

ExclusionManagedRuleSet

Designação 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. string (obrigatório)
ruleSetVersion Define a versão do conjunto de regras a ser usado. string (obrigatório)

GroupByUserSession

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

GroupByVariable

Designação Descrição Valor
nomevariável Variável de cláusula User Session. 'ClientAddr'
'Geolocalização'
«Nenhum» (obrigatório)

ManagedRuleGroupOverride

Designação Descrição Valor
ruleGroupName O grupo de regras gerenciadas a ser substituído. string (obrigatório)
regras Lista de regras que serão desativadas. Se nenhum for especificado, todas as regras do grupo serão desativadas. ManagedRuleOverride[]

ManagedRuleOverride

Designação Descrição Valor
ação Descreve a ação de substituição a ser aplicada quando a regra corresponder. 'Permitir'
'Anomalia'
'Bloqueio'
'JSChallenge'
'Log'
ruleId Identificador da regra gerenciada. string (obrigatório)
Estado O estado da regra administrada. O padrão é Desativado se não for especificado. 'Desativado'
'Habilitado'

ManagedRulesDefinition

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

ManagedRuleSet

Designação Descrição Valor
ruleGroupSubstitui 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. string (obrigatório)
ruleSetVersion Define a versão do conjunto de regras a ser usado. string (obrigatório)

Condição de correspondência

Designação Descrição Valor
matchValues Valor correspondente. string[] (obrigatório)
matchVariables Lista de variáveis de correspondência. MatchVariable[] (obrigatório)
negaçãoConditon Se esta é condição negada ou não. Bool
Operador O operador a ser correspondido. 'Qualquer'
'Começa com'
«Contém»
'Acaba com'
'Igual'
'GeoMatch'
'MaiorQue'
'MaiorThanOrEqual'
'IPMatch'
'Menosque'
'LessThanOrEqual'
«Regex» (obrigatório)
transforma Lista de transformações. Matriz de cadeia de caracteres contendo qualquer uma das:
'HtmlEntityDecode'
'Minúsculas'
'RemoveNulls'
'Guarnição'
'Maiúsculas'
'UrlDecode'
'UrlEncode'

MatchVariable

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

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

Designação Descrição Valor
Localização Localização do recurso. string
Designação O nome do recurso string

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

OwaspCrsExclusionEntry

Designação Descrição Valor
exclusionManagedRuleSets Os conjuntos de regras gerenciadas associados à exclusão. ExclusionManagedRuleSet []
matchVariable A variável a excluir. 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'RequestHeaderNames'
'RequestHeaderValues' (obrigatório)
seletor Quando matchVariable é uma coleção, operador usado para especificar a quais elementos na coleção essa exclusão se aplica. string (obrigatório)
selectorMatchOperator Quando matchVariable for uma coleção, opere no seletor para especificar a quais elementos da coleção essa exclusão se aplica. «Contém»
'Acaba com'
'Iguais'
'EqualsAny'
'StartsWith' (obrigatório)

Configurações de política

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

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 block, o cliente poderá substituir o código de status da resposta. Int

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

Restrições:
Valor mínimo = 0
logEsfregando Para limpar 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'
pedidoBodyCheck Se deve permitir que o WAF verifique o corpo da solicitação. Bool
pedidoCorpoExecução Se permite que o WAF imponha limites de corpo de solicitação. Bool
requestBodyInspectLimitInKB Limite máximo de inspeção em KB para inspeção de órgão de solicitação para WAF. Int
Estado O estado da política. 'Desativado'
'Habilitado'

PolicySettingsLogScrubbing

Designação Descrição Valor
spurbbingRegras As regras que são aplicadas aos logs para depuração. WebApplicationFirewallScrubbingRules[]
Estado Estado da configuração de depuração de log. O valor padrão é Enabled. 'Desativado'
'Habilitado'

Tags de Recursos

Designação Descrição Valor

WebApplicationFirewallCustomRule

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

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 elevado. int (obrigatório)
rateLimitDuration Duração durante a qual a política de Limite de Taxa será aplicada. Aplica-se somente quando ruleType é RateLimitRule. 'Cinco minutos'
'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'
'Regra de correspondência'
'RateLimitRule' (obrigatório)
Estado Descreve se a regra personalizada está no estado habilitado ou desabilitado. O padrão é Ativado se não for especificado. 'Desativado'
'Habilitado'

WebApplicationFirewallPolicyPropertiesFormat

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

WebApplicationFirewallScrubbingRules

Designação Descrição Valor
matchVariable A variável a ser esfregada 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. string
selectorMatchOperator Quando matchVariable é uma coleção, opere no seletor para especificar a quais elementos na coleção essa regra se aplica. 'Iguais'
'EqualsAny' (obrigatório)
Estado Define o estado da regra de depuração de log. O valor padrão é Enabled. 'Desativado'
'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 AKS com um gateway NAT e um gateway de aplicativo Este exemplo mostra como implantar um cluster AKS com o NAT Gateway para conexões de saída e um Application Gateway para conexões de entrada.
cluster AKS com o Application Gateway Ingress Controller Este exemplo mostra como implantar um cluster AKS com o Application Gateway, o Application Gateway Ingress Controller, o Azure Container Registry, o Log Analytics e o Key Vault
Application Gateway com WAF e de 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 Azure Application Gateway Este modelo cria um Firewall de Aplicativo Web do Azure v2 no Gateway de Aplicativo do Azure com dois servidores Windows Server 2016 no pool de back-end
Porta da frente Standard/Premium com origem no Application Gateway Este modelo cria uma instância do Front Door Standard/Premium e do Application Gateway e usa uma política NSG e WAF para validar que o tráfego passou pela origem do Front Door.
porta de entrada com instâncias de contêiner e do Application Gateway Este modelo cria um Front Door Standard/Premium com um grupo de contêineres e Application Gateway.

Definição de recurso de modelo 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 log de alterações.

Formato do recurso

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

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

ExclusionManagedRule

Designação Descrição Valor
ruleId Identificador da regra gerenciada. string (obrigatório)

ExclusionManagedRuleGroup

Designação Descrição Valor
ruleGroupName O grupo de regras gerenciadas para exclusão. string (obrigatório)
regras Lista de regras que serão excluídas. Se nenhuma for especificada, todas as regras do grupo serão excluídas. ExclusionManagedRule[]

ExclusionManagedRuleSet

Designação 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. string (obrigatório)
ruleSetVersion Define a versão do conjunto de regras a ser usado. string (obrigatório)

GroupByUserSession

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

GroupByVariable

Designação Descrição Valor
nomevariável Variável de cláusula User Session. 'ClientAddr'
'Geolocalização'
«Nenhum» (obrigatório)

ManagedRuleGroupOverride

Designação Descrição Valor
ruleGroupName O grupo de regras gerenciadas a ser substituído. string (obrigatório)
regras Lista de regras que serão desativadas. Se nenhum for especificado, todas as regras do grupo serão desativadas. ManagedRuleOverride[]

ManagedRuleOverride

Designação Descrição Valor
ação Descreve a ação de substituição a ser aplicada quando a regra corresponder. 'Permitir'
'Anomalia'
'Bloqueio'
'JSChallenge'
'Log'
ruleId Identificador da regra gerenciada. string (obrigatório)
Estado O estado da regra administrada. O padrão é Desativado se não for especificado. 'Desativado'
'Habilitado'

ManagedRulesDefinition

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

ManagedRuleSet

Designação Descrição Valor
ruleGroupSubstitui 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. string (obrigatório)
ruleSetVersion Define a versão do conjunto de regras a ser usado. string (obrigatório)

Condição de correspondência

Designação Descrição Valor
matchValues Valor correspondente. string[] (obrigatório)
matchVariables Lista de variáveis de correspondência. MatchVariable[] (obrigatório)
negaçãoConditon Se esta é condição negada ou não. Bool
Operador O operador a ser correspondido. 'Qualquer'
'Começa com'
«Contém»
'Acaba com'
'Igual'
'GeoMatch'
'MaiorQue'
'MaiorThanOrEqual'
'IPMatch'
'Menosque'
'LessThanOrEqual'
«Regex» (obrigatório)
transforma Lista de transformações. Matriz de cadeia de caracteres contendo qualquer uma das:
'HtmlEntityDecode'
'Minúsculas'
'RemoveNulls'
'Guarnição'
'Maiúsculas'
'UrlDecode'
'UrlEncode'

MatchVariable

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

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

Designação Descrição Valor
apiVersion A versão api '2023-09-01'
Localização Localização do recurso. string
Designação O nome do recurso string

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

OwaspCrsExclusionEntry

Designação Descrição Valor
exclusionManagedRuleSets Os conjuntos de regras gerenciadas associados à exclusão. ExclusionManagedRuleSet []
matchVariable A variável a excluir. 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'RequestHeaderNames'
'RequestHeaderValues' (obrigatório)
seletor Quando matchVariable é uma coleção, operador usado para especificar a quais elementos na coleção essa exclusão se aplica. string (obrigatório)
selectorMatchOperator Quando matchVariable for uma coleção, opere no seletor para especificar a quais elementos da coleção essa exclusão se aplica. «Contém»
'Acaba com'
'Iguais'
'EqualsAny'
'StartsWith' (obrigatório)

Configurações de política

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

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 block, o cliente poderá substituir o código de status da resposta. Int

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

Restrições:
Valor mínimo = 0
logEsfregando Para limpar 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'
pedidoBodyCheck Se deve permitir que o WAF verifique o corpo da solicitação. Bool
pedidoCorpoExecução Se permite que o WAF imponha limites de corpo de solicitação. Bool
requestBodyInspectLimitInKB Limite máximo de inspeção em KB para inspeção de órgão de solicitação para WAF. Int
Estado O estado da política. 'Desativado'
'Habilitado'

PolicySettingsLogScrubbing

Designação Descrição Valor
spurbbingRegras As regras que são aplicadas aos logs para depuração. WebApplicationFirewallScrubbingRules[]
Estado Estado da configuração de depuração de log. O valor padrão é Enabled. 'Desativado'
'Habilitado'

Tags de Recursos

Designação Descrição Valor

WebApplicationFirewallCustomRule

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

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 elevado. int (obrigatório)
rateLimitDuration Duração durante a qual a política de Limite de Taxa será aplicada. Aplica-se somente quando ruleType é RateLimitRule. 'Cinco minutos'
'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'
'Regra de correspondência'
'RateLimitRule' (obrigatório)
Estado Descreve se a regra personalizada está no estado habilitado ou desabilitado. O padrão é Ativado se não for especificado. 'Desativado'
'Habilitado'

WebApplicationFirewallPolicyPropertiesFormat

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

WebApplicationFirewallScrubbingRules

Designação Descrição Valor
matchVariable A variável a ser esfregada 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. string
selectorMatchOperator Quando matchVariable é uma coleção, opere no seletor para especificar a quais elementos na coleção essa regra se aplica. 'Iguais'
'EqualsAny' (obrigatório)
Estado Define o estado da regra de depuração de log. O valor padrão é Enabled. 'Desativado'
'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 AKS com um gateway NAT e um gateway de aplicativo

Implantar no Azure
Este exemplo mostra como implantar um cluster AKS com o NAT Gateway para conexões de saída e um Application Gateway para conexões de entrada.
cluster AKS com o Application Gateway Ingress Controller

Implantar no Azure
Este exemplo mostra como implantar um cluster AKS com o Application Gateway, o Application Gateway Ingress Controller, o Azure Container Registry, o Log Analytics e o Key Vault
Application Gateway com WAF e de 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 Azure Application Gateway

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

Implantar no Azure
Este modelo cria uma instância do Front Door Standard/Premium e do Application Gateway e usa uma política NSG e WAF para validar que o tráfego passou pela origem do Front Door.
porta de entrada com instâncias de contêiner e do Application Gateway

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

Definição de recursos Terraform (provedor 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 log de alterações.

Formato do recurso

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

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-09-01"
  name = "string"
  location = "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
        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

ExclusionManagedRule

Designação Descrição Valor
ruleId Identificador da regra gerenciada. string (obrigatório)

ExclusionManagedRuleGroup

Designação Descrição Valor
ruleGroupName O grupo de regras gerenciadas para exclusão. string (obrigatório)
regras Lista de regras que serão excluídas. Se nenhuma for especificada, todas as regras do grupo serão excluídas. ExclusionManagedRule[]

ExclusionManagedRuleSet

Designação 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. string (obrigatório)
ruleSetVersion Define a versão do conjunto de regras a ser usado. string (obrigatório)

GroupByUserSession

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

GroupByVariable

Designação Descrição Valor
nomevariável Variável de cláusula User Session. 'ClientAddr'
'Geolocalização'
«Nenhum» (obrigatório)

ManagedRuleGroupOverride

Designação Descrição Valor
ruleGroupName O grupo de regras gerenciadas a ser substituído. string (obrigatório)
regras Lista de regras que serão desativadas. Se nenhum for especificado, todas as regras do grupo serão desativadas. ManagedRuleOverride[]

ManagedRuleOverride

Designação Descrição Valor
ação Descreve a ação de substituição a ser aplicada quando a regra corresponder. 'Permitir'
'Anomalia'
'Bloqueio'
'JSChallenge'
'Log'
ruleId Identificador da regra gerenciada. string (obrigatório)
Estado O estado da regra administrada. O padrão é Desativado se não for especificado. 'Desativado'
'Habilitado'

ManagedRulesDefinition

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

ManagedRuleSet

Designação Descrição Valor
ruleGroupSubstitui 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. string (obrigatório)
ruleSetVersion Define a versão do conjunto de regras a ser usado. string (obrigatório)

Condição de correspondência

Designação Descrição Valor
matchValues Valor correspondente. string[] (obrigatório)
matchVariables Lista de variáveis de correspondência. MatchVariable[] (obrigatório)
negaçãoConditon Se esta é condição negada ou não. Bool
Operador O operador a ser correspondido. 'Qualquer'
'Começa com'
«Contém»
'Acaba com'
'Igual'
'GeoMatch'
'MaiorQue'
'MaiorThanOrEqual'
'IPMatch'
'Menosque'
'LessThanOrEqual'
«Regex» (obrigatório)
transforma Lista de transformações. Matriz de cadeia de caracteres contendo qualquer uma das:
'HtmlEntityDecode'
'Minúsculas'
'RemoveNulls'
'Guarnição'
'Maiúsculas'
'UrlDecode'
'UrlEncode'

MatchVariable

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

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

Designação Descrição Valor
Localização Localização do recurso. string
Designação O nome do recurso string

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

OwaspCrsExclusionEntry

Designação Descrição Valor
exclusionManagedRuleSets Os conjuntos de regras gerenciadas associados à exclusão. ExclusionManagedRuleSet []
matchVariable A variável a excluir. 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'RequestHeaderNames'
'RequestHeaderValues' (obrigatório)
seletor Quando matchVariable é uma coleção, operador usado para especificar a quais elementos na coleção essa exclusão se aplica. string (obrigatório)
selectorMatchOperator Quando matchVariable for uma coleção, opere no seletor para especificar a quais elementos da coleção essa exclusão se aplica. «Contém»
'Acaba com'
'Iguais'
'EqualsAny'
'StartsWith' (obrigatório)

Configurações de política

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

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 block, o cliente poderá substituir o código de status da resposta. Int

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

Restrições:
Valor mínimo = 0
logEsfregando Para limpar 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'
pedidoBodyCheck Se deve permitir que o WAF verifique o corpo da solicitação. Bool
pedidoCorpoExecução Se permite que o WAF imponha limites de corpo de solicitação. Bool
requestBodyInspectLimitInKB Limite máximo de inspeção em KB para inspeção de órgão de solicitação para WAF. Int
Estado O estado da política. 'Desativado'
'Habilitado'

PolicySettingsLogScrubbing

Designação Descrição Valor
spurbbingRegras As regras que são aplicadas aos logs para depuração. WebApplicationFirewallScrubbingRules[]
Estado Estado da configuração de depuração de log. O valor padrão é Enabled. 'Desativado'
'Habilitado'

Tags de Recursos

Designação Descrição Valor

WebApplicationFirewallCustomRule

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

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 elevado. int (obrigatório)
rateLimitDuration Duração durante a qual a política de Limite de Taxa será aplicada. Aplica-se somente quando ruleType é RateLimitRule. 'Cinco minutos'
'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'
'Regra de correspondência'
'RateLimitRule' (obrigatório)
Estado Descreve se a regra personalizada está no estado habilitado ou desabilitado. O padrão é Ativado se não for especificado. 'Desativado'
'Habilitado'

WebApplicationFirewallPolicyPropertiesFormat

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

WebApplicationFirewallScrubbingRules

Designação Descrição Valor
matchVariable A variável a ser esfregada 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. string
selectorMatchOperator Quando matchVariable é uma coleção, opere no seletor para especificar a quais elementos na coleção essa regra se aplica. 'Iguais'
'EqualsAny' (obrigatório)
Estado Define o estado da regra de depuração de log. O valor padrão é Enabled. 'Desativado'
'Habilitado'