collegamento privato di Azure for Azure Synapse Analytics

Tip

Microsoft Fabric Data Warehouse è un data warehouse relazionale su scala aziendale su una base data lake, con un'architettura futura, un'intelligenza artificiale predefinita e nuove funzionalità. Se non si ha familiarità con il data warehousing, iniziare con Fabric Data Warehouse. I carichi di lavoro esistenti del pool SQL dedicated possono eseguire l'aggiornamento a Fabric per accedere a nuove funzionalità tra data science, analisi in tempo reale e creazione di report.

Utilizzando collegamento privato di Azure, puoi connetterti a Synapse SQL tramite un endpoint privato. Un endpoint privato è un'interfaccia di rete con un indirizzo IP privato nella tua rete virtuale e nella tua sottorete. Il traffico rimane sulla rete dorsale di Microsoft invece di passare attraverso internet pubblico.

Usare sempre il nome di dominio completo (FQDN) del server (<server>.database.windows.net) nelle stringhe di connessione per tutti i driver e gli strumenti client. I tentativi di autenticazione che utilizzano l'indirizzo IP privato o l'FQDN del collegamento privato (<server>.privatelink.database.windows.net) non funzionano. Questo comportamento è previsto perché l'endpoint privato instrada il traffico verso il SQL Gateway, che necessita del FQDN corretto per instradare con successo le richieste di autenticazione.

Processo di creazione

Crea endpoint privati utilizzando il portale Azure, PowerShell o la interfaccia della riga di comando di Azure:

Processo di approvazione

Dopo che l'amministratore di rete ha creato l'endpoint privato (PE), l'amministratore SQL può gestire la connessione dell'endpoint privato (PEC) al database SQL.

  1. Vai alla risorsa server nel portale Azure.

  2. Vai alla pagina di approvazione dell'endpoint privato. Nella risorsa server SQL di Azure Synapse Analytics, sotto Sicurezza nel menu risorsa, seleziona Connessioni endpoint private.

  3. Visualizza quanto segue:

    • Elenco di tutte le connessioni private endpoint (PEC)
    • Endpoint privati (PE) creati
  4. Se non ci sono endpoint privati, crearne uno selezionando Crea un endpoint privato. Altrimenti, scegli un singolo PEC dall'elenco selezionandolo.

  5. L'amministratore SQL può approvare o rifiutare una PEC e opzionalmente aggiungere una breve risposta testuale.

  6. Dopo l'approvazione o il rifiuto, la lista riflette lo stato appropriato insieme al testo della risposta.

  7. Seleziona il nome dell'endpoint privato.

    Questa azione ti porta alla pagina di panoramica dell'endpoint privato. Seleziona il collegamento Interfacce di rete per visualizzare i dettagli dell'interfaccia di rete per la connessione endpoint privata.

    La pagina Interfaccia di rete mostra l'indirizzo IP privato per la connessione all'endpoint privato.

Important

Quando si aggiunge una connessione all'endpoint privato, il routing pubblico verso il server logico non è bloccato per impostazione predefinita. Nel riquadro Firewall e reti virtuali, l'impostazione Nega l'accesso alla rete pubblica non è selezionata per impostazione predefinita. Per disabilitare l’accesso alla rete pubblica, assicurarsi di selezionare Nega accesso alla rete pubblica.

Disabilitare l'accesso pubblico al server logico

Nel tuo server SQL di Azure Synapse Analytics, puoi disabilitare tutto l'accesso pubblico al server logico e consentire connessioni solo dalla rete virtuale.

Innanzitutto, assicurarsi che le connessioni dell'endpoint privato siano abilitate e configurate. Quindi, per disabilitare l'accesso pubblico al server logico:

  1. Andare alla pagina Rete del server logico.
  2. Selezionare la casella di spunta Nega accesso alla rete pubblica.

Testare la connettività al database SQL da una macchina virtuale di Azure nella stessa rete virtuale

In questo scenario, supponiamo di aver creato una Azure Virtual Machine (VM) che esegue una versione recente di Windows nella stessa rete virtuale dell'endpoint privato.

  1. Avviare una sessione di Desktop remoto (RDP) e connettersi alla macchina virtuale.

  2. Puoi quindi effettuare alcuni controlli di connettività di base per assicurarti che la VM si connetta al database SQL tramite l'endpoint privato utilizzando i seguenti strumenti:

