Partilhar via


Microsoft.Network FrontDoorWebApplicationFirewallPolíticas

Definição de recursos do bíceps

O tipo de recurso FrontDoorWebApplicationFirewallPolicies 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/FrontDoorWebApplicationFirewallPolicies, adicione o seguinte Bicep ao seu modelo.

resource symbolicname 'Microsoft.Network/FrontDoorWebApplicationFirewallPolicies@2024-02-01' = {
  etag: 'string'
  location: 'string'
  name: 'string'
  properties: {
    customRules: {
      rules: [
        {
          action: 'string'
          enabledState: 'string'
          groupBy: [
            {
              variableName: 'string'
            }
          ]
          matchConditions: [
            {
              matchValue: [
                'string'
              ]
              matchVariable: 'string'
              negateCondition: bool
              operator: 'string'
              selector: 'string'
              transforms: [
                'string'
              ]
            }
          ]
          name: 'string'
          priority: int
          rateLimitDurationInMinutes: int
          rateLimitThreshold: int
          ruleType: 'string'
        }
      ]
    }
    managedRules: {
      managedRuleSets: [
        {
          exclusions: [
            {
              matchVariable: 'string'
              selector: 'string'
              selectorMatchOperator: 'string'
            }
          ]
          ruleGroupOverrides: [
            {
              exclusions: [
                {
                  matchVariable: 'string'
                  selector: 'string'
                  selectorMatchOperator: 'string'
                }
              ]
              ruleGroupName: 'string'
              rules: [
                {
                  action: 'string'
                  enabledState: 'string'
                  exclusions: [
                    {
                      matchVariable: 'string'
                      selector: 'string'
                      selectorMatchOperator: 'string'
                    }
                  ]
                  ruleId: 'string'
                }
              ]
            }
          ]
          ruleSetAction: 'string'
          ruleSetType: 'string'
          ruleSetVersion: 'string'
        }
      ]
    }
    policySettings: {
      customBlockResponseBody: 'string'
      customBlockResponseStatusCode: int
      enabledState: 'string'
      javascriptChallengeExpirationInMinutes: int
      logScrubbing: {
        scrubbingRules: [
          {
            matchVariable: 'string'
            selector: 'string'
            selectorMatchOperator: 'string'
            state: 'string'
          }
        ]
        state: 'string'
      }
      mode: 'string'
      redirectUrl: 'string'
      requestBodyCheck: 'string'
    }
  }
  sku: {
    name: 'string'
  }
  tags: {
    {customized property}: 'string'
  }
}

Valores de propriedade

Regra Personalizada

Designação Descrição Valor
ação Descreve a ação a ser aplicada quando a regra corresponder. 'Permitir'
'Anomalia'
'Bloqueio'
'JSChallenge'
'Log'
'Redireccionar' (obrigatório)
enabledState Descreve se a regra personalizada está no estado habilitado ou desabilitado. O padrão é Ativado se não for especificado. 'Desativado'
'Habilitado'
groupBy Descreve a lista de variáveis para agrupar as solicitações de limite de taxa GroupByVariable[]
matchCondições Lista de condições de jogo. MatchCondition[] (obrigatório)
Designação Descreve o nome da regra. string

Restrições:
Comprimento máximo =
prioridade Descreve a prioridade da regra. As regras com um valor mais baixo serão avaliadas antes das regras com um valor mais elevado. int (obrigatório)
rateLimitDurationInMinutes Janela de tempo para redefinir a contagem do limite de taxa. O padrão é 1 minuto. Int

Restrições:
Valor mínimo = 0
Valor máximo = 5
rateLimitThreshold Número de solicitações permitidas por cliente dentro da janela de tempo. Int

Restrições:
Valor mínimo = 0
ruleType Descreve o tipo de regra. 'Regra de correspondência'
'RateLimitRule' (obrigatório)

CustomRuleList

Designação Descrição Valor
regras Lista de regras CustomRule[]

GroupByVariable

Designação Descrição Valor
nomevariável Descreve a variável suportada para o grupo por 'Geolocalização'
'Nenhuma'
'SocketAddr' (obrigatório)

ManagedRuleExclusion

