Condividi tramite


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.

Per impostazione predefinita, il server logico nega tutte le connessioni per garantire la sicurezza. È possibile usare uno o più dei controlli di accesso di rete seguenti per consentire in modo selettivo l'accesso a un database tramite l'endpoint pubblico

  • Regole del firewall IP: usare questa funzionalità per consentire in modo esplicito le connessioni da un indirizzo IP specifico. Ad esempio, dai computer locali o da un intervallo di indirizzi IP specificando l'indirizzo IP iniziale e finale.

  • Consentire ai servizi e alle risorse di Azure di accedere a questo server: quando abilitate, altre risorse entro i limiti di Azure possono accedere al Database SQL. Ad esempio, una macchina virtuale di Azure può accedere alle risorse del database SQL.

È 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.

Regole del firewall IP

Le regole del firewall basate su IP sono una funzionalità del server logico in Azure che impedisce tutto l'accesso al server fino a quando non si esplicitamente aggiungere indirizzi IP dei computer client.

Esistono due tipi di regole del firewall:

  • regole del firewall a livello di server: queste regole si applicano a tutti i database nel server. Possono essere configurati tramite il portale di Azure, PowerShell o I comandi T-SQL, ad esempio sp_set_firewall_rule.
  • regole del firewall a livello di database: queste regole si applicano ai singoli database e possono solo essere configurate usando comandi T-SQL come sp_set_database_firewall_rule

Di seguito sono riportati i vincoli per la denominazione delle regole del firewall:

  • Il nome della regola del firewall non può essere vuoto.
  • Non può contenere i caratteri seguenti: <, >, *, %, &, :, \\, /, ?.
  • Non può terminare con un punto (.).
  • Il nome della regola del firewall non può superare i 128 caratteri.

Qualsiasi tentativo di creare regole del firewall che non soddisfano questi vincoli ha esito negativo e viene visualizzato un messaggio di errore. Tutte le modifiche apportate alle regole del firewall basate su IP esistenti possono richiedere fino a 5 minuti.

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 pubblico.

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

Screenshot della gestione del firewall del server

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, indipendente dal fatto che facciano parte della sottoscrizione. Dietro le quinte viene aggiunta una speciale regola del firewall a livello di server che inizia e termina con l'indirizzo IP di 0.0.0.0.

In molti casi, l'abilitazione dell'impostazione è più permissiva rispetto a quanto desiderato dalla maggior parte dei clienti. È possibile deselezionare questa impostazione e sostituirla con regole del firewall IP più restrittive o usare una delle opzioni per l'accesso privato.

Importante

Selezionando Consenti ai servizi e alle risorse di Azure di accedere a questo server viene aggiunta una regola del firewall basata su IP con indirizzo IP iniziale e finale 0.0.0.0

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 il seguente script di PowerShell 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.

Tag del servizio Sql

I tag del servizio possono essere usati nelle regole di sicurezza e nelle route dai client ai database SQL. I tag del servizio possono essere usati in gruppi di sicurezza di rete, Firewall di Azure e route definite dall'utente e devono essere specificati nel campo di origine o destinazione di una regola di sicurezza. Il tag del servizio Sql è costituito da tutti gli indirizzi IP usati dal database SQL. Il tag viene ulteriormente segmentato in base alle aree. Ad esempio Sql.WestUS elenca tutti gli indirizzi IP usati dal database SQL negli Stati Uniti occidentali.

Il tag del servizio Sql è costituito dagli indirizzi IP necessari per stabilire la connessione con il database SQL, come documentato in Indirizzi IP del gateway. Inoltre, un tag del servizio verrà associato a qualsiasi traffico in uscita dal database SQL, usato in funzionalità come:

Tag del servizio SqlManagement

Il tag del servizio SqlManagement viene usato per le operazioni del piano di controllo sul database SQL.

Regole del firewall della rete virtuale

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

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.