Controlla la connettività usando Telnet

Telnet è una funzione di Windows che puoi usare per testare la connettività. A seconda della versione di Windows, potresti dover abilitare esplicitamente questa funzione.

Apri una finestra del prompt dei comandi dopo aver installato Telnet. Eseguire il comando Telnet e specificare l'indirizzo IP e l'endpoint privato del database nel database SQL.

telnet 10.9.0.4 1433

Quando Telnet si connette con successo, restituisce una schermata vuota nella finestra dei comandi.

Controlla la connettività usando PowerShell

Usa un comando PowerShell per controllare la connettività:

Test-NetConnection -computer myserver.database.windows.net -port 1433

Controlla la connettività usando PsPing

Usa PsPing come segue per verificare che l'endpoint privato stia ascoltando le connessioni sulla porta 1433.

Esegui PsPing fornendo il FQDN per il server SQL logico e la porta 1433:

PsPing.exe mysqldbsrvr.database.windows.net:1433

Questo esempio mostra l'output atteso:

TCP connect to 10.9.0.4:1433:
5 iterations (warmup 1) ping test:
Connecting to 10.9.0.4:1433 (warmup): from 10.6.0.4:49953: 2.83ms
Connecting to 10.9.0.4:1433: from 10.6.0.4:49954: 1.26ms
Connecting to 10.9.0.4:1433: from 10.6.0.4:49955: 1.98ms
Connecting to 10.9.0.4:1433: from 10.6.0.4:49956: 1.43ms
Connecting to 10.9.0.4:1433: from 10.6.0.4:49958: 2.28ms

L'output mostra che PsPing può pingare l'indirizzo IP privato associato all'endpoint privato.

Controlla la connettività usando Nmap

Nmap (Network Mapper) è uno strumento gratuito e open source per la scoperta di rete e l'audit della sicurezza. Per maggiori informazioni e il link di download, visita https://Nmap.org. Usa questo strumento per assicurarti che l'endpoint privato stia ascoltando le connessioni sulla porta 1433.

Esegui Nmap fornendo l'intervallo di indirizzi della subnet che ospita l'endpoint privato.

Nmap -n -sP 10.9.0.0/24

Questo esempio mostra l'output atteso:

Nmap scan report for 10.9.0.4
Host is up (0.00s latency).
Nmap done: 256 IP addresses (1 host up) scanned in 207.00 seconds

Il risultato mostra che un indirizzo IP è attivo, che corrisponde all'indirizzo IP dell'endpoint privato.

Controlla la connettività utilizzando SQL Server Management Studio (SSMS)

Usare il nome di dominio completo (FQDN) del server nelle stringhe di connessione per i client (<server>.database.windows.net). Qualsiasi tentativo di accesso effettuato direttamente all'indirizzo IP o tramite il collegamento privato FQDN (<server>.privatelink.database.windows.net) fallisce. Questo comportamento è voluto, poiché l'endpoint privato instrada il traffico verso il SQL Gateway nella regione. Devi specificare il FQDN corretto affinché gli accessi abbiano successo.

Segui i passaggi in Usa SSMS per connetterti al database SQL. Dopo esserti connesso tramite SSMS, la seguente query restituisce client_net_address che corrisponde all'indirizzo IP privato della VM Azure da cui ti stai collegando:

SELECT client_net_address
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;

Connettività in sede tramite peering privato

Quando ti connetti all'endpoint pubblico da macchine on-premise, devi aggiungere il tuo indirizzo IP al firewall basato su IP usando una regola firewall a livello di server. Questo modello è adatto per consentire l'accesso ai singoli computer per i carichi di lavoro di sviluppo o test, ma è difficile da gestire in un ambiente di produzione.

Utilizzando collegamento privato, puoi abilitare l'accesso cross-premises all'endpoint privato tramite ExpressRoute, peering privato o tunneling VPN. Puoi quindi disabilitare tutti gli accessi tramite l'endpoint pubblico senza usare il firewall basato su IP per consentire qualsiasi indirizzo IP.

