Pianificare e implementare gruppi di sicurezza di rete e gruppi di sicurezza delle applicazioni

Completato

È possibile usare un gruppo di sicurezza di rete di Azure per filtrare il traffico di rete tra le risorse di Azure in una rete virtuale di Azure. Un gruppo di sicurezza di rete contiene regole di sicurezza che consentono o negano il traffico di rete in ingresso o il traffico di rete in uscita rispettivamente verso o da diversi tipi di risorse di Azure. Per ogni regola, è possibile specificare origine e destinazione, porta e protocollo.

Gruppi di sicurezza di rete

Regole di sicurezza

Un gruppo di sicurezza di rete contiene tutte le regole desiderate, entro i limiti della sottoscrizione di Azure. Ogni regola specifica le proprietà seguenti:

Proprietà Spiegazione
Nome Nome univoco all'interno del gruppo di sicurezza di rete. Il nome può contenere fino a 80 caratteri. Deve iniziare con un carattere alfanumerico e deve terminare con un carattere alfanumerico o con '_'. Il nome può contenere caratteri alfanumerici o '.', '-', '_'.
Priorità Numero compreso tra 100 e 4096. Le regole vengono elaborate in ordine di priorità, con i numeri inferiori elaborati prima dei numeri più alti perché i numeri inferiori hanno una priorità più alta. Quando il traffico corrisponde a una regola, l'elaborazione viene arrestata. Di conseguenza, le regole esistenti con priorità inferiori (numeri più alti) che hanno gli stessi attributi delle regole con priorità più alte non vengono elaborate.
Alle regole di sicurezza predefinite di Azure viene assegnato il numero più alto con la priorità più bassa per garantire che le regole personalizzate vengano sempre elaborate per prime.
Origine o destinazione Qualsiasi indirizzo IP, blocco CIDR (Classless Inter-Domain Routing), ad esempio 10.0.0.0/24, tag di servizio o gruppo di sicurezza delle applicazioni. Se si specifica un indirizzo per una risorsa di Azure, specificare l'indirizzo IP privato assegnato alla risorsa. I gruppi di sicurezza della rete vengono elaborati dopo che Azure ha convertito un indirizzo IP pubblico in un indirizzo IP privato per il traffico in ingresso e prima che Azure converta un indirizzo IP privato in un indirizzo IP pubblico per il traffico in uscita. Quando si specifica un intervallo, un tag di servizio o un gruppo di sicurezza dell'applicazione, sono necessarie meno regole di sicurezza. La possibilità di specificare più intervalli e indirizzi IP singoli in una regola è detta regola di sicurezza ottimizzata. Non si possono specificare più tag di servizio o gruppi di applicazioni. È possibile creare regole di sicurezza ottimizzate solo in gruppi di sicurezza di rete creati tramite il modello di distribuzione Resource Manager. Non si possono specificare più indirizzi IP e intervalli di indirizzi IP nei gruppi di sicurezza di rete creati tramite il modello di distribuzione classica.
Protocollo TCP, UDP, ICMP, ESP, AH o Qualsiasi. I protocolli ESP e AH non sono attualmente disponibili tramite il portale di Azure, ma possono essere usati tramite i modelli di Azure Resource Manager.
Direzione Definisce se la regola si applica al traffico in ingresso o in uscita.
Intervallo di porte È possibile specificare una singola porta o un intervallo di porte. Ad esempio, è possibile specificare 80 oppure 10000-10005. Specificando intervalli è possibile creare un minor numero di regole di sicurezza. È possibile creare regole di sicurezza ottimizzate solo in gruppi di sicurezza di rete creati tramite il modello di distribuzione Resource Manager. Non si possono specificare più porte o intervalli di porte nella stessa regola di sicurezza nei gruppi di sicurezza di rete creati tramite il modello di distribuzione classica.
Azione Consentire o negare

Le regole di sicurezza vengono valutate e applicate in base alle informazioni alle cinque tuple (1. origine, 2. porta di origine, 3. destinazione, 4. porta di destinazione e 5. protocollo). Non si possono creare due regole di sicurezza con la stessa priorità e direzione. Viene creato un record di flusso per le connessioni esistenti. La comunicazione è consentita o negata in base allo stato di connessione del record di flusso. Il record di flusso consente al gruppo di sicurezza di avere uno stato. Se si specifica una regola di sicurezza in uscita per qualsiasi indirizzo sulla porta 80, ad esempio, non è necessario specificare una regola di sicurezza in ingresso per la risposta al traffico in uscita. È necessario specificare una regola di sicurezza in ingresso solo se la comunicazione viene avviata all'esterno. Questa considerazione si applica anche al contrario. Se il traffico in ingresso è consentito su una porta, non è necessario specificare una regola di sicurezza in uscita per rispondere al traffico sulla porta.

Potrebbe non essere possibile interrompere le connessioni esistenti quando si rimuove una regola di sicurezza che ha consentito la connessione. La modifica delle regole del gruppo di sicurezza di rete influirà solo sulle nuove connessioni. Quando viene creata una nuova regola o una regola esistente viene aggiornata in un gruppo di sicurezza di rete, questa verrà applicata solo alle nuove connessioni. Le connessioni esistenti non vengono rivalutate con le nuove regole.

Come i gruppi di sicurezza di rete filtrano il traffico

È possibile distribuire le risorse di diversi servizi di Azure in una rete virtuale di Azure. È possibile associare zero o un gruppo di sicurezza di rete a ogni subnet e interfaccia di rete della rete virtuale in una macchina virtuale. Lo stesso gruppo di sicurezza di rete può essere associato a un numero qualsiasi di subnet e interfacce di rete. L'immagine seguente illustra diversi scenari per l'implementazione dei gruppi di sicurezza di rete per consentire il traffico di rete da e verso Internet tramite la porta TCP 80:

Diagramma che mostra un esempio di come distribuire i gruppi di sicurezza di rete per consentire il traffico di rete da e verso Internet tramite la porta TCP 80.

Fare riferimento all'immagine, insieme al testo seguente, per comprendere in che modo Azure elabora le regole in ingresso e in uscita per i gruppi di sicurezza di rete:

Traffico in ingresso

Per il traffico in ingresso, Azure elabora prima le regole in un gruppo di sicurezza di rete associato a una subnet, se presente, e quindi le regole in un gruppo di sicurezza di rete associato all'interfaccia di rete, se presente. Questo processo include anche il traffico all'interno della subnet.

  • VM1: le regole di sicurezza in NSG1 vengono elaborate dal momento che è associata a Subnet 1 e VM1 si trova nella Subnet 1. A meno che non sia stata creata una regola che consenta la porta 80 in ingresso, la regola di sicurezza predefinita DenyAllInbound nega il traffico. Il traffico non viene valutato da NSG2 perché è associato all'interfaccia di rete. Se NSG1 consente la porta 80 nella regola di sicurezza, NSG2 elabora il traffico. Per consentire la porta 80 alla macchina virtuale, sia NSG1 che NSG2 devono avere una regola che consenta la porta 80 da Internet.
  • VM2: le regole in NSG1 vengono elaborate dal momento che anche VM2 si trova nella Subnet 1. Poiché VM2 non dispone di un gruppo di sicurezza di rete associato alla relativa interfaccia di rete, riceve tutto il traffico consentito attraverso NSG1 o le viene negato tutto il traffico negato da NSG1. Quando un gruppo di sicurezza di rete è associato a una subnet, il traffico è consentito o negato a tutte le risorse della stessa subnet.
  • VM3: dal momento che non è associato alcun gruppo di sicurezza di rete a Subnet 2, il traffico è consentito nella subnet ed elaborato da NSG2 poiché NSG2 è associato all'interfaccia di rete collegata a VM3.
  • VM4: il traffico è consentito nella VM4 dal momento che un gruppo di sicurezza di rete non è associato a Subnet 3 o all'interfaccia di rete nella macchina virtuale. È consentito tutto il traffico di rete attraverso una subnet e un'interfaccia di rete se questi componenti non hanno un gruppo di sicurezza di rete associato.

Traffico in uscita

Per il traffico in uscita, Azure elabora prima le regole in un gruppo di sicurezza di rete associato a un'interfaccia di rete, se presente, e quindi le regole in un gruppo di sicurezza di rete associato alla subnet, se presente. Questo processo include anche il traffico all'interno della subnet.

  • VM1: le regole di sicurezza in NSG2 vengono elaborate. La regola di sicurezza predefinita AllowInternetOutbound in NSG1 e NSG2 consente il traffico a meno che non si crei una regola di sicurezza che nega la porta 80 in uscita verso Internet. Se NSG2 nega la porta 80 nella regola di sicurezza, viene negato il traffico e NSG1 non lo valuta mai. Per negare la porta 80 dalla macchina virtuale, uno o entrambi i gruppi di sicurezza di rete devono avere una regola che nega la porta 80 verso Internet.
  • VM2: tutto il traffico viene inviato tramite l'interfaccia di rete alla subnet dal momento che l'interfaccia di rete collegata a VM2 non dispone di un gruppo di sicurezza di rete associato. Le regole in NSG1 vengono elaborate.
  • VM3: se NSG2 nega la porta 80 nella regola di sicurezza, viene negato il traffico. Se NSG2 non nega la porta 80, la regola di sicurezza predefinita AllowInternetOutbound in NSG2 consente il traffico perché non esiste alcun gruppo di sicurezza di rete associato a Subnet 2.
  • VM4: tutto il traffico di rete è consentito da VM4 dal momento che un gruppo di sicurezza di rete non è associato all'interfaccia di rete collegata alla macchina virtuale o a Subnet 3.

Traffico all'interno della subnet

È importante notare che le regole di sicurezza in un gruppo di sicurezza di rete associato a una subnet possono influire sulla connettività tra le macchine virtuali al suo interno. Per impostazione predefinita, le macchine virtuali nella stessa subnet possono comunicare in base a una regola del gruppo di sicurezza di rete predefinita che consente il traffico all'interno della subnet. Se si aggiunge una regola a NSG1 che nega tutto il traffico in ingresso e in uscita, VM1 e VM2 non saranno in grado di comunicare tra loro.

È possibile visualizzare facilmente le regole di aggregazione applicate a un'interfaccia di rete visualizzando le regole di sicurezza effettive per un'interfaccia di rete. È anche possibile usare la funzionalità di verifica del flusso IP in Azure Network Watcher per determinare se è consentita la comunicazione da o verso un'interfaccia di rete. È possibile usare la verifica del flusso IP per determinare se una comunicazione è consentita o negata. Usare inoltre la verifica del flusso IP per visualizzare l'identità della regola di sicurezza di rete responsabile dell'autorizzazione o del rifiuto del traffico.

I gruppi di sicurezza di rete sono associati a subnet o a macchine virtuali e servizi cloud distribuiti nel modello di distribuzione classico e a subnet o interfacce di rete nel modello di distribuzione Resource Manager.

A meno che non si disponga di un motivo specifico, è consigliabile associare un gruppo di sicurezza di rete a una subnet o a un'interfaccia di rete, ma non a entrambi. Dato che le regole di un gruppo di sicurezza di rete associato a una subnet possono entrare in conflitto con quelle di un gruppo di sicurezza di rete associato a un'interfaccia di rete, è possibile che si verifichino problemi di comunicazione imprevisti che devono essere risolti.

Gruppi di sicurezza delle applicazioni

I gruppi di sicurezza delle applicazioni consentono di configurare la sicurezza di rete come un'estensione naturale della struttura di un'applicazione, raggruppando le macchine virtuali e definendo i criteri di sicurezza di rete in base a tali gruppi. È possibile riusare i criteri di sicurezza su larga scala senza gestire manualmente indirizzi IP espliciti. La piattaforma gestisce la complessità degli indirizzi IP espliciti e di più set di regole, consentendo all'utente di concentrarsi sulla logica di business. Per comprendere meglio i gruppi di sicurezza delle applicazioni, considerare l'esempio seguente:

Diagramma che mostra un esempio di gruppi di sicurezza di rete e di gruppi di sicurezza delle applicazioni di Azure.

Nell'immagine precedente, NIC1 e NIC2 sono membri del gruppo di sicurezza delle applicazioni AsgWeb. NIC3 fa parte del gruppo di sicurezza delle applicazioni AsgLogic. NIC4 fa parte del gruppo di sicurezza delle applicazioni AsgDb. Anche se in questo esempio ogni interfaccia di rete è membro di un solo gruppo di sicurezza di rete, un'interfaccia di rete può essere membro di più gruppi di sicurezza delle applicazioni, fino ai limiti di Azure. A nessuna delle interfacce di rete è associato un gruppo di sicurezza di rete. NSG1 è associato a entrambe le subnet e contiene le regole seguenti:

Allow-HTTP-Inbound-Internet

Questa regola è necessaria per consentire il traffico da Internet verso i server Web. Poiché il traffico in ingresso da Internet viene negato dalla regola di sicurezza predefinita DenyAllInbound, non sono necessarie regole aggiuntive per i gruppi di sicurezza delle applicazioni AsgLogic o AsgDb.

Priorità Origine Porte di origine Destinazione Porte di destinazione Protocollo Accesso
100 Internet * AsgWeb 80 TCP Consenti

Deny-Database-All

Dato che la regola di sicurezza predefinita AllowVNetInBound consente tutte le comunicazioni tra le risorse nella stessa rete virtuale, questa regola è necessaria per negare il traffico da tutte le risorse.

Priorità Origine Porte di origine Destinazione Porte di destinazione Protocollo Accesso
120 * * AsgDb 1433 Qualsiasi Nega

Allow-Database-BusinessLogic

Questa regola consente il traffico dal gruppo di sicurezza delle applicazioni AsgLogic al gruppo di sicurezza delle applicazioni AsgDb. La priorità di questa regola è superiore a quella della regola Deny-Database-All. Di conseguenza, questa regola viene elaborata prima della regola Deny-Database-All, quindi il traffico dal gruppo di sicurezza delle applicazioni AsgLogic è consentito, mentre tutto il resto del traffico è bloccato.

Priorità Origine Porte di origine Destinazione Porte di destinazione Protocollo Accesso
110 AsgLogic * AsgDb 1433 TCP Consenti

Le interfacce di rete che fanno parte del gruppo di sicurezza delle applicazioni applicano le regole che la specificano come origine o destinazione. Le regole non influiscono su altre interfacce di rete. Se l'interfaccia di rete non è membro di un gruppo di sicurezza delle applicazioni, la regola non viene applicata all'interfaccia di rete, anche se il gruppo di sicurezza di rete è associato alla subnet.

I gruppi di sicurezza delle applicazioni hanno i vincoli seguenti:

  • Sono previsti limiti per il numero di gruppi di sicurezza delle applicazioni presenti in una sottoscrizione, oltre ad altri limiti relativi ai gruppi di sicurezza delle applicazioni.

  • Tutte le interfacce di rete assegnate a un gruppo di sicurezza delle applicazioni devono esistere nella stessa rete virtuale in cui si trova la prima interfaccia di rete assegnata al gruppo di sicurezza delle applicazioni. Se ad esempio la prima interfaccia di rete assegnata a un gruppo di sicurezza delle applicazioni denominato AsgWeb si trova nella rete virtuale denominata VNet1, tutte le interfacce di rete successive assegnate a ASGWeb devono trovarsi in VNet1. Non è possibile aggiungere interfacce di rete da reti virtuali diverse allo stesso gruppo di sicurezza delle applicazioni.

  • Se si specifica un gruppo di sicurezza delle applicazioni come origine e destinazione in una regola di sicurezza, le interfacce di rete in entrambi i gruppi di sicurezza delle applicazioni devono trovarsi nella stessa rete virtuale.

    • Ad esempio: se AsgLogic avesse interfacce di rete di VNet1 e AsgDb avesse interfacce di rete di VNet2. In questo caso, sarebbe impossibile assegnare AsgLogic come origine e AsgDb come destinazione in una regola. Tutte le interfacce di rete per i gruppi di sicurezza delle applicazioni di origine e di destinazione devono esistere nella stessa rete virtuale.

Per ridurre al minimo il numero di regole di sicurezza e la necessità di modificarle, pianificare i gruppi di sicurezza delle applicazioni necessari e creare regole usando tag di servizio o gruppi di sicurezza delle applicazioni, anziché singoli indirizzi IP o intervalli di indirizzi IP, quando possibile.