Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Web application firewall di Azure su gateway applicazione di Azure per contenitori offre una protezione completa per i carichi di lavoro Kubernetes contro vulnerabilità e attacchi Web comuni. Ad esempio, affronta, SQL injection, scripting intersito (XSS) e altre 10 principali minacce Open Web Application Security Project (OWASP).
Gateway applicativo per contenitori è una soluzione a livello di applicazione (livello 7) per il bilanciamento del carico e la gestione dinamica del traffico. È progettato appositamente per i carichi di lavoro in esecuzione nei cluster Kubernetes. Rappresenta l'evoluzione del Application Gateway Ingress Controller (AGIC).
Web application firewall di Azure fornisce protezione in tempo reale per questi carichi di lavoro a livello di applicazione tramite un set di set di regole gestite proprietarie e un framework per la creazione di regole personalizzate generate dall'utente. Tutte queste protezioni esistono come parte di un criterio Web application firewall (WAF) collegato al Gateway applicativo per contenitori per la distribuzione di contenitori tramite una risorsa SecurityPolicy.
Fasi di configurazione richieste
Abilitare WAF su Application Gateway per Container richiede due configurazioni separate. WAF non ispeziona il traffico finché non completi entrambi:
-
Configurazione Azure: Crea una
SecurityPolicyrisorsa figlia che faccia riferimento alla tua policy WAF. Puoi creare questa risorsa utilizzando il portale di Azure, l'interfaccia della riga di comando di Azure (interfaccia della riga di comando di Azure), Azure PowerShell o uno strumento di infrastructure as code come Bicep o Terraform. -
Configurazione Kubernetes: applica una
WebApplicationFirewallPolicyrisorsa personalizzata nel tuo cluster. Questa risorsa fa riferimento alla stessa policy WAF e mira alla risorsa Kubernetes che vuoi proteggere.
Importante
La risorsa Azure SecurityPolicy da sola non abilita la protezione WAF. Se crei la SecurityPolicy risorsa ma non applichi una risorsa personalizzata corrispondenteWebApplicationFirewallPolicy, la policy WAF appare come associata nel portale Azure e in Microsoft Defender per il cloud, ma Application Gateway for Containers non ispeziona alcun traffico. Poiché WAF non valuta mai il traffico, non genera nemmeno log del firewall. Completa entrambi i passaggi e poi conferma che il WAF stia ispezionando il traffico prima di affidarti alla polizza per la protezione.
La tabella seguente riassume ciò che ogni configurazione controlla.
| Configurazione | Dove la crei | Che cosa controlla |
|---|---|---|
SecurityPolicy Risorsa |
Azure | A quali policy WAF può fare riferimento il controller ALB. |
WebApplicationFirewallPolicy Risorsa personalizzata |
Cluster Kubernetes | Quale politica WAF viene applicata e l'ambito in cui viene applicata. |
Criteri di sicurezza
Il gateway applicazione per contenitori introduce una nuova risorsa figlia denominata SecurityPolicy in Azure Resource Manager. La risorsa SecurityPolicy definisce l'ambito dei criteri del Firewall delle applicazioni Web di Azure a cui il controller ALB può fare riferimento.
Risorsa personalizzata Kubernetes
Il Gateway applicativo per contenitori introduce una nuova risorsa personalizzata denominata WebApplicationFirewallPolicy. Questa risorsa personalizzata definisce quale policy Web application firewall di Azure utilizzare e in quale ambito.
La WebApplicationFirewallPolicy risorsa può mirare alle seguenti risorse Kubernetes:
GatewayHTTPRoute
Può anche fare riferimento alle seguenti sezioni per nome per ulteriori dettagli:
-
Gateway:Listener
Ambito dei criteri
La targetRef proprietà nella WebApplicationFirewallPolicy risorsa personalizzata determina l'ambito a cui il WAF viene applicato. La risorsa Azure SecurityPolicy non imposta questo ambito.
targetRef.kind |
Ambito di applicazione |
|---|---|
Gateway |
Tutti i listener e i percorsi sulla risorsa Gateway di destinazione. |
Gateway con sectionNames |
Solo i listener nominati sulla risorsa Gateway di destinazione. |
HTTPRoute |
Solo le regole di instradamento e i percorsi definiti nella risorsa di destinazione HTTPRoute. |
Note
La destinazione di una risorsa Gateway rappresenta l'ambito più ampio disponibile. Per applicare il WAF a un singolo percorso, imposta targetRef.kind e HTTPRoute nomina il percorso specifico. Se si prende di mira una Gateway risorsa quando intendevi proteggere a livello di route, la policy si applica a tutto il traffico gestito dalla Gateway risorsa.
Implementazioni di esempio
Definire l'ambito di un criterio per una risorsa gateway
Ecco un esempio di configurazione YAML che mostra come indirizzare una risorsa Gateway, applicabile a tutti i listener della risorsa frontend di un determinato Application Gateway for Containers.
Note
Questo esempio applica il criterio WAF a tutti i listener e a tutte le route nella risorsa di destinazione Gateway. Se devi proteggere una singola route, usa invece l'esempio del criterio Scope per tutte le route e i percorsi.
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
Definire l'ambito del criterio per un listener specifico di una risorsa gateway
All'interno di una Gateway risorsa, puoi definire diversi nomi host usando ascoltatori differenti (ad esempio, contoso.com e fabrikam.com). Se contoso.com è un nome host dell'ascoltatore A e fabrikam.com è un nome host dell'ascoltatore B, definisci la sectionNames proprietà per selezionare l'ascoltatore corretto (ad esempio, ascoltatore A per 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
Definire l'ambito del criterio in tutte le route e i percorsi
Questo esempio spiega come impostare come destinazione una risorsa HTTPRoute definita per applicare il criterio a qualsiasi regola di gestione e percorso all'interno di una determinata risorsa 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
Definire l'ambito del criterio per un percorso specifico
Per utilizzare politiche WAF diverse per percorsi differenti dello stesso Gateway o Gateway -> Listener sectionName, definisci due risorse HTTPRoute, ciascuna con un percorso unico, che facciano riferimento alla propria policy WAF applicabile.
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
Verifica che WAF sia attivo
Dopo aver completato entrambi i passaggi di configurazione, verifica che WAF stia ispezionando il traffico prima di passare la policy in modalità preventiva.
Rivedi lo stato della
WebApplicationFirewallPolicyrisorsa personalizzata nel tuo cluster:kubectl get webapplicationfirewallpolicy -n <namespace> -o yamlEsaminare le condizioni di stato della risorsa e confermare che il criterio sia stato accettato e che i relativi riferimenti siano stati risolti correttamente. Se
targetRefspecifica una risorsa o una sezione che non esiste, la policy non può essere allegata e lo stato ne indica il motivo.Invia traffico di prova su una rotta protetta, poi rivedi i log WAF. Verifica che siano presenti le voci di log e che l'ambito corrisponda a quanto hai configurato:
-
policyScopeNameriporta il tipo di ambito a cui è assegnata la policy WAF, comeRoute. -
policyScoperiporta il riferimento di risorsa Kubernetes a cui si applica l'ambito.
Per maggiori informazioni su questi campi, vedi Application Gateway for Containers logs.
-
Se non compare alcuna voce di log WAF per il traffico che dovrebbe essere ispezionato, la configurazione di Kubernetes è probabilmente incompleta. Una policy WAF non collegata non valuta il traffico, quindi non produce voci di log. Conferma che hai applicato la risorsa personalizzata WebApplicationFirewallPolicy e che il relativo targetRef denomina una risorsa esistente.
Limitazioni
Le funzionalità seguenti non sono supportate in un criterio WAF associato a un'istanza di Gateway applicativo per contenitori:
- Criteri tra aree e sottoscrizioni: i criteri WAF devono trovarsi nella stessa sottoscrizione e nella stessa area della risorsa Gateway applicativo per contenitori.
- Set di Regole Core (CRS) gestite: un gateway applicazione per container WAF supporta solo il set di regole predefinito (DRS) 2.1 gestito.
- Set di regole legacy di Bot Manager: il set di regole di Bot Manager 0.1 non è supportato, ma sono supportate le versioni del set di regole di Bot Manager 1.0 e 1.1.
- Azioni di verifica JavaScript sulle regole di Bot Manager: non è possibile impostare l'azione su una regola di Bot Manager per la verifica JavaScript.
- Azioni di verifica Captcha sulle regole di Bot Manager: non è possibile impostare l'azione di una regola di Bot Manager su Captcha.
- Microsoft Security Copilot: Security Copilot non è supportato su Application Gateway for Containers WAF.
- Risposta di blocco personalizzata: L'impostazione di una risposta di blocco personalizzata nella tua policy WAF non è supportata in Application Gateway for Containers WAF.
- X-Forwarded-For Header (XFF): il gateway applicazione per contenitori WAF non supporta la variabile XFF nelle regole personalizzate..
- Regolamento HTTP DDoS: Questo regolamento gestito non è supportato su Application Gateway for Container.
Pricing
Per informazioni dettagliate sui prezzi, vedere Prezzi di Gateway applicativo per contenitori.