I client possono connettersi all'endpoint privato dalla stessa rete virtuale, dalla stessa rete virtuale peered nella stessa regione, o tramite connessione da rete virtuale a rete virtuale tra regioni. Inoltre, i client possono connettersi da on-premises utilizzando ExpressRoute, peering privato o tunneling VPN. Il seguente diagramma semplificato illustra i casi d'uso comuni.

Inoltre, i servizi che non sono in esecuzione direttamente nella rete virtuale ma sono integrati con essa (ad esempio web app di App Service o Funzioni) possono ottenere la connettività privata al database.

Connettiti da una VM Azure in una rete virtuale peered

Configurare il peering della rete virtuale per stabilire la connettività al database SQL da una macchina virtuale di Azure in una rete virtuale connessa tramite peering.

Connettersi da una macchina virtuale di Azure a un ambiente di rete virtuale.

Configurare la connessione gateway VPN da rete virtuale a rete virtuale per stabilire la connettività a un database di SQL Database da una VM di Azure in una regione o in una sottoscrizione diversa.

Connettersi da un ambiente locale tramite VPN

Per stabilire la connettività da un ambiente on-premises, scegli e implementa una delle seguenti opzioni:

Considerare anche gli scenari di configurazione DNS, poiché l'FQDN del servizio può risolversi nell'indirizzo IP pubblico.

Connettiti da Azure Synapse Analytics ad Archiviazione di Azure usando PolyBase e l'istruzione COPY

Usa PolyBase e l'istruzione COPY per caricare i dati in Azure Synapse Analytics dagli account Archiviazione di Azure. Se l'account Archiviazione di Azure da cui carichi dati limita l'accesso solo a un insieme di subnet di rete virtuali usando Private Endpoint, Service Endpoint o firewall basati su IP, la connettività da PolyBase e l'istruzione COPY all'account si interrompono. Per abilitare scenari di importazione ed esportazione con Azure Synapse Analytics che si connette ad Archiviazione di Azure protetta da una rete virtuale, vedere Impatto dell'uso degli endpoint del servizio di rete virtuale con Archiviazione di Azure.

Prevenzione dell'esfiltrazione dei dati

L'esfiltrazione dei dati avviene quando un utente, come un amministratore di database, estrae dati da un sistema e li sposta in un altro luogo o sistema esterno all'organizzazione. Ad esempio, l'utente sposta i dati in un account di archiviazione di proprietà non di Microsoft.

Si consideri uno scenario in cui un utente esegue SQL Server Management Studio (SSMS) all'interno di una macchina virtuale di Azure che si connette a un database nel database SQL. Questo database si trova nel data center dell'area Stati Uniti occidentali. Il seguente esempio mostra come limitare l'accesso con endpoint pubblici utilizzando controlli di accesso di rete.

  1. Disabilita tutto il traffico dei servizi Azure verso il database SQL tramite l'endpoint pubblico impostando Allow Azure Services su OFF. Assicurati che le regole firewall a livello di server e database non permettano indirizzi IP. Per maggiori informazioni, consulta Azure Synapse Analytics network access controls.
  2. Consentire il traffico solo all'indirizzo IP privato della VM. Per maggiori informazioni, consulta le regole del firewall di rete virtuale.
  3. Sulla VM Azure, restringi l'ambito delle connessioni in uscita utilizzando Network Security Groups (NSG) e Service Tag come segue:
    • Specificare una regola NSG per consentire il traffico per Service Tag = SQL.WestUs - permettendo solo la connessione al database SQL nell'Ovest degli Stati Uniti.
    • Specificare una regola NSG con priorità superiore per negare il traffico per Service Tag = Sql - negare le connessioni al database SQL in tutte le regioni.

Alla fine di questa configurazione, la VM Azure può connettersi solo a una risorsa nella regione West USA. Tuttavia, la connettività non è limitata a un singolo database. La VM può comunque connettersi a qualsiasi database nell'area geografica West US, inclusi i database che non fanno parte dell'abbonamento. Anche se nell'scenario precedente si riduce l'ambito dell'esfiltrazione dati a una regione specifica, non l'hai eliminata del tutto.

Utilizzando collegamento privato, puoi configurare controlli di accesso alla rete come NSG per limitare l'accesso all'endpoint privato. Puoi mappare singole risorse PaaS Azure a endpoint privati specifici. Un insider malevolto può accedere solo alla risorsa PaaS mappata e nessun'altra risorsa.