Designação Descrição Valor
matchVariable O tipo de variável a ser excluída. 'QueryStringArgNames'
'RequestBodyJsonArgNames'
'RequestBodyPostArgNames'
'RequestCookieNames'
'RequestHeaderNames' (obrigatório)
seletor Valor seletor para os elementos da coleção aos quais essa exclusão se aplica. string (obrigatório)
selectorMatchOperator Operador de comparação a ser aplicado ao seletor ao especificar a quais elementos da coleção essa exclusão se aplica. «Contém»
'Acaba com'
'Iguais'
'EqualsAny'
'StartsWith' (obrigatório)

ManagedRuleGroupOverride

Designação Descrição Valor
Exclusões Descreve as exclusões que são aplicadas a todas as regras no grupo. ManagedRuleExclusion []
ruleGroupName Descreve 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'
'Redirecionamento'
enabledState Descreve se a regra gerenciada está no estado habilitado ou desabilitado. O padrão é Desativado se não for especificado. 'Desativado'
'Habilitado'
Exclusões Descreve as exclusões que são aplicadas a esta regra específica. ManagedRuleExclusion []
ruleId Identificador da regra gerenciada. string (obrigatório)

ManagedRuleSet

Designação Descrição Valor
Exclusões Descreve as exclusões que são aplicadas a todas as regras no conjunto. ManagedRuleExclusion []
ruleGroupSubstitui Define as substituições do grupo de regras a serem aplicadas ao conjunto de regras. ManagedRuleGroupOverride[]
ruleSetAction Define a ação do conjunto de regras. 'Bloqueio'
'Log'
'Redirecionamento'
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)

ManagedRuleSetList

Designação Descrição Valor
managedRuleSets Lista de conjuntos de regras. ManagedRuleSet []

Condição de correspondência

Designação Descrição Valor
matchValue Lista de possíveis valores de correspondência. string[] (obrigatório)
matchVariable Variável de solicitação para comparar. 'Cookies'
'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestHeader'
'RequestMethod'
'RequestUri'
'SocketAddr' (obrigatório)
negateCondition Descreve se o resultado dessa condição deve ser negado. Bool
Operador Tipo de comparação a ser usado para correspondência com o valor da variável. 'Qualquer'
'Começa com'
«Contém»
'Acaba com'
'Igual'
'GeoMatch'
'MaiorQue'
'MaiorThanOrEqual'
'IPMatch'
'Menosque'
'LessThanOrEqual'
'RegEx' (obrigatório)
seletor Corresponder a uma chave específica das variáveis QueryString, PostArgs, RequestHeader ou Cookies. O padrão é null. string
transforma Lista de transformações. Matriz de cadeia de caracteres contendo qualquer uma das:
'Minúsculas'
'RemoveNulls'
'Guarnição'
'Maiúsculas'
'UrlDecode'
'UrlEncode'

Microsoft.Network/FrontDoorWebApplicationFirewallPolicies

Designação Descrição Valor
etag Obtém uma cadeia de caracteres somente leitura exclusiva que muda sempre que o recurso é atualizado. string
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. WebApplicationFirewallPolicyProperties
SKU A camada de preço da política de firewall de aplicativos Web. O padrão é Classic_AzureFrontDoor se não for especificado. Sku
Etiquetas Etiquetas de recursos Dicionário de nomes e valores de tags. Consulte Tags em modelos

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:
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
enabledState Descreve se a política está no estado habilitado ou desabilitado. O padrão é Ativado se não for especificado. 'Desativado'
'Habilitado'
javascriptChallengeExpirationInMinutes Define o tempo de vida da validade do cookie de desafio JavaScript em minutos. Esta definição só é aplicável a Premium_AzureFrontDoor. O valor deve ser um inteiro entre 5 e 1440 com o valor padrão sendo 30. Int

Restrições:
Valor mínimo = 5
Valor máximo = 1440
logEsfregando Define regras que eliminam campos confidenciais nos logs do Web Application Firewall. PolicySettingsLogScrubbing
modo Descreve se ele está no modo de deteção ou no modo de prevenção no nível da política. 'Detecção'
'Prevenção'
redirectUrl Se o tipo de ação for redirecionamento, esse campo representará a URL de redirecionamento para o cliente. string
pedidoBodyCheck Descreve se as regras gerenciadas por política inspecionarão o conteúdo do corpo da solicitação. 'Desativado'
'Habilitado'

PolicySettingsLogScrubbing

Designação Descrição Valor
spurbbingRegras Lista de regras de depuração de log aplicadas aos logs do Web Application Firewall. 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

Referência

Designação Descrição Valor
Designação Nome do nível de preços. 'Classic_AzureFrontDoor'
'Premium_AzureFrontDoor'
'Standard_AzureFrontDoor'

WebApplicationFirewallPolicyProperties

Designação Descrição Valor
customRules Descreve regras personalizadas dentro da política. CustomRuleList
managedRegras Descreve as regras gerenciadas dentro da política. ManagedRuleSetList
policySettings Descreve as configurações da política. PolicySettings

WebApplicationFirewallScrubbingRules

Designação Descrição Valor
matchVariable A variável a ser esfregada dos logs. 'QueryStringArgNames'
'RequestBodyJsonArgNames'
'RequestBodyPostArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestUri' (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 de uma regra de depuração de log. O valor padrão está habilitado. '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
Configurar defaultRuleSet gerenciado pelo WAF para o Azure Front Door Este modelo configura defaultRuleSet gerenciado pelo WAF para o Azure Front Door
Front Door Premium com origem blob e Private Link Este modelo cria um Front Door Premium e um contêiner de blob de Armazenamento do Azure e usa um ponto de extremidade privado para Front Door para enviar tráfego para a conta de armazenamento.
Front Door Premium com WAF e conjuntos de regras gerenciados pela Microsoft Este modelo cria um Front Door Premium, incluindo um firewall de aplicativo Web com os conjuntos de regras padrão e de proteção de bot gerenciados pela Microsoft.
Porta dianteira Standard/Premium com de filtragem geográfica Este modelo cria um Front Door Standard/Premium, incluindo um firewall de aplicativo da Web com uma regra de filtragem geográfica.
Porta da frente Standard/Premium com limite de tarifa Este modelo cria um Front Door Standard/Premium, incluindo um firewall de aplicativo da Web com uma regra de limite de taxa.
Porta da frente Standard/Premium com WAF e regras personalizadas Este modelo cria um Front Door Standard/Premium, incluindo um firewall de aplicativo da Web com uma regra personalizada.
Front Door com origens de blob para blobs carregar Este modelo cria uma Porta de Entrada com origens, rotas e conjuntos de regras e uma conta de Armazenamento do Azure com contêineres de blob. Front Door envia tráfego para as contas de armazenamento ao carregar arquivos.
CDN FrontDoor com WAF, domínios e logs para o EventHub Este modelo cria um novo perfil cdn do Azure FrontDoor. Crie WAF com regras personalizadas e gerenciadas, rotas cdn, origem e grupos com sua associação com WAF e rotas, configure domínios personalizados, crie hub de eventos e configurações de diagnóstico para enviar logs de acesso CDN usando hub de eventos.
Function App protegido pelo Azure Frontdoor Este modelo permite implantar uma função azure premium protegida e publicada pelo Azure Frontdoor premium. A conexão entre o Azure Frontdoor e o Azure Functions é protegida pelo Azure Private Link.

Definição de recurso de modelo ARM

O tipo de recurso FrontDoorWebApplicationFirewallPolicies 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/FrontDoorWebApplicationFirewallPolicies, adicione o seguinte JSON ao seu modelo.

{
  "type": "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies",
  "apiVersion": "2024-02-01",
  "name": "string",
  "etag": "string",
  "location": "string",
  "properties": {
    "customRules": {
      "rules": [
        {
          "action": "string",
          "enabledState": "string",
          "groupBy": [
            {
              "variableName": "string"
            }
          ],
          "matchConditions": [
            {
              "matchValue": [ "string" ],
              "matchVariable": "string",
              "negateCondition": "bool",
              "operator": "string",
              "selector": "string",
              "transforms": [ "string" ]
            }
          ],
          "name": "string",
          "priority": "int",
          "rateLimitDurationInMinutes": "int",
          "rateLimitThreshold": "int",
          "ruleType": "string"
        }
      ]
    },
    "managedRules": {
      "managedRuleSets": [
        {
          "exclusions": [
            {
              "matchVariable": "string",
              "selector": "string",
              "selectorMatchOperator": "string"
            }
          ],
          "ruleGroupOverrides": [
            {
              "exclusions": [
                {
                  "matchVariable": "string",
                  "selector": "string",
                  "selectorMatchOperator": "string"
                }
              ],
              "ruleGroupName": "string",
              "rules": [
                {
                  "action": "string",
                  "enabledState": "string",
                  "exclusions": [
                    {
                      "matchVariable": "string",
                      "selector": "string",
                      "selectorMatchOperator": "string"
                    }
                  ],
                  "ruleId": "string"
                }
              ]
            }
          ],
          "ruleSetAction": "string",
          "ruleSetType": "string",
          "ruleSetVersion": "string"
        }
      ]
    },
    "policySettings": {
      "customBlockResponseBody": "string",
      "customBlockResponseStatusCode": "int",
      "enabledState": "string",
      "javascriptChallengeExpirationInMinutes": "int",
      "logScrubbing": {
        "scrubbingRules": [
          {
            "matchVariable": "string",
            "selector": "string",
            "selectorMatchOperator": "string",
            "state": "string"
          }
        ],
        "state": "string"
      },
      "mode": "string",
      "redirectUrl": "string",
      "requestBodyCheck": "string"
    }
  },
  "sku": {
    "name": "string"
  },
  "tags": {
    "{customized property}": "string"
  }
}

Valores de propriedade

Regra Personalizada

Designação Descrição Valor
ação Descreve a ação a ser aplicada quando a regra corresponder. 'Permitir'
'Anomalia'
'Bloqueio'
'JSChallenge'
'Log'
'Redireccionar' (obrigatório)
enabledState Descreve se a regra personalizada está no estado habilitado ou desabilitado. O padrão é Ativado se não for especificado. 'Desativado'
'Habilitado'
groupBy Descreve a lista de variáveis para agrupar as solicitações de limite de taxa GroupByVariable[]
matchCondições Lista de condições de jogo. MatchCondition[] (obrigatório)
Designação Descreve o nome da regra. string

Restrições:
Comprimento máximo =
prioridade Descreve a prioridade da regra. As regras com um valor mais baixo serão avaliadas antes das regras com um valor mais elevado. int (obrigatório)
rateLimitDurationInMinutes Janela de tempo para redefinir a contagem do limite de taxa. O padrão é 1 minuto. Int

Restrições:
Valor mínimo = 0
Valor máximo = 5
rateLimitThreshold Número de solicitações permitidas por cliente dentro da janela de tempo. Int

Restrições:
Valor mínimo = 0
ruleType Descreve o tipo de regra. 'Regra de correspondência'
'RateLimitRule' (obrigatório)

CustomRuleList

Designação Descrição Valor
regras Lista de regras CustomRule[]

GroupByVariable

Designação Descrição Valor
nomevariável Descreve a variável suportada para o grupo por 'Geolocalização'
'Nenhuma'
'SocketAddr' (obrigatório)

ManagedRuleExclusion

Designação Descrição Valor
matchVariable O tipo de variável a ser excluída. 'QueryStringArgNames'
'RequestBodyJsonArgNames'
'RequestBodyPostArgNames'
'RequestCookieNames'
'RequestHeaderNames' (obrigatório)
seletor Valor seletor para os elementos da coleção aos quais essa exclusão se aplica. string (obrigatório)
selectorMatchOperator Operador de comparação a ser aplicado ao seletor ao especificar a quais elementos da coleção essa exclusão se aplica. «Contém»
'Acaba com'
'Iguais'
'EqualsAny'
'StartsWith' (obrigatório)

ManagedRuleGroupOverride

Designação Descrição Valor
Exclusões Descreve as exclusões que são aplicadas a todas as regras no grupo. ManagedRuleExclusion []
ruleGroupName Descreve 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'
'Redirecionamento'
enabledState Descreve se a regra gerenciada está no estado habilitado ou desabilitado. O padrão é Desativado se não for especificado. 'Desativado'
'Habilitado'
Exclusões Descreve as exclusões que são aplicadas a esta regra específica. ManagedRuleExclusion []
ruleId Identificador da regra gerenciada. string (obrigatório)

ManagedRuleSet

Designação Descrição Valor
Exclusões Descreve as exclusões que são aplicadas a todas as regras no conjunto. ManagedRuleExclusion []
ruleGroupSubstitui Define as substituições do grupo de regras a serem aplicadas ao conjunto de regras. ManagedRuleGroupOverride[]
ruleSetAction Define a ação do conjunto de regras. 'Bloqueio'
'Log'
'Redirecionamento'
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)

