Partager via


Pare-feu d’applications web Azure sur Application Gateway pour conteneurs

Le Pare-feu d’applications web Azure offre une protection centralisée de vos applications web contre les attaques et vulnérabilités courantes. Toutes les fonctionnalités du Pare-feu d’applications web Azure existent à l’intérieur d’une stratégie, qui peut être référencée au niveau de l’écouteur ou des règles d’acheminement basées sur des chemins au sein de la configuration YAML de l’API de passerelle.

Diagramme montrant une règle de pare-feu d’applications web Azure bloquant une requête.

Implémentation de Passerelle d’application pour conteneurs

Stratégie de sécurité

Application Gateway pour conteneurs introduit une nouvelle ressource enfant appelée SecurityPolicy dans Azure Resource Manager. La SecurityPolicy ressource apporte l’étendue à laquelle les stratégies de pare-feu d’applications web Azure que le contrôleur ALB peut référencer.

Ressource personnalisée Kubernetes

Application Gateway pour conteneurs introduit une nouvelle ressource personnalisée appelée WebApplicationFirewallPolicy. La ressource personnalisée est chargée de définir la stratégie de pare-feu d’applications web Azure à utiliser dans quelle étendue.

La ressource WebApplicationFirewallPolicy peut cibler les ressources Kubernetes suivantes :

  • Gateway
  • HTTPRoute

La ressource WebApplicationFirewallPolicy peut également référencer les sections suivantes par nom pour plus de granularité :

  • Gateway: Listener

Exemples d’implémentations

Attribuer une stratégie à une ressource de passerelle

Voici un exemple de configuration YAML qui illustre le ciblage d'une ressource Gateway, laquelle s'appliquerait à tous les écouteurs d'une ressource frontale d'Application Gateway pour Containers donnée.

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

Appliquer une stratégie à un écouteur spécifique d'une ressource de passerelle

Dans une Gateway ressource, vous pouvez avoir des noms d’hôte différents définis par différents écouteurs (par exemple, contoso.com et fabrikam.com). Si contoso.com est un nom d’hôte d’écouteurA et fabrikam.com est un nom d’hôte d’écouteurB, vous pouvez définir la sectionNames propriété pour sélectionner l’écouteur approprié (par exemple, listenerA pour 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

Appliquer la politique à toutes les routes et chemins

Cet exemple montre comment cibler une ressource HTTPRoute définie pour appliquer la stratégie à toutes les règles de routage et chemins d’accès au sein d’une ressource HTTPRoute donnée.

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

Appliquer la stratégie à un chemin spécifique

Pour appliquer différentes stratégies WAF à différents chemins d’accès du même composant Gateway ou de la section > du Listener, vous pouvez définir deux ressources HTTPRoute, chacune ayant un chemin unique, et référencer chacune sa stratégie WAF applicable.

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

Limites

La fonctionnalité suivante n’est pas prise en charge sur une stratégie de pare-feu d’applications web Azure associée à Application Gateway pour conteneurs :

  • Stratégie interrégionale et inter-abonnement : votre stratégie WAF doit se trouver dans le même abonnement et la même région que votre ressource Application Gateway pour conteneurs.
  • Règles managées CRS (Core Rule Set) : Une application Gateway pour conteneurs WAF prend uniquement en charge les ensembles de règles managés par défaut (DRS).
  • Ensemble de règles Bot Manager hérité : l’ensemble de règles Bot Manager 0.1 n’est pas pris en charge, mais toutes les versions 1.0 et 1.1 de l’ensemble de règles Bot Manager sont prises en charge.
  • Actions de défi JavaScript sur les règles Bot Manager : vous ne pouvez pas définir l’action sur une règle Bot Manager vers un défi JavaScript.
  • Actions de défi Captcha sur les règles Bot Manager : vous ne pouvez pas définir l’action sur une règle Bot Manager vers un défi Captcha.
  • Microsoft Security Copilot : Microsoft Security Copilot n’est pas pris en charge sur l’Application Gateway pour conteneurs WAF.
  • Réponse de blocage personnalisée : la définition d’une réponse de blocage personnalisée dans votre stratégie WAF n’est pas prise en charge sur Application Gateway pour conteneurs WAF.
  • X-Forwarded-For Header (XFF) : Passerelle d’application pour conteneurs WAF ne prend pas en charge la variable XFF dans les règles personnalisées.
  • Ensemble de règles HTTP DDoS : cet ensemble de règles managés n’est pas pris en charge sur Application Gateway pour conteneurs.

Pricing

Pour plus d’informations sur la tarification, consultez Présentation des tarifs d’Application Gateway pour conteneurs.