Controllo di accesso alla rete del database SQL di Azure e Azure Synapse Analytics

Si applica a:database SQL di AzureAzure Synapse Analytics (solo pool SQL dedicati)

Quando si crea un server logico dal portale di Azure per il database SQL di Azure e Azure Synapse Analytics, il risultato è un endpoint pubblico nel formato yourservername.database.windows.net.

È possibile usare i seguenti controlli di accesso di rete per consentire l'accesso in modo selettivo a un database tramite l'endpoint pubblico:

  • Consentire ai servizi e alle risorse di Azure di accedere a questo server: quando abilitate, altre risorse entro i limiti di Azure, ad esempio una macchina virtuale di Azure, possono accedere al Database SQL
  • Regole del firewall IP: usare questa funzionalità per consentire in modo esplicito le connessioni da un indirizzo IP specifico, ad esempio dai computer locali

È anche possibile consentire l'accesso privato al database dalle reti virtuali tramite:

  • Regole del firewall di rete virtuale: usare questa funzionalità per consentire il traffico da una rete virtuale specifica entro il limite di Azure
  • Collegamento privato: usare questa funzionalità per creare un endpoint privato per il server logico in Azure all'interno di una rete virtuale specifica

Importante

Questo articolo non si applica a Istanza gestita di SQL. Per altre informazioni sulla configurazione di rete, vedere connessione a un'Istanza gestita di SQL di Azure.

Vedere il video seguente per una spiegazione generale di questi controlli di accesso e delle relative funzioni:

Consenti Servizi di Azure

Per impostazione predefinita, durante la creazione di un nuovo server logico dal portale di Azure, l’impostazione Consenti ai servizi e alle risorse di Azure di accedere a questo server non è spuntata e non è abilitata. Questa impostazione viene visualizzata quando la connettività è consentita tramite l'endpoint di servizio pubblico.

È anche possibile modificare questa impostazione tramite l'impostazione Rete dopo la creazione del server logico come indicato di seguito:

Screenshot of manage server firewall

Quando l'impostazione Consenti alle risorse e ai servizi di Azure di accedere a questo server è abilitata, il server consente le comunicazioni da tutte le risorse all'interno dei limiti di Azure, che potrebbero essere o meno parte della sottoscrizione.

In molti casi, l'abilitazione dell'impostazione è più permissiva rispetto a quanto desiderato dalla maggior parte dei clienti. È consigliabile deselezionare questa impostazione e sostituirla con regole del firewall IP più restrittive o con regole del firewall di rete virtuale.

Tuttavia, questa operazione influisce sulle funzionalità seguenti eseguite su macchine virtuali in Azure che non fanno parte della rete virtuale e quindi si connettono al database tramite un indirizzo IP di Azure:

Servizio Importazione/Esportazione di Azure

Il servizio Importazione/Esportazione non funziona quando l'opzione Consenti ai servizi e alle risorse di Azure di accedere a questo server non è abilitata. È però possibile aggirare il problema eseguendo manualmente sqlpackage.exe da una macchina virtuale di Azure o eseguendo l'esportazione direttamente nel codice usando l'API DACFx.

Sincronizzazione dei dati

Per usare la funzionalità di sincronizzazione dati con Consenti ai servizi e alle risorse di Azure di accedere a questo server non abilitata, è necessario creare singole voci di regole del firewall per aggiungere indirizzi IP dal tag del servizio Sql per l'area che ospita il database Hub . Aggiungere queste regole del firewall a livello di server ai server che ospitano database Hub e Member (che possono trovarsi in aree diverse)

Usare il seguente script di PowerShell per generare indirizzi IP corrispondenti al tag del servizio SQL per l'area Stati Uniti occidentali

PS C:\>  $serviceTags = Get-AzNetworkServiceTag -Location eastus2
PS C:\>  $sql = $serviceTags.Values | Where-Object { $_.Name -eq "Sql.WestUS" }
PS C:\> $sql.Properties.AddressPrefixes.Count
70
PS C:\> $sql.Properties.AddressPrefixes
13.86.216.0/25
13.86.216.128/26
13.86.216.192/27
13.86.217.0/25
13.86.217.128/26
13.86.217.192/27

Suggerimento

Get-AzNetworkServiceTag restituisce l'intervallo globale per tag del servizio SQL nonostante specifichi il parametro Posizione. Assicurarsi di filtrarlo in base all'area che ospita il database Hub usato dal gruppo di sincronizzazione

L'output dello script di PowerShell è nella notazione CIDR (Classless Inter-Domain Routing). Questa deve essere convertita in un formato di indirizzo IP iniziale e finale usando Get-IPrangeStartEnd.ps1 nel modo seguente:

PS C:\> Get-IPrangeStartEnd -ip 52.229.17.93 -cidr 26
start        end
-----        ---
52.229.17.64 52.229.17.127

È possibile usare questo script di PowerShell aggiuntivo per convertire tutti gli indirizzi IP da CIDR al formato di indirizzo IP iniziale e finale.

PS C:\>foreach( $i in $sql.Properties.AddressPrefixes) {$ip,$cidr= $i.split('/') ; Get-IPrangeStartEnd -ip $ip -cidr $cidr;}
start          end
-----          ---
13.86.216.0    13.86.216.127
13.86.216.128  13.86.216.191
13.86.216.192  13.86.216.223

È ora possibile aggiungerli come regole del firewall distinte e quindi disabilitare l'impostazione Consenti ai servizi e alle risorse di Azure di accedere a questo server.

Regole del firewall IP

Il firewall basato su IP è una funzionalità del server logico in Azure che impedisce tutti gli accessi al server fino a quando non si aggiungono in modo esplicito gli indirizzi IP dei computer client.

Regole del firewall della rete virtuale

Oltre alle regole IP, il firewall del server consente di definire le regole di rete virtuale. Per altre informazioni, vedere Endpoint servizio di rete virtuale e regole per il database SQL di Azure.

Terminologia di Rete di Azure

Occorre conoscere le seguenti condizioni per la rete di Azure durante l'esplorazione delle regole del firewall di rete virtuale

Rete virtuale: è possibile associare reti virtuali alla sottoscrizione di Azure

Subnet: una rete virtuale contiene subnet. Le macchine virtuali (VM) di Azure esistenti vengono assegnate a subnet. Una subnet può contenere varie VM o altri nodi di calcolo. I nodi di calcolo esterni alla rete virtuale non possono accedervi, a meno che non si configuri la sicurezza in modo da consentirne l'accesso.

Endpoint servizio di rete virtuale: un endpoint servizio di rete virtuale è una subnet in cui i valori delle proprietà includono uno o più nomi formali di tipi di servizi Azure. Questo articolo è incentrato sul nome del tipo Microsoft.Sql, che fa riferimento al servizio Azure denominato Database SQL.

Regola di rete virtuale: una regola di rete virtuale per il server è una subnet presente nell'elenco di controllo di accesso (ACL) del server. Per essere nell'elenco ACL per il database nel database SQL, la subnet deve contenere il nome del tipo Microsoft.Sql. Una regola di rete virtuale indica al server di accettare le comunicazioni da ogni nodo che si trova nella subnet.

Regole del firewall della rete virtuale e IP a confronto

Il firewall del database SQL di Azure consente di specificare gli intervalli di indirizzi IP da cui vengono accettate le comunicazioni nel database SQL. Questo approccio è ideale per gli indirizzi IP stabili esterni alla rete privata di Azure, Tuttavia, le macchine virtuali (VM) all'interno della rete privata di Azure sono configurate con indirizzi IP dinamici. Gli indirizzi IP dinamici possono cambiare quando la macchina virtuale viene riavviata e a sua volta invalidano la regola del firewall basata su IP. Sarebbe inutile specificare un indirizzo IP dinamico in una regola del firewall, in un ambiente di produzione.

È possibile ovviare a questa limitazione ottenendo un indirizzo IP statico per la VM. Per informazioni, vedere Creare una macchina virtuale con un indirizzo IP pubblico statico usando il portale di Azure. Tuttavia, l'approccio IP statico può diventare difficile da gestire ed è dispendioso a livello di scalabilità.

Le regole di rete virtuale sono un'alternativa più semplice per stabilire e gestire l'accesso da una subnet specifica che contiene le VM.

Nota

Il database SQL non è ancora disponibile in una subnet. Se il server è un nodo in una subnet nella rete virtuale, tutti i nodi all'interno della rete virtuale possono comunicare con il database SQL. In questo caso, le macchine virtuali possono comunicare con il database SQL senza aver bisogno di regole di rete virtuale o IP.

Il servizio Collegamento privato consente di connettersi a un server tramite un endpoint privato. Un endpoint privato è un indirizzo IP privato all'interno di una rete virtuale e di una subnet specifiche.

Passaggi successivi