Partilhar via


Firewall de Aplicação Web do Azure no Gateway de Aplicação para Contêineres

O Firewall de Aplicativo Web do Azure fornece proteção centralizada de seus aplicativos Web contra explorações e vulnerabilidades comuns. Toda a funcionalidade do Firewall de Aplicações Web do Azure está contida numa política, que pode ser referenciada em regras de roteamento baseadas no listener ou no caminho na configuração YAML da API do Gateway.

Diagrama que mostra uma regra do Firewall de Aplicativo Web do Azure bloqueando uma solicitação.

Implementação do Application Gateway for Containers

Política de segurança

O Application Gateway for Containers apresenta um novo recurso filho chamado SecurityPolicy no Azure Resource Manager. O recurso SecurityPolicy define o escopo das políticas de Firewall de Aplicativo Web do Azure às quais o Controlador ALB pode fazer referência.

Recurso personalizado do Kubernetes

O Application Gateway for Containers introduz um novo recurso personalizado chamado WebApplicationFirewallPolicy. O recurso personalizado é responsável por definir qual política do Firewall de Aplicativo Web do Azure deve ser usada em qual escopo.

O recurso WebApplicationFirewallPolicy pode ter como alvo os seguintes recursos do Kubernetes:

  • Gateway
  • HTTPRoute

O recurso WebApplicationFirewallPolicy também pode fazer referência às seguintes seções por nome para maior granularidade:

  • Gateway: Listener

Exemplos de implementações

Definir o escopo de uma política para um recurso do Gateway

Aqui está um exemplo de configuração do YAML que mostra o direcionamento de um recurso de Gateway, que se aplicaria a todos os ouvintes em um determinado recurso de front-end do Application Gateway for Containers.

apiVersion: alb.networking.azure.io/v1
kind: WebApplicationFirewallPolicy
metadata:
  name: sample-waf-policy
  namespace: test-infra
spec:
  targetRef:
    group: gateway.networking.k8s.io
    kind: Gateway
    name: contoso-waf-route
    namespace: test-infra
  webApplicationFirewall:
    id: /subscriptions/.../Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/waf-policy-0

Política de escopo para um ouvinte específico de um recurso de Gateway

Dentro de um Gateway recurso, você pode ter diferentes nomes de host definidos por ouvintes diferentes (por exemplo, contoso.com e fabrikam.com). Se contoso.com for um nome de host de listenerA e fabrikam.com for um nome de host de listenerB, pode definir a propriedade sectionNames para selecionar o ouvinte adequado (por exemplo, listenerA para contoso.com).

apiVersion: alb.networking.azure.io/v1
kind: WebApplicationFirewallPolicy
metadata:
  name: sample-waf-policy
  namespace: test-infra
spec:
  targetRef:
    group: gateway.networking.k8s.io
    kind: Gateway
    name: contoso-waf-route
    namespace: test-infra
    sectionNames: ["contoso-listener"]
  webApplicationFirewall:
    id: /subscriptions/.../Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/waf-policy-0

Política de escopo em todas as rotas e caminhos

Este exemplo mostra como direcionar um recurso HTTPRoute definido para aplicar a política a quaisquer regras de roteamento e caminhos dentro de um determinado recurso HTTPRoute.

apiVersion: alb.networking.azure.io/v1
kind: WebApplicationFirewallPolicy
metadata:
  name: sample-waf-policy
  namespace: test-infra
spec:
  targetRef:
    group: gateway.networking.k8s.io
    kind: HTTPRoute
    name: contoso-pathA
    namespace: test-infra
  webApplicationFirewall:
    id: /subscriptions/.../Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/waf-policy-0

Política de escopo para um caminho específico

Para usar diferentes políticas WAF para caminhos diferentes do mesmo Gateway ou Gateway -> Listener sectionName, você pode definir dois recursos HTTPRoute, cada um com um caminho exclusivo, que cada um faz referência à sua política WAF aplicável.

apiVersion: alb.networking.azure.io/v1
kind: WebApplicationFirewallPolicy
metadata:
  name: sample-waf-policy-A
  namespace: test-infra
spec:
  targetRef:
    group: gateway.networking.k8s.io
    kind: HTTPRoute
    name: contoso-pathA
    namespace: test-infra
  webApplicationFirewall:
    id: /subscriptions/.../Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/waf-policy-0
---
apiVersion: alb.networking.azure.io/v1
kind: WebApplicationFirewallPolicy
metadata:
  name: sample-waf-policy-B
  namespace: test-infra
spec:
  targetRef:
    group: gateway.networking.k8s.io
    kind: HTTPRoute
    name: contoso-pathB
    namespace: test-infra
  webApplicationFirewall:
    id: /subscriptions/.../Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/waf-policy-1

Limitações

A seguinte funcionalidade não é suportada numa política do Firewall de Aplicações Web do Azure associada ao Gateway de Aplicações para Contêineres.

  • Política entre regiões e entre assinaturas: sua política WAF deve estar na mesma assinatura e região que o recurso Application Gateway for Containers.
  • Regras gerenciadas do Conjunto de Regras Principais (CRS): um WAF do Application Gateway for Containers suporta apenas conjuntos de regras gerenciadas pelo Conjunto de Regras Padrão (DRS).
  • Conjunto de regras do Gerenciador de Bot herdado: o conjunto de regras 0.1 do Gerenciador de Bot não é suportado, mas as versões 1.0 e 1.1 do conjunto de regras do Gerenciador de Bot são suportadas.
  • Ações de desafio de JavaScript em regras do Gerenciador de Bot: não é possível definir a ação em uma regra do Gerenciador de Bot como desafio de JavaScript.
  • Ações de desafio do Captcha nas regras do Bot Manager: Você não pode definir a ação em uma regra do Bot Manager como Captcha.
  • Microsoft Security Copilot: O Security Copilot não é suportado no Application Gateway for Containers WAF.
  • Resposta de bloco personalizada: a definição de uma resposta de bloco personalizada em sua política WAF não é suportada no Application Gateway for Containers WAF.
  • X-Forwarded-For Header (XFF): Application Gateway for Containers WAF não suporta a variável XFF em regras personalizadas.
  • Conjunto de Regras HTTP DDoS: Este conjunto de regras gerido não é atualmente suportado no Application Gateway for Containers.

Pricing

Para obter detalhes de preços, consulte Noções básicas sobre preços para o Application Gateway for Containers.