ManagedRuleSetList

Designação Descrição Valor
managedRuleSets Lista de conjuntos de regras. ManagedRuleSet []

Condição de correspondência

Designação Descrição Valor
matchValue Lista de possíveis valores de correspondência. string[] (obrigatório)
matchVariable Variável de solicitação para comparar. 'Cookies'
'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestHeader'
'RequestMethod'
'RequestUri'
'SocketAddr' (obrigatório)
negateCondition Descreve se o resultado dessa condição deve ser negado. Bool
Operador Tipo de comparação a ser usado para correspondência com o valor da variável. 'Qualquer'
'Começa com'
«Contém»
'Acaba com'
'Igual'
'GeoMatch'
'MaiorQue'
'MaiorThanOrEqual'
'IPMatch'
'Menosque'
'LessThanOrEqual'
'RegEx' (obrigatório)
seletor Corresponder a uma chave específica das variáveis QueryString, PostArgs, RequestHeader ou Cookies. O padrão é null. string
transforma Lista de transformações. Matriz de cadeia de caracteres contendo qualquer uma das:
'Minúsculas'
'RemoveNulls'
'Guarnição'
'Maiúsculas'
'UrlDecode'
'UrlEncode'

Microsoft.Network/FrontDoorWebApplicationFirewallPolicies

