Azure Front Door è un servizio che espone un gateway geo distribuito, altamente affidabile e completamente gestito, in grado rispondere a più indirizzi e instradare le richieste alle app o ai servizi reali secondo le più disparate regole: path, header, indirizzi IP, ecc. Questo servizio è quindi perfetto quando disponiamo di più applicativi e vogliamo fornire un unico punto di ingresso, anche solo per la semplice gestione HTTPS.
Tutto questo è molto comodo, ma come tutti i servizi che potremmo avere sviluppato fino ad ora, essi trascurano eventuali attacchi che potremmo subire mediante il protocollo: injection sui vari linguaggi, attacchi al protocollo, flood di richieste ecc. Per questo motivo affiancato a Front Door possiamo abilitare il Web Application Firewall (WAF), il quale fornisce un controllo centralizzato delle richieste HTTP ed evitando i problemi più noti, in maniera del tutto trasparente ai nostri applicativi che non risentiranno minimamente di eventuali attacchi.
Possiamo applicare WAF creando dal portale una nuova risorsa Azure omonima, come mostrato nell'immagine, separatamente da Front Door.
Proseguiamo nei passi e vediamo che possiamo scegliere come il motore deve lavorare: modalità preventiva o di rilevamento. Con la prima il motore identifica la minaccia e la blocca a monte dando, per esempio un 403. Con la seconda il motore logga solo la minaccia, ma non interviene.
Il terzo step è sicuramente il più interessante, perché ci permette di selezionare una serie di regole preconfezionate e gestite da Microsoft. Lo scopo è usufruire di un servizio che mantiene autonomamente le regole aggiornate e praticamente ci permette di dimenticarci del firewall facendolo gestire interamente da Azure.
In alternativa si può passare al passaggio successivo e indicare autonomamente le regole: throttling, ispezione delle richieste, ecc. Nell'esempio stiamo utilizzando una regola gestita, perciò passiamo direttamente all'associazione, cioè andiamo ad indicare a quali istanze di Front Door applicare la policy.
Fatto questo la policy è pronta e applicata ai servizi, anche se possiamo in qualsiasi momento cambiare le regole a nostro piacimento. Da notare che sebbene Front Door disponga di un billing basato a consumo, WAF ha un prezzo fisso composto da una parte base più il costo delle regole gestite, diverso dalle regole personalizzate. A questi si aggiungono poi i costi per ogni richiesta. Come sempre vi invitiamo ad utilizzare il calcolatore per prevedere il costo effettivo.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare una libreria CSS universale: Clip-path
Utilizzare QuickGrid di Blazor con Entity Framework
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Gestire la cancellazione di una richiesta in streaming da Blazor
Potenziare Azure AI Search con la ricerca vettoriale
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Proteggere le risorse Azure con private link e private endpoints
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Gestire domini wildcard in Azure Container Apps
I più letti di oggi
- Windows DNA Parte prima
- Microsoft Visual Studio Code: un nuovo editor gratuito per Windows, MacOSX e Linux per sviluppatori ASP.NET e Node.js
- Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
- Realizzare una Progressive Web Application con Blazor e ASP.NET Core
- ASP.NET 4.0 AJAX arriva alla Preview 5, in attesa della beta2 di ASP.NET 4.0
- Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
- IISControl: come comandare IIS
- Preview 2 di ASP.NET MVC 2.0 ed una nuova versione per AJAX Control Toolkit
- Docker e ASP.NET Core: portare i nostri siti web su container
- Abilitare e gestire il prerendering nelle applicazioni Blazor WebAssembly