Bagikan melalui


Azure Web Application Firewall di Application Gateway untuk Kontainer

Azure Web Application Firewall memberikan perlindungan terpusat terhadap aplikasi web Anda dari eksploitasi dan kerentanan umum. Semua fungsionalitas Azure Web Application Firewall ada di dalam kebijakan, yang dapat dirujuk pada listener atau aturan perutean berbasis jalur dalam konfigurasi YAML API Gateway.

Diagram yang memperlihatkan aturan Azure Web Application Firewall memblokir request.

Implementasi Application Gateway untuk Kontainer

Kebijakan keamanan

Application Gateway untuk Kontainer memperkenalkan sumber daya anak baru yang disebut SecurityPolicy di Azure Resource Manager. Sumber daya SecurityPolicy memberikan cakupan untuk kebijakan Azure Web Application Firewall yang dapat dirujuk oleh Pengontrol ALB.

Sumber daya kustom Kubernetes

Gateway Aplikasi untuk Kontainer memperkenalkan sebuah sumber daya kustom baru yang disebut WebApplicationFirewallPolicy. Sumber daya kustom bertanggung jawab untuk menentukan kebijakan Azure Web Application Firewall mana yang harus digunakan di cakupan mana.

Sumber daya WebApplicationFirewallPolicy dapat menargetkan sumber daya Kubernetes berikut:

  • Gateway
  • HTTPRoute

Sumber daya WebApplicationFirewallPolicy juga dapat mereferensikan bagian berikut berdasarkan nama untuk granularitas lebih lanjut:

  • Gateway: Listener

Contoh implementasi

Terapkan kebijakan pada sumber daya Gateway

Berikut adalah contoh konfigurasi YAML yang menunjukkan penargetan terhadap sumber daya Gateway, yang akan berlaku untuk semua pendengar pada frontend dari Application Gateway for Containers tertentu.

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

Kebijakan cakupan ke pendengar tertentu dari sumber daya Gateway

Gateway Dalam sumber daya, Anda mungkin memiliki nama host yang berbeda yang ditentukan oleh pendengar yang berbeda (misalnya contoso.com dan fabrikam.com). Jika contoso.com adalah nama host listenerA dan fabrikam.com adalah nama host listenerB, Anda dapat menentukan sectionNames properti untuk memilih listener yang tepat (misalnya, listenerA untuk 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

Cakupan kebijakan di semua rute dan jalur

Contoh ini menunjukkan cara menargetkan sumber daya HTTPRoute yang telah ditentukan untuk menerapkan kebijakan pada aturan dan jalur perutean apa pun di dalam sumber daya HTTPRoute tersebut.

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

Cakup kebijakan ke jalur tertentu

Untuk menggunakan kebijakan WAF yang berbeda ke jalur yang sama Gateway atau Gateway -> Listener sectionName, Anda dapat menentukan dua sumber daya HTTPRoute, masing-masing dengan jalur unik, yang masing-masing mereferensikan kebijakan WAF yang berlaku.

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

Keterbatasan

Fungsionalitas berikut ini tidak didukung pada kebijakan Azure Web Application Firewall yang terkait dengan Application Gateway untuk Kontainer:

  • Kebijakan lintas wilayah, lintas langganan: Kebijakan WAF Anda harus berada di langganan dan wilayah yang sama dengan Application Gateway untuk sumber daya Kontainer Anda.
  • Aturan terkelola Kumpulan Aturan Inti (CRS): Application Gateway untuk Containers WAF hanya mendukung seperangkat aturan terkelola Default Rule Set (DRS) 2.1.
  • Seperangkat Aturan Pengelola Bot Warisan: Aturan Pengelola Bot 0.1 tidak didukung, tetapi Ruleset Bot Manager versi 1.0 dan 1.1 didukung.
  • Aksi tantangan JavaScript pada aturan Bot Manager: Anda tidak dapat mengatur aksi pada aturan Bot Manager menjadi tantangan JavaScript.
  • Tindakan tantangan Captcha pada aturan Bot Manager: Anda tidak dapat menetapkan tindakan Captcha pada aturan Bot Manager.
  • Microsoft Security Copilot: Copilot Keamanan tidak didukung di Application Gateway untuk Kontainer WAF.
  • Respons Blok Kustom: Mengatur respons blok kustom dalam kebijakan WAF Anda tidak didukung di Application Gateway untuk Containers WAF.
  • X-Forwarded-For Header (XFF): Application Gateway pada Kontainer WAF tidak mendukung variabel XFF dalam aturan kustom.
  • Aturan HTTP DDoS: Seperangkat aturan terkelola ini tidak didukung pada Application Gateway untuk Kontainer.

Pricing

Untuk detail harga, lihat Memahami harga untuk Application Gateway untuk Kontainer.