Designação Descrição Valor
apiVersion A versão api '2024-02-01'
etag Obtém uma cadeia de caracteres somente leitura exclusiva que muda sempre que o recurso é atualizado. string
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. WebApplicationFirewallPolicyProperties
SKU A camada de preço da política de firewall de aplicativos Web. O padrão é Classic_AzureFrontDoor se não for especificado. Sku
Etiquetas Etiquetas de recursos Dicionário de nomes e valores de tags. Consulte Tags em modelos
tipo O tipo de recurso 'Microsoft.Network/FrontDoorWebApplicationFirewallPolicies'

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:
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
enabledState Descreve se a política está no estado habilitado ou desabilitado. O padrão é Ativado se não for especificado. 'Desativado'
'Habilitado'
javascriptChallengeExpirationInMinutes Define o tempo de vida da validade do cookie de desafio JavaScript em minutos. Esta definição só é aplicável a Premium_AzureFrontDoor. O valor deve ser um inteiro entre 5 e 1440 com o valor padrão sendo 30. Int

Restrições:
Valor mínimo = 5
Valor máximo = 1440
logEsfregando Define regras que eliminam campos confidenciais nos logs do Web Application Firewall. PolicySettingsLogScrubbing
modo Descreve se ele está no modo de deteção ou no modo de prevenção no nível da política. 'Detecção'
'Prevenção'
redirectUrl Se o tipo de ação for redirecionamento, esse campo representará a URL de redirecionamento para o cliente. string
pedidoBodyCheck Descreve se as regras gerenciadas por política inspecionarão o conteúdo do corpo da solicitação. 'Desativado'
'Habilitado'

PolicySettingsLogScrubbing

Designação Descrição Valor
spurbbingRegras Lista de regras de depuração de log aplicadas aos logs do Web Application Firewall. 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

Referência

Designação Descrição Valor
Designação Nome do nível de preços. 'Classic_AzureFrontDoor'
'Premium_AzureFrontDoor'
'Standard_AzureFrontDoor'

WebApplicationFirewallPolicyProperties

Designação Descrição Valor
customRules Descreve regras personalizadas dentro da política. CustomRuleList
managedRegras Descreve as regras gerenciadas dentro da política. ManagedRuleSetList
policySettings Descreve as configurações da política. PolicySettings

WebApplicationFirewallScrubbingRules

Designação Descrição Valor
matchVariable A variável a ser esfregada dos logs. 'QueryStringArgNames'
'RequestBodyJsonArgNames'
'RequestBodyPostArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestUri' (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 de uma regra de depuração de log. O valor padrão está habilitado. '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
Configurar a restrição de IP do cliente WAF para o Azure Front Door

Implantar no Azure
Este modelo configura a restrição de IP do cliente WAF para o ponto de extremidade da Porta da Frente do Azure
Configurar defaultRuleSet gerenciado pelo WAF para o Azure Front Door

Implantar no Azure
Este modelo configura defaultRuleSet gerenciado pelo WAF para o Azure Front Door
Configurar a regra de limagem de taxa WAF para o ponto de extremidade do Azure Front Door

Implantar no Azure
Este modelo configura uma regra WAF para o Azure Front Door para limitar o tráfego de entrada para um determinado host frontend.
Configurar regras WAF com parâmetros http para Front Door

Implantar no Azure
Este modelo configura regras personalizadas do WAF com base em parâmetros http específicos para o ponto de extremidade do Azure Front Door.
Criar a Porta da Frente do Azure em frente ao de Gerenciamento de API do Azure

Implantar no Azure
Este exemplo demonstra como usar o Azure Front Door como um balanceador de carga global na frente do Gerenciamento de API do Azure.
Criar regra de Filtragem Geográfica WAF para o ponto de extremidade do Azure Front Door

Implantar no Azure
Este modelo cria uma regra de filtragem geográfica WAF para o Azure Front Door que permite/bloqueia o tráfego de determinados países.
Front Door Premium com origem blob e Private Link

Implantar no Azure
Este modelo cria um Front Door Premium e um contêiner de blob de Armazenamento do Azure e usa um ponto de extremidade privado para Front Door para enviar tráfego para a conta de armazenamento.
Front Door Premium com WAF e conjuntos de regras gerenciados pela Microsoft

Implantar no Azure
Este modelo cria um Front Door Premium, incluindo um firewall de aplicativo Web com os conjuntos de regras padrão e de proteção de bot gerenciados pela Microsoft.
Porta dianteira Standard/Premium com de filtragem geográfica

Implantar no Azure
Este modelo cria um Front Door Standard/Premium, incluindo um firewall de aplicativo da Web com uma regra de filtragem geográfica.
Porta da frente Standard/Premium com limite de tarifa

Implantar no Azure
Este modelo cria um Front Door Standard/Premium, incluindo um firewall de aplicativo da Web com uma regra de limite de taxa.
Porta da frente Standard/Premium com WAF e regras personalizadas

Implantar no Azure
Este modelo cria um Front Door Standard/Premium, incluindo um firewall de aplicativo da Web com uma regra personalizada.
Front Door com origens de blob para blobs carregar

Implantar no Azure
Este modelo cria uma Porta de Entrada com origens, rotas e conjuntos de regras e uma conta de Armazenamento do Azure com contêineres de blob. Front Door envia tráfego para as contas de armazenamento ao carregar arquivos.
CDN FrontDoor com WAF, domínios e logs para o EventHub

Implantar no Azure
Este modelo cria um novo perfil cdn do Azure FrontDoor. Crie WAF com regras personalizadas e gerenciadas, rotas cdn, origem e grupos com sua associação com WAF e rotas, configure domínios personalizados, crie hub de eventos e configurações de diagnóstico para enviar logs de acesso CDN usando hub de eventos.
Function App protegido pelo Azure Frontdoor

Implantar no Azure
Este modelo permite implantar uma função azure premium protegida e publicada pelo Azure Frontdoor premium. A conexão entre o Azure Frontdoor e o Azure Functions é protegida pelo Azure Private Link.

Definição de recursos Terraform (provedor AzAPI)

O tipo de recurso FrontDoorWebApplicationFirewallPolicies 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/FrontDoorWebApplicationFirewallPolicies, adicione o seguinte Terraform ao seu modelo.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies@2024-02-01"
  name = "string"
  etag = "string"
  location = "string"
  sku = {
    name = "string"
  }
  tags = {
    {customized property} = "string"
  }
  body = jsonencode({
    properties = {
      customRules = {
        rules = [
          {
            action = "string"
            enabledState = "string"
            groupBy = [
              {
                variableName = "string"
              }
            ]
            matchConditions = [
              {
                matchValue = [
                  "string"
                ]
                matchVariable = "string"
                negateCondition = bool
                operator = "string"
                selector = "string"
                transforms = [
                  "string"
                ]
              }
            ]
            name = "string"
            priority = int
            rateLimitDurationInMinutes = int
            rateLimitThreshold = int
            ruleType = "string"
          }
        ]
      }
      managedRules = {
        managedRuleSets = [
          {
            exclusions = [
              {
                matchVariable = "string"
                selector = "string"
                selectorMatchOperator = "string"
              }
            ]
            ruleGroupOverrides = [
              {
                exclusions = [
                  {
                    matchVariable = "string"
                    selector = "string"
                    selectorMatchOperator = "string"
                  }
                ]
                ruleGroupName = "string"
                rules = [
                  {
                    action = "string"
                    enabledState = "string"
                    exclusions = [
                      {
                        matchVariable = "string"
                        selector = "string"
                        selectorMatchOperator = "string"
                      }
                    ]
                    ruleId = "string"
                  }
                ]
              }
            ]
            ruleSetAction = "string"
            ruleSetType = "string"
            ruleSetVersion = "string"
          }
        ]
      }
      policySettings = {
        customBlockResponseBody = "string"
        customBlockResponseStatusCode = int
        enabledState = "string"
        javascriptChallengeExpirationInMinutes = int
        logScrubbing = {
          scrubbingRules = [
            {
              matchVariable = "string"
              selector = "string"
              selectorMatchOperator = "string"
              state = "string"
            }
          ]
          state = "string"
        }
        mode = "string"
        redirectUrl = "string"
        requestBodyCheck = "string"
      }
    }
  })
}

Valores de propriedade

Regra Personalizada

Designação Descrição Valor
ação Descreve a ação a ser aplicada quando a regra corresponder. 'Permitir'
'Anomalia'
'Bloqueio'
'JSChallenge'
'Log'
'Redireccionar' (obrigatório)
enabledState Descreve se a regra personalizada está no estado habilitado ou desabilitado. O padrão é Ativado se não for especificado. 'Desativado'
'Habilitado'
groupBy Descreve a lista de variáveis para agrupar as solicitações de limite de taxa GroupByVariable[]
matchCondições Lista de condições de jogo. MatchCondition[] (obrigatório)
Designação Descreve o nome da regra. string

Restrições:
Comprimento máximo =
prioridade Descreve a prioridade da regra. As regras com um valor mais baixo serão avaliadas antes das regras com um valor mais elevado. int (obrigatório)
rateLimitDurationInMinutes Janela de tempo para redefinir a contagem do limite de taxa. O padrão é 1 minuto. Int

Restrições:
Valor mínimo = 0
Valor máximo = 5
rateLimitThreshold Número de solicitações permitidas por cliente dentro da janela de tempo. Int

Restrições:
Valor mínimo = 0
ruleType Descreve o tipo de regra. 'Regra de correspondência'
'RateLimitRule' (obrigatório)

CustomRuleList

Designação Descrição Valor
regras Lista de regras CustomRule[]

GroupByVariable

Designação Descrição Valor
nomevariável Descreve a variável suportada para o grupo por 'Geolocalização'
'Nenhuma'
'SocketAddr' (obrigatório)

ManagedRuleExclusion

Designação Descrição Valor
matchVariable O tipo de variável a ser excluída. 'QueryStringArgNames'
'RequestBodyJsonArgNames'
'RequestBodyPostArgNames'
'RequestCookieNames'
'RequestHeaderNames' (obrigatório)
seletor Valor seletor para os elementos da coleção aos quais essa exclusão se aplica. string (obrigatório)
selectorMatchOperator Operador de comparação a ser aplicado ao seletor ao especificar a quais elementos da coleção essa exclusão se aplica. «Contém»
'Acaba com'
'Iguais'
'EqualsAny'
'StartsWith' (obrigatório)

ManagedRuleGroupOverride

Designação Descrição Valor
Exclusões Descreve as exclusões que são aplicadas a todas as regras no grupo. ManagedRuleExclusion []
ruleGroupName Descreve 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'
'Redirecionamento'
enabledState Descreve se a regra gerenciada está no estado habilitado ou desabilitado. O padrão é Desativado se não for especificado. 'Desativado'
'Habilitado'
Exclusões Descreve as exclusões que são aplicadas a esta regra específica. ManagedRuleExclusion []
ruleId Identificador da regra gerenciada. string (obrigatório)

ManagedRuleSet

Designação Descrição Valor
Exclusões Descreve as exclusões que são aplicadas a todas as regras no conjunto. ManagedRuleExclusion []
ruleGroupSubstitui Define as substituições do grupo de regras a serem aplicadas ao conjunto de regras. ManagedRuleGroupOverride[]
ruleSetAction Define a ação do conjunto de regras. 'Bloqueio'
'Log'
'Redirecionamento'
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)

ManagedRuleSetList

Designação Descrição Valor
managedRuleSets Lista de conjuntos de regras. ManagedRuleSet []

Condição de correspondência

Designação Descrição Valor
matchValue Lista de possíveis valores de correspondência. string[] (obrigatório)
matchVariable Variável de solicitação para comparar. 'Cookies'
'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestHeader'
'RequestMethod'
'RequestUri'
'SocketAddr' (obrigatório)
negateCondition Descreve se o resultado dessa condição deve ser negado. Bool
Operador Tipo de comparação a ser usado para correspondência com o valor da variável. 'Qualquer'
'Começa com'
«Contém»
'Acaba com'
'Igual'
'GeoMatch'
'MaiorQue'
'MaiorThanOrEqual'
'IPMatch'
'Menosque'
'LessThanOrEqual'
'RegEx' (obrigatório)
seletor Corresponder a uma chave específica das variáveis QueryString, PostArgs, RequestHeader ou Cookies. O padrão é null. string
transforma Lista de transformações. Matriz de cadeia de caracteres contendo qualquer uma das:
'Minúsculas'
'RemoveNulls'
'Guarnição'
'Maiúsculas'
'UrlDecode'
'UrlEncode'

Microsoft.Network/FrontDoorWebApplicationFirewallPolicies

Designação Descrição Valor
etag Obtém uma cadeia de caracteres somente leitura exclusiva que muda sempre que o recurso é atualizado. string
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. WebApplicationFirewallPolicyProperties
SKU A camada de preço da política de firewall de aplicativos Web. O padrão é Classic_AzureFrontDoor se não for especificado. Sku
Etiquetas Etiquetas de recursos Dicionário de nomes e valores de tags.
tipo O tipo de recurso "Microsoft.Network/FrontDoorWebApplicationFirewallPolicies@2024-02-01"

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:
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
enabledState Descreve se a política está no estado habilitado ou desabilitado. O padrão é Ativado se não for especificado. 'Desativado'
'Habilitado'
javascriptChallengeExpirationInMinutes Define o tempo de vida da validade do cookie de desafio JavaScript em minutos. Esta definição só é aplicável a Premium_AzureFrontDoor. O valor deve ser um inteiro entre 5 e 1440 com o valor padrão sendo 30. Int

Restrições:
Valor mínimo = 5
Valor máximo = 1440
logEsfregando Define regras que eliminam campos confidenciais nos logs do Web Application Firewall. PolicySettingsLogScrubbing
modo Descreve se ele está no modo de deteção ou no modo de prevenção no nível da política. 'Detecção'
'Prevenção'
redirectUrl Se o tipo de ação for redirecionamento, esse campo representará a URL de redirecionamento para o cliente. string
pedidoBodyCheck Descreve se as regras gerenciadas por política inspecionarão o conteúdo do corpo da solicitação. 'Desativado'
'Habilitado'

PolicySettingsLogScrubbing

Designação Descrição Valor
spurbbingRegras Lista de regras de depuração de log aplicadas aos logs do Web Application Firewall. 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

Referência

Designação Descrição Valor
Designação Nome do nível de preços. 'Classic_AzureFrontDoor'
'Premium_AzureFrontDoor'
'Standard_AzureFrontDoor'

WebApplicationFirewallPolicyProperties

Designação Descrição Valor
customRules Descreve regras personalizadas dentro da política. CustomRuleList
managedRegras Descreve as regras gerenciadas dentro da política. ManagedRuleSetList
policySettings Descreve as configurações da política. PolicySettings

WebApplicationFirewallScrubbingRules

Designação Descrição Valor
matchVariable A variável a ser esfregada dos logs. 'QueryStringArgNames'
'RequestBodyJsonArgNames'
'RequestBodyPostArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestUri' (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 de uma regra de depuração de log. O valor padrão está habilitado. 'Desativado'
'Habilitado'