Architettura della connettività per Istanza gestita di SQL di Azure
Si applica a: Istanza gestita di SQL di Azure
Questo articolo descrive l'architettura di connettività in Istanza gestita di SQL di Azure e il modo in cui i componenti indirizzano il traffico di comunicazione per un'istanza gestita.
Panoramica
In Istanza gestita di SQL, un'istanza viene inserita all'interno della rete virtuale di Azure e all'interno della subnet dedicata alle istanze gestite. La distribuzione fornisce:
- Indirizzo IP di rete virtuale sicura (VNet-local).
- Possibilità di connettere una rete locale a Istanza gestita di SQL.
- Possibilità di connettersi Istanza gestita di SQL a un server collegato o a un altro archivio dati locale.
- Possibilità di connettersi Istanza gestita di SQL alle risorse di Azure.
Nota
L'onda delle funzionalità di novembre 2022 ha introdotto modifiche alla struttura di connettività predefinita di Istanza gestita di SQL. Questo articolo fornisce informazioni sull'architettura corrente e sull'architettura delle istanze che non sono ancora state registrate nell'ondata di funzionalità. Per altre informazioni, vedere Ondata di funzionalità di novembre 2022.
Ondata di funzionalità di novembre 2022
L'ondata di funzionalità di novembre 2022 ha introdotto le modifiche seguenti all'architettura di connettività Istanza gestita di SQL:
- Rimosso l'endpoint di gestione.
- Regole di gruppo di sicurezza di rete obbligatorie semplificate (rimosse una regola obbligatoria).
- Le regole del gruppo di sicurezza di rete obbligatorie modificate in modo che non includano più l'uscita in AzureCloud sulla porta 443.
- Semplificata la tabella di route (route obbligatorie ridotte da 13 a 5).
Architettura generale della connettività
A livello generale, Istanza gestita di SQL è costituito da componenti del servizio ospitati in un set dedicato di macchine virtuali isolate aggiunte a un cluster virtuale. Alcuni componenti del servizio vengono distribuiti all'interno della subnet di rete virtuale del cliente mentre altri servizi operano all'interno di un ambiente di rete sicuro gestito da Microsoft.
Un cluster virtuale può ospitare più istanze gestite e, Il cluster espande automaticamente o contratti in base alle esigenze per supportare istanze nuove e rimosse.
Le applicazioni del cliente possono connettersi a Istanza gestita di SQL e possono eseguire query e aggiornare i database all'interno della rete virtuale, della rete virtuale con peering o della rete connessa da VPN o Da Azure ExpressRoute.
Il diagramma seguente illustra le entità che si connettono a Istanza gestita di SQL. Mostra anche le risorse che devono comunicare con un'istanza gestita. Il processo di comunicazione nella parte inferiore del diagramma rappresenta applicazioni e strumenti dei clienti che si connettono a Istanza gestita di SQL come origini dati.
Istanza gestita di SQL è un singolo tenant, una piattaforma come servizio che opera in due piani: un piano dati e un piano di controllo.
Il piano dati viene distribuito all'interno della subnet del cliente per compatibilità, connettività e isolamento di rete. Il piano dati dipende da servizi di Azure come Archiviazione di Azure, Azure Active Directory (Azure AD) per l'autenticazione e i servizi di raccolta di dati di telemetria. Verrà visualizzato il traffico che ha origine nelle subnet che contengono Istanza gestita di SQL andando a tali servizi.
Il piano di controllo esegue le funzioni di distribuzione, gestione e manutenzione del servizio principale tramite agenti automatizzati. Questi agenti hanno accesso esclusivo alle risorse di calcolo che operano il servizio. Non è possibile usare o Remote ssh
Desktop Protocol per accedere a tali host. Tutte le comunicazioni del piano di controllo vengono crittografate e firmate usando i certificati. Per verificare la attendibilità delle parti di comunicazione, Istanza gestita di SQL verifica costantemente questi certificati usando elenchi di revoche di certificati.
Panoramica delle comunicazioni
Le applicazioni possono connettersi a Istanza gestita di SQL tramite tre tipi di endpoint. Questi endpoint servono scenari diversi e presentano proprietà e comportamenti di rete distinti.
Endpoint locale della rete virtuale
L'endpoint locale della rete virtuale è il metodo predefinito per connettersi a Istanza gestita di SQL. L'endpoint locale della rete virtuale è un nome di dominio sotto forma di che risolve un indirizzo IP dal pool di <mi_name>.<dns_zone>.database.windows.net
indirizzi della subnet , quindi dalla rete virtuale locale o da un endpoint locale alla rete virtuale. L'endpoint locale della rete virtuale può essere usato per connettersi a un Istanza gestita di SQL in tutti gli scenari di connettività standard.
Gli endpoint locali della rete virtuale supportano il tipo di connessione di reindirizzamento.
Quando ci si connette all'endpoint locale della rete virtuale, usare sempre il nome di dominio come indirizzo IP sottostante può cambiare occasionalmente.
Endpoint pubblico
L'endpoint pubblico è un nome di dominio facoltativo sotto forma di <mi_name>.public.<dns_zone>.database.windows.net
che risolve un indirizzo IP pubblico raggiungibile da Internet. L'endpoint pubblico consente al traffico TDS solo di raggiungere Istanza gestita di SQL sulla porta 3442 e non può essere usato per scenari di integrazione, ad esempio gruppi di failover, Istanza gestita Collegamento e simili.
Quando ci si connette all'endpoint locale della rete virtuale, usare sempre il nome di dominio come indirizzo IP sottostante può cambiare occasionalmente.
L'endpoint pubblico opera sempre nel tipo di connessione proxy.
Informazioni su come configurare un endpoint pubblico in Configurare l'endpoint pubblico per Istanza gestita di SQL di Azure.
Endpoint privato (anteprima)
Un endpoint privato, attualmente in anteprima per Istanza gestita di SQL di Azure, è un indirizzo IP fisso facoltativo in un'altra rete virtuale che esegue il traffico all'istanza gestita di SQL. Un Istanza gestita di SQL di Azure può avere più endpoint privati in più reti virtuali. Gli endpoint privati consentono al traffico TDS solo di raggiungere Istanza gestita di SQL sulla porta 1433 e non possono essere usati per scenari di integrazione, ad esempio gruppi di failover, Istanza gestita collegamento e altre tecnologie simili.
Quando ci si connette a un endpoint privato, usare sempre il nome di dominio perché la connessione a Istanza gestita di SQL di Azure tramite l'indirizzo IP non è supportata.
Gli endpoint privati operano sempre nel tipo di connessione proxy.
Altre informazioni sugli endpoint privati e su come configurarli in collegamento privato di Azure per Istanza gestita di SQL di Azure.
Architettura della connettività del cluster virtuale
In questa sezione viene fornita un'occhiata più attenta all'architettura di connettività del cluster virtuale di Istanza gestita di SQL. Il diagramma seguente illustra il layout concettuale del cluster virtuale:
Il nome di dominio dell'endpoint locale della rete virtuale risolve l'indirizzo IP privato di un servizio di bilanciamento del carico interno. Anche se questo nome di dominio è registrato in una zona DNS (Domain Name System) pubblico ed è risolvibile pubblicamente, il relativo indirizzo IP appartiene all'intervallo di indirizzi della subnet e può essere raggiunto solo dall'interno della propria rete virtuale per impostazione predefinita.
Il servizio di bilanciamento del carico indirizza il traffico a un gateway Istanza gestita di SQL. Poiché più istanze gestite possono essere eseguite all'interno dello stesso cluster, il gateway usa il nome host Istanza gestita di SQL come illustrato nella stringa di connessione per reindirizzare il traffico al servizio motore SQL corretto.
Il valore per zone-id
viene generato automaticamente quando si crea il cluster. Se un nuovo cluster ospita un'istanza gestita secondaria, ne condivide l'ID zona con il cluster principale.
Configurazione della subnet con il supporto del servizio
Per migliorare la sicurezza del servizio, la gestibilità e la disponibilità, Istanza gestita di SQL applica criteri di finalità di rete in alcuni elementi dell'infrastruttura di rete virtuale di Azure. Il criterio configura la subnet, il gruppo di sicurezza di rete associato e la tabella di route per assicurarsi che siano soddisfatti i requisiti minimi per Istanza gestita di SQL. Questo meccanismo della piattaforma consente di comunicare i requisiti di rete agli utenti in modo trasparente. L'obiettivo principale del criterio è prevenire la mancata configurazione della rete e garantire la normale Istanza gestita di SQL operazioni e l'impegno del contratto a livello di servizio. Quando si elimina un'istanza gestita, vengono rimossi anche i criteri relativi alle finalità di rete.
Una configurazione della subnet a supporto del servizio si basa sulla funzionalità di delega della subnet di rete virtuale per fornire la gestione automatica della configurazione della rete e per abilitare gli endpoint di servizio.
È possibile usare gli endpoint di servizio per configurare le regole del firewall di rete virtuale sugli account di archiviazione che mantengono i backup e i log di controllo. Anche con gli endpoint di servizio abilitati, i clienti sono invitati a usare collegamento privato di Azure per accedere agli account di archiviazione. collegamento privato fornisce più isolamento rispetto agli endpoint di servizio.
Importante
A causa delle specifiche della configurazione del piano di controllo, una configurazione della subnet a supporto del servizio non abilita gli endpoint di servizio nei cloud nazionali.
Requisiti di rete
La subnet in cui Istanza gestita di SQL viene distribuita deve avere le caratteristiche seguenti:
- Subnet dedicata: la subnet Istanza gestita di SQL usa può essere delegata solo al servizio Istanza gestita di SQL. La subnet non può essere una subnet del gateway e è possibile distribuire solo Istanza gestita di SQL risorse nella subnet.
- Delega della subnet: la subnet Istanza gestita di SQL deve essere delegata al
Microsoft.Sql/managedInstances
provider di risorse. - Gruppo di sicurezza di rete: un gruppo di sicurezza di rete deve essere associato alla subnet Istanza gestita di SQL. È possibile usare un gruppo di sicurezza di rete per controllare l'accesso all'endpoint dati Istanza gestita di SQL filtrando il traffico sulla porta 1433 e le porte 11000-11999 quando Istanza gestita di SQL è configurato per le connessioni di reindirizzamento. Il servizio effettua automaticamente il provisioning delle regole e li mantiene aggiornati in base alle esigenze per consentire il flusso senza interruzioni del traffico di gestione.
- Tabella di route: è necessario associare una tabella di route alla subnet Istanza gestita di SQL. È possibile aggiungere voci alla tabella di route per instradare il traffico con intervalli di indirizzi IP privati locali come destinazione tramite il gateway di rete virtuale o l'appliance di rete virtuale. Il servizio effettua automaticamente il provisioning delle voci e li mantiene aggiornati in base alle esigenze per consentire il flusso ininterrotto del traffico di gestione.
- Indirizzi IP sufficienti: la subnet Istanza gestita di SQL deve avere almeno 32 indirizzi IP. Per altre informazioni, vedere Determinare le dimensioni della subnet per Istanza gestita di SQL. È possibile distribuire istanze gestite nella rete esistente dopo averla configurata per soddisfare i requisiti di rete per Istanza gestita di SQL. In caso contrario, creare una nuova rete e una nuova subnet.
- Consentito dai criteri di Azure: se si usa Criteri di Azure per impedire la creazione o la modifica delle risorse in un ambito che include una subnet Istanza gestita di SQL o una rete virtuale, i criteri non devono impedire Istanza gestita di SQL di gestire le risorse interne. Le risorse seguenti devono essere escluse dagli effetti di negazione dei criteri per la normale operazione:
- Risorse di tipo
Microsoft.Network/serviceEndpointPolicies
, quando il nome della risorsa inizia con\_e41f87a2\_
- Tutte le risorse di tipo
Microsoft.Network/networkIntentPolicies
- Tutte le risorse di tipo
Microsoft.Network/virtualNetworks/subnets/contextualServiceEndpointPolicies
- Risorse di tipo
- Blocca nella rete virtuale: i blocchi nella rete virtuale della subnet dedicata, il relativo gruppo di risorse padre o la sottoscrizione possono occasionalmente interferire con le operazioni di gestione e manutenzione di Istanza gestita di SQL. Prestare particolare attenzione quando si usano blocchi di risorse.
- Traffico di replica: il traffico di replica per i gruppi di failover automatico tra due istanze gestite deve essere diretto e non instradato tramite una rete hub.
- Server DNS personalizzato: Se la rete virtuale è configurata per usare un server DNS personalizzato, il server DNS deve essere in grado di risolvere i record DNS pubblici. L'uso di funzionalità come l'autenticazione di Azure AD potrebbe richiedere la risoluzione di nomi di dominio più completi (FQDN). Per altre informazioni, vedere Risoluzione dei nomi DNS privati in Istanza gestita di SQL di Azure.
Regole di sicurezza obbligatorie con configurazione della subnet con supporto del servizio
Per garantire il flusso del traffico di gestione in ingresso, sono necessarie le regole descritte nella tabella seguente. Le regole vengono applicate dai criteri di finalità di rete e non devono essere distribuite dal cliente. Per altre informazioni sull'architettura di connettività e sul traffico di gestione, vedere Architettura di connettività di alto livello.
Nome | Porta | Protocollo | Source (Sorgente) | Destination | Azione |
---|---|---|---|---|---|
healthprobe-in | Qualsiasi | Qualsiasi | AzureLoadBalancer | Subnet | Allow |
internal-in | Qualsiasi | Qualsiasi | Subnet | Subnet | Allow |
Per garantire il flusso del traffico di gestione in uscita, sono necessarie le regole descritte nella tabella seguente. Per altre informazioni sull'architettura di connettività e sul traffico di gestione, vedere Architettura di connettività di alto livello.
Nome | Porta | Protocollo | Source (Sorgente) | Destination | Azione |
---|---|---|---|---|---|
AAD-out | 443 | TCP | Subnet | AzureActiveDirectory | Allow |
OneDsCollector-out | 443 | TCP | Subnet | OneDsCollector | Allow |
internal-out | Qualsiasi | Qualsiasi | Subnet | Subnet | Allow |
StorageP-out | 443 | Qualsiasi | Subnet | Archiviazione. primaryRegion | Allow |
Archiviazione | 443 | Qualsiasi | Subnet | Archiviazione. secondaryRegion | Allow |
Route obbligatorie con configurazione della subnet con supporto del servizio
Le route descritte nella tabella seguente sono necessarie per garantire che il traffico di gestione venga instradato direttamente a una destinazione. Le route vengono applicate dai criteri di finalità di rete e non devono essere distribuite dal cliente. Per altre informazioni sull'architettura di connettività e sul traffico di gestione, vedere Architettura di connettività di alto livello.
Nome | Prefisso indirizzo | Hop successivo |
---|---|---|
AzureActiveDirectory | AzureActiveDirectory | Internet* |
OneDsCollector | OneDsCollector | Internet* |
Archiviazione. primaryRegion | Archiviazione. primaryRegion | Internet* |
Archiviazione. secondaryRegion | Archiviazione. secondaryRegion | Internet* |
subnet-to-vnetlocal | Subnet | Rete virtuale |
Nota
* Il valore Internet nella colonna Hop successivo indica al gateway di instradare il traffico all'esterno della rete virtuale. Tuttavia, se l'indirizzo di destinazione è per un servizio di Azure, Azure instrada il traffico direttamente al servizio tramite la rete di Azure anziché all'esterno del cloud di Azure. Il traffico tra i servizi di Azure non attraversa Internet, indipendentemente dall'area di Azure in cui esiste la rete virtuale o da un'area di Azure a cui viene distribuita un'istanza del servizio di Azure. Per altre informazioni, vedere Routing del traffico di rete virtuale di Azure.
È anche possibile aggiungere voci alla tabella di route per instradare il traffico con intervalli IP privati locali come destinazione tramite il gateway di rete virtuale o l'appliance di rete virtuale.
Vincoli di rete
TLS 1.2 viene applicato alle connessioni in uscita: a partire da gennaio 2020, Microsoft applica TLS 1.2 per il traffico intraservizio in tutti i servizi di Azure. Per Istanza gestita di SQL, questo ha comportato l'applicazione di TLS 1.2 sulle connessioni in uscita usate per la replica e sulle connessioni server collegate a SQL Server. Se si usa una versione di SQL Server precedente al 2016 con Istanza gestita di SQL, assicurarsi di applicare gli aggiornamenti specifici di TLS 1.2.
Le funzionalità di rete virtuale seguenti non sono attualmente supportate con Istanza gestita di SQL:
- Peering Microsoft: abilitazione del peering Microsoft nei circuiti ExpressRoute con peering diretto o transitivo con una rete virtuale in cui Istanza gestita di SQL risiede il flusso di traffico tra Istanza gestita di SQL componenti all'interno della rete virtuale e dei servizi dipende. Risultati dei problemi di disponibilità. Istanza gestita di SQL le distribuzioni in una rete virtuale già abilitata per il peering Microsoft hanno esito negativo.
- Peering di rete virtuale globale: la connettività di peering di rete virtuale tra aree di Azure non funziona per le istanze di Istanza gestita di SQL posizionate nelle subnet create prima del 9 settembre 2020.
- AzurePlatformDNS: l'uso del tag di servizio AzurePlatformDNS per bloccare la risoluzione DNS della piattaforma eseguirà il rendering Istanza gestita di SQL non disponibile. Anche se Istanza gestita di SQL supporta DNS definito dal cliente per la risoluzione DNS all'interno del motore, esiste una dipendenza dal DNS della piattaforma per le operazioni della piattaforma.
- Gateway NAT: uso di Azure Rete virtuale NAT per controllare la connettività in uscita con un indirizzo IP pubblico specifico esegue il rendering Istanza gestita di SQL non disponibile. Il servizio Istanza gestita di SQL è attualmente limitato all'uso del servizio di bilanciamento del carico di base, che non fornisce la coesistenza dei flussi in ingresso e in uscita con Azure Rete virtuale NAT.
- IPv6 per Azure Rete virtuale: la distribuzione di Istanza gestita di SQL in due stack di reti virtuali IPv4/IPv6 avrà esito negativo. Associazione di un gruppo di sicurezza di rete o una tabella di route con route definite dall'utente (UDR) che contiene prefissi di indirizzi IPv6 a una subnet Istanza gestita di SQL esegue il rendering Istanza gestita di SQL non disponibile. Inoltre, l'aggiunta di prefissi di indirizzi IPv6 a un gruppo di sicurezza di rete o UDR già associata a una subnet di istanza gestita esegue il rendering Istanza gestita di SQL non disponibile. Istanza gestita di SQL distribuzioni in una subnet con un gruppo di sicurezza di rete e UDR che hanno già prefissi IPv6 devono avere esito negativo.
- Zone private DNS di Azure con un nome riservato ai servizi Microsoft: i nomi di dominio seguenti sono nomi riservati:
core.windows.net
login.windows.net
table.core.windows.net
blob.core.windows.net
management.core.windows.net
monitoring.core.windows.net
database.windows.net
windows.net
graph.windows.net
login.microsoftonline.com
queue.core.windows.net
servicebus.windows.net
, e .vault.azure.net
La distribuzione di Istanza gestita di SQL in una rete virtuale con una zona privata DNS di Azure associata che usa un nome riservato ai servizi Microsoft ha esito negativo. Associazione di una zona privata DNS di Azure che usa un nome riservato con una rete virtuale che contiene un'istanza gestita esegue il rendering Istanza gestita di SQL non disponibile. Per informazioni sulla configurazione collegamento privato, vedere Configurazione DNS dell'endpoint privato di Azure.
Passaggi successivi
- Per una panoramica, vedere Informazioni Istanza gestita di SQL di Azure?.
- Informazioni su come configurare una nuova rete virtuale di Azure o una rete virtuale di Azure esistente in cui è possibile distribuire Istanza gestita di SQL.
- Calcolare le dimensioni della subnet in cui si vuole distribuire Istanza gestita di SQL.
- Informazioni su come creare un'istanza gestita: