Azure Firewall è la soluzione di firewall-as-a-service presente nel cloud pubblico di Microsoft, che consente di mettere in sicurezza le risorse presenti nelle Virtual Network di Azure e di governare i relativi flussi di rete. Questo servizio è stato rilasciato ufficialmente da diversi mesi e, come spesso accade per i servizi cloud, si hanno delle rapide evoluzioni, volte a migliorare il servizio e ad aumentare il set di funzionalità. In questo articolo vengo riportate le principali novità che hanno recentemente interessato Azure Firewall.
Indirizzi IP Pubblici associati ad Azure Firewall
Mentre inizialmente era possibile associare ad Azure Firewall un solo indirizzo IP pubblico, ora si possono associare fino a 100 indirizzi IP pubblici. Questa possibilità apre nuovi scenari di configurazione e di funzionamento:
- In configurazioni DNAT si ha la possibilità di utilizzare la stessa porta su indirizzi IP Pubblici differenti.
- Per quanto riguarda connessioni SNAT in outbound saranno disponibili un numero maggiore di porte, riducendo la possibilità di terminare le porte a disposizione.
Attualmente l’indirizzo IP Pubblico sorgente di Azure Firewall utilizzato per le connessioni viene scelto in modo casuale. Questo aspetto è da tenere in considerazione quando sono necessarie autorizzazioni specifiche per il traffico proveniente da Azure Firewall. Microsoft ha comunque in roadmap la possibilità di fare configurazioni SNAT specificando l’indirizzo IP Pubblico da utilizzare. La procedura da seguire per effettuare il deployment di Azure Firewall con più indirizzi IP Pubblici, tramite comandi PowerShell, è possibile consultarla in questo documento.
Figura 1 – Assegnazione di più IP pubblici ad Azure Firewall dal portale Azure
Availability Zones
Al fine di aumentare i livelli di disponibilità di Azure Firewall è possibile, durante la fase di creazione, prevedere l’utilizzo delle Availability Zones. Selezionando due o più Availability Zones si potrà ottenere una percentuale di uptime del 99.99 percento. Tutti i dettagli relativi ai Service Level Agreement (SLA) di Azure Firewall sono contenuti in questo documento. L’adozione di questa metodologia di deployment non prevede costi aggiuntivi, ma è necessario contemplare un incremento dei costi dati dal data transfer in inbound e in outbound dalle Availability Zones, reperibili in questo documento. Rispetto al costo dell’Azure Firewall questi non impattano in modo particolarmente significativo. Personalmente ritengo che se si adotta una architettura del networking di Azure dove Azure Firewall è il componente core per la messa in sicurezza dell’ambiente, diventa molto utile utilizzare le Availability Zones per garantire un elevato livello di disponibilità delle applicazioni mission-critical protette da questo servizio.
Figura 2 – Configurazione Availability Zones in fase di creazione di Azure Firewall
In presenza di Azure Firewall creati senza l’utilizzo delle Availability Zones, non si ha la possibilità di effettuare una conversione all’utilizzo delle stesse. L’unica modalità attualmente disponibile prevede la creazione di un nuovo Azure Firewall migrando le configurazioni esistenti. I backup in formato JSON della configurazione di Azure Firewall possono essere fatti utilizzando i seguenti comandi PowerShell:
[cc lang=”powershell”]
$AzureFirewallId = (Get-AzFirewall -Name “AzureFirewallName” -ResourceGroupName “Network-RG”).id
$BackupFileName = “.AzureFirewallBackup.json”
Export-AzResourceGroup -ResourceGroupName “Network-RG” -Resource $AzureFirewallId -SkipAllParameterization -Path $BackupFileName
[/cc]
Avendo a disposizione il file JSON è necessario modificarlo per contemplare le Availability Zones:
[cc lang=”powershell”]
{
“apiVersion”: “2019-04-01”,
“type”: “Microsoft.Network/azureFirewalls”,
“name”: “[variables(‘FirewallName’)]”,
“location”: “[variables(‘RegionName’)]”,
“zones”: [
“1”,
“2”,
“3”
],
“properties”: {
“ipConfigurations”: [
{
[/cc]
Al termine della modifica è possibile effettuare il deployment del nuovo Azure Firewall, utilizzando il file JSON opportunamente modificato, tramite il seguente comando:
[cc lang=”powershell”]
New-AzResourceGroupDeployment -name “RestoreFirewallAvZones” -ResourceGroupName “Network-RG” -TemplateFile “.AzureFirewallBackup.json”
[/cc]
Gestione centralizzata con soluzioni di terze parti
Azure Firewall espone pubblicamente delle REST APIs che possono essere utilizzate da vendor di terze parti per fornire delle soluzioni che permettono una gestione centralizzata degli Azure Firewall, dei Network Security Groups (NSGs), e delle virtual appliance di rete (NVAs). Al momento questi sono i vendor che offrono soluzioni di questo tipo: Barracuda con Cloud Security Guardian, AlgoSec con CloudFlow e Tufin con Orca.
Just-in-time (JIT) VM access per Azure Firewall
Quando un utente richiede di accedere a una VM con una policy Just-in-time (JIT), il Security Center prima verifica se l’utente dispone effettivamente dei permessi Role-Based Access Control (RBAC) necessari per effettuare la richiesta di accesso. In caso affermativo la richiesta viene approvata, e il Security Center è in grado di configurare automaticamente non solo i NSG, ma anche le regole necessarie lato Azure Firewall per consentire il traffico in ingresso.
Application rules con FQDN di SQL
Nelle application rule di Azure Firewall è stata introdotta la possibilità di specificare degli FQDN di SQL. In questo modo è possibile governare l’accesso dalle virtual network verso specifiche istanze SQL server. Tramite gli FQDN SQL è possibile filtrare il traffico:
- Da Virtual Network verso un Azure SQL Database oppure un Azure SQL Data Warehouse.
- Dall’ambiente on-premises verso Azure SQL Managed Instances oppure SQL IaaS in esecuzione sulle Virtual Network.
- Da spoke-to-spoke verso Azure SQL Managed Instances oppure SQL IaaS in esecuzione sulle Virtual Network.
Figura 3 – Creazione Application Rule con FQDN SQL
FQDN Tag per Azure HDInsight (HDI)
I cluster Azure HDInsight presenti sulle proprie Virtual Network hanno diverse dipendenze da altri servizi Azure (esempio Azure Storage), con i quali è necessario prevedere un traffico di rete in uscita per funzionare in modo corretto. Grazie all’introduzione degli FQDN tags per HDInsight è possibile configurare Azure Firewall per restringere l’accesso in outbound per i cluster HDI. Per maggiori dettagli a riguardo è possibile consultare la documentazione ufficiale Microsoft.
Automazione per gestire il backup
Disporre di una strategia che consenta di ripristinare la configurazione del servizio in tempi rapidi è fondamentale in quanto questo servizio è il centro di governo del networking vostro ambiente Azure e contiene diverse regole per gestire in modo completo il traffico di rete. Il servizio al momento non dispone in modo integrato di una funzionalità per farne il backup completo in modo periodico. In questo articolo viene riportato un meccanismo ideato per fare il backup schedulato della configurazione di questo componente utilizzando il servizio Azure Automation.
Conclusioni
Azure Firewall è una soluzione che sempre più spesso viene utilizzata nelle architetture di rete di Azure, per i vantaggi che offre rispetto alle soluzioni firewall di vendor di terze parti e grazie ad un costante arricchimento delle funzionalità offerte. Tutte queste novità introdotte rendono Azure Firewall una soluzione più completa, totalmente integrata nella piattaforma, che consente di mettere in sicurezza le risorse presenti sulle Virtual Network di Azure con una elevata flessibilità.