Compartilhar via


Firewall de Aplicativo Web do Azure no Gateway de Aplicações para Contêineres

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

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

Implementação no Gateway de Aplicativos para contêineres

Política de segurança

O Gateway de Aplicativo para Contêineres apresenta um novo recurso filho chamado SecurityPolicy no Azure Resource Manager. O recurso SecurityPolicy traz o escopo para quais políticas do Firewall de Aplicativo Web do Azure o Controlador ALB pode fazer referência.

Recurso personalizado do Kubernetes

O Gateway de Aplicativo para Contêineres apresenta um novo recurso personalizado chamado WebApplicationFirewallPolicy. O recurso personalizado é responsável por definir qual política de Firewall de Aplicativo Web do Azure deve ser usada em cada escopo específico.

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

  • Gateway
  • HTTPRoute

O recurso WebApplicationFirewallPolicy também pode referenciar as seguintes seções por nome para obter mais granularidade:

  • Gateway: Listener

Implementações de exemplo

Escopo de uma política para um recurso de Gateway

Aqui está um exemplo de configuração 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 Gateway de Aplicativo para Contêineres.

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

Em um recurso Gateway, você pode ter nomes de host diferentes definidos por ouvintes diferentes (por exemplo, contoso.com e fabrikam.com). Se contoso.com for um nome de host do ouvinteA e fabrikam.com for um nome de host do ouvinteB, você poderá definir a propriedade sectionNames para selecionar o ouvinte correto (por exemplo, ouvinteA 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 políticas de WAF diferentes para caminhos diferentes do mesmo Gateway ou Gateway –> sectionName do Ouvinte, você pode definir dois recursos HTTPRoute, cada um com um caminho exclusivo, que fazem referência à política de 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

Não há suporte para a seguinte funcionalidade em uma política de Firewall de Aplicativo Web do Azure associada ao Gateway de Aplicativo para Contêineres:

  • Assinatura cruzada entre regiões: sua política de WAF deve estar na mesma assinatura e região que o recurso Gateway de Aplicativo para contêineres.
  • Regras gerenciadas do CRS (Conjunto de Regras Principais): um WAF do Gateway de Aplicativos para contêineres dá suporte apenas a conjuntos de regras gerenciadas do DRS (Conjunto de Regras Padrão).
  • Conjunto de regras do Gerenciador de Bot herdado: o Conjunto de Regras do Gerenciador de Bot 0.1 não tem suporte, mas há suporte para as versões 1.0 e 1.1 do Bot Manager Ruleset.
  • Ações do desafio JavaScript nas regras do Gerenciador de Bot: você não pode definir a ação em uma regra do Gerenciador de Bot para o desafio JavaScript.
  • Ações de desafio Captcha nas regras do Gerenciador de Bot: você não pode definir a ação de uma regra do Gerenciador de Bot como Captcha.
  • Microsoft Security Copilot: não há suporte para o Copilot de Segurança no Gateway de Aplicativo para Contêineres WAF.
  • Resposta de bloco personalizada: não há suporte para a configuração de uma resposta de bloco personalizada na sua política de WAF no Gateway de Aplicativos para Contêineres WAF.
  • Cabeçalho X-Forwarded-For (XFF): o WAF do Gateway de Aplicativos para contêineres não dá suporte à variável XFF em regras personalizadas.
  • Conjunto de regras de DDoS HTTP: este conjunto de regras gerenciado não é suportado atualmente no Gateway de Aplicações para Contêineres.

Pricing

Para obter detalhes sobre preços, consulte Noções básicas sobre preços do Gateway de Aplicativo para Contêineres.