Delen via


Azure Web Application Firewall op Application Gateway voor Containers

Azure Web Application Firewall biedt gecentraliseerde beveiliging van uw webtoepassingen tegen veelvoorkomende aanvallen en beveiligingsproblemen. Alle Functionaliteit van Azure Web Application Firewall bestaat binnen een beleid, waarnaar kan worden verwezen via listener- of padgebaseerde routeringsregels binnen de YAML-configuratie van de Gateway-API.

Diagram met een Azure Web Application Firewall-regel die een aanvraag blokkeert.

Implementatie van Application Gateway for Containers

Beveiligingsbeleid

Application Gateway for Containers introduceert een nieuwe resource, genaamd SecurityPolicy, in Azure Resource Manager. De SecurityPolicy resource geeft toegang tot de Azure Web Application Firewall-beleid waarnaar de ALB-controller kan verwijzen.

Aangepaste Kubernetes-resource

Application Gateway for Containers introduceert een nieuwe aangepaste resource met de naam WebApplicationFirewallPolicy. De aangepaste resource is verantwoordelijk voor het definiëren van welk Azure Web Application Firewall-beleid moet worden gebruikt voor welk bereik.

De WebApplicationFirewallPolicy-resource kan zich richten op de volgende Kubernetes-resources:

  • Gateway
  • HTTPRoute

De Resource WebApplicationFirewallPolicy kan ook verwijzen naar de volgende secties op naam voor verdere granulariteit:

  • Gateway: Listener

Voorbeeld van implementaties

Een beleid instellen op een gatewayresource

Hier volgt een voorbeeld van een YAML-configuratie die is gericht op een gatewayresource, die van toepassing is op alle listeners op een bepaalde front-endresource van Application Gateway voor 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

Bereikbeleid voor een specifieke listener van een gatewayresource

Binnen een Gateway resource zijn er mogelijk verschillende hostnamen gedefinieerd door verschillende listeners (bijvoorbeeld contoso.com en fabrikam.com). Als contoso.com een hostnaam van listenerA is en fabrikam.com een hostnaam van listenerB is, kunt u de sectionNames eigenschap definiëren om de juiste listener te selecteren (bijvoorbeeld listenerA voor 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

Bereikbeleid voor alle routes en paden

In dit voorbeeld ziet u hoe u zich richt op een gedefinieerde HTTPRoute-resource om het beleid toe te passen op eventuele routeringsregels en paden binnen een bepaalde HTTPRoute-resource.

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

Bereikbeleid voor een bepaald pad

Als u verschillende WAF-beleidsregels wilt gebruiken voor verschillende paden van hetzelfde Gateway of gateway -> Listener sectionName, kunt u twee HTTPRoute-resources definiëren, elk met een uniek pad, dat elk verwijst naar het toepasselijke WAF-beleid.

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

Beperkingen

De volgende functionaliteit wordt niet ondersteund in een Azure Web Application Firewall-beleid dat is gekoppeld aan Application Gateway for Containers:

  • Beleid voor meerdere regio's, meerdere abonnementen: uw WAF-beleid moet zich in hetzelfde abonnement en dezelfde regio bevinden als uw Application Gateway for Containers-resource.
  • Beheerde CRS-regels (Core Rule Set): Een Application Gateway for Containers WAF ondersteunt alleen door DRS beheerde regelsets (Default Rule Set).
  • Verouderde Bot Manager-regelset: Bot Manager-regelset 0.1 wordt niet ondersteund, maar Bot Manager-regelsetversies 1.0 en 1.1 worden ondersteund.
  • Acties voor JavaScript-uitdagingen op Bot Manager-regels: u kunt de actie voor een Bot Manager-regel niet instellen op een JavaScript-uitdaging.
  • Captcha-uitdaging acties op Bot Manager-regels: u kunt de actie van een Bot Manager-regel niet instellen op Captcha-uitdaging.
  • Microsoft Security Copilot: Security Copilot wordt niet ondersteund in Application Gateway for Containers WAF.
  • Aangepast blokantwoord: het instellen van een aangepast blokantwoord in uw WAF-beleid wordt niet ondersteund in Application Gateway for Containers WAF.
  • X-Forwarded-For Header (XFF):Application Gateway for Containers WAF biedt geen ondersteuning voor de XFF-variabele in aangepaste regels.
  • HTTP DDoS-regelset: deze beheerde regelset wordt niet ondersteund in Application Gateway for Containers.

Pricing

Zie Prijzen voor Application Gateway for Containers voor meer informatie over prijzen.