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:
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:
- Controllo
- Valutazione della vulnerabilità
- Servizio Importazione/Esportazione
- OPENROWSET
- Inserimento bulk
- sp_invoke_external_rest_endpoint
- Libro mastro
- Crittografia dei dati trasparente Azure SQL con chiave gestita dal cliente
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.
Collegamento privato
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.
Contenuto correlato
Per una guida di avvio rapido sulla creazione di un database e di una regola del firewall IP a livello di server, vedere Creare un database nel database SQL.
Per una guida di avvio rapido sulla creazione di una regola del firewall di rete virtuale a livello di server, vedere Endpoint servizio di rete virtuale e regole per database SQL di Azure.
Per aiuto online sulla connessione a un database nel database SQL da applicazioni open source o partner, vedere Esempi di codice di avvio rapido del client per il database SQL.
Per informazioni sulle altre porte che si possono dover aprire vedere la sezione Database SQL: Esterno rispetto all'interno di Porte successive alla 1433 per ADO.NET 4.5 e database SQL
Per una panoramica della connettività del database SQL di Azure, vedere Architettura della connettività di Azure SQL.
Per una panoramica della sicurezza del database SQL di Azure vedere Protezione del Database SQL