Esercitazione: Come accedere a SQL Server locale dalla rete virtuale gestita da Data Factory tramite endpoint privato

Questa esercitazione illustra i passaggi per l'uso della portale di Azure per configurare collegamento privato Servizio e accedere a SQL Server locale da una rete virtuale gestita usando un endpoint privato. L'uso di una rete virtuale gestita garantisce che il traffico da e verso l'origine SQL locale passerà attraverso il proprio endpoint privato, garantendo così l'esposizione al cloud pubblico con un livello aggiuntivo di sicurezza e isolamento. Le risorse necessarie indicate di seguito sono necessarie per supportare lo scenario.

Nota

La soluzione presentata in questo articolo descrive la connettività di SQL Server, ma è possibile usare un approccio simile per connettersi ed eseguire query su altri connettori locali disponibili supportati in Azure Data Factory.

Screenshot che mostra il modello di accesso di SQL Server.

Prerequisiti

  • Sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
  • Rete virtuale. Se non si dispone di un Rete virtuale, crearne uno seguendo Crea Rete virtuale.
  • Da rete virtuale a rete locale. Creare una connessione tra rete virtuale e rete locale usando ExpressRoute o VPN. Se si preferisce usare una macchina virtuale cloud in una rete privata, è possibile farlo anche. È sufficiente creare una rete virtuale per le macchine virtuali cloud e un collegamento privato alla rete virtuale e accedervi come se fossero macchine locali nella rete privata anche se sono ospitate nel cloud.
  • Data Factory con rete virtuale gestita abilitata. Se non si dispone di una data factory o di una rete virtuale gestita non è abilitata, crearne una seguendo Create Data Factory with Managed VNet (Crea data factory con rete virtuale gestita).

Creare subnet per le risorse

Usare il portale per creare subnet nella rete virtuale.

Subnet Descrizione
be-subnet subnet per i server back-end
fe-subnet subnet per il servizio di bilanciamento del carico interno standard
pls-subnet subnet per il servizio collegamento privato

Screenshot che mostra le subnet.

Creare un'istanza di Load Balancer Standard

Usare il portale per creare un servizio Load Balancer Standard interno.

  1. Sul lato superiore sinistro della schermata selezionare Crea una risorsa Bilanciamento > del carico di rete>.

  2. Nella scheda Informazioni di base della pagina Crea servizio di bilanciamento del carico immettere o selezionare le informazioni seguenti:

    Impostazione Valore
    Subscription Selezionare la propria sottoscrizione.
    Resource group Selezionare il gruppo di risorse.
    Nome Immettere myLoadBalancer.
    Area Selezionare Stati Uniti orientali.
    Type Selezionare Interno.
    SKU Selezionare Standard.
    Rete virtuale Selezionare la rete virtuale.
    Subnet Selezionare fe-subnet creata nel passaggio precedente.
    Assegnazione indirizzi IP Selezionare Dinamico.
    Zona di disponibilità Selezionare Con ridondanza della zona.
  3. Accettare i valori predefiniti per le impostazioni rimanenti e quindi selezionare Rivedi e crea.

  4. Nella scheda Rivedi e crea selezionare Crea.

    Screenshot che mostra il passaggio per creare un servizio di bilanciamento del carico standard.

Creare risorse di bilanciamento del carico

Creare un pool back-end

Un pool di indirizzi back-end contiene gli indirizzi IP delle schede di interfaccia di rete virtuale connesse al bilanciamento del carico.

Creare il pool di indirizzi back-end myBackendPool per includere le macchine virtuali per il bilanciamento del carico del traffico Internet.

  1. Selezionare Tutti i servizi nel menu a sinistra, quindi Tutte le risorse e infine selezionare myLoadBalancer nell'elenco di risorse.
  2. In Impostazioni selezionare Pool back-end e quindi selezionare Aggiungi.
  3. Nella pagina Aggiungi pool back-end digitare myBackEndPool come nome per il pool back-end e quindi selezionare Aggiungi.

Creare un probe di integrità

Il servizio di bilanciamento del carico monitora lo stato dell'app con un probe di integrità.

Il probe di integrità aggiunge o rimuove le macchine virtuali nel servizio di bilanciamento del carico in base alla rispettiva risposta ai controlli di integrità.

Creare un probe di integrità denominato myHealthProbe per monitorare l'integrità delle macchine virtuali.

  1. Selezionare Tutti i servizi nel menu a sinistra, quindi Tutte le risorse e infine selezionare myLoadBalancer nell'elenco di risorse.

  2. In Impostazioni selezionare Probe integrità e quindi selezionare Aggiungi.

    Impostazione valore
    Nome Immettere myHealthProbe.
    Protocollo Selezionare TCP.
    Port Immettere 22.
    Intervallo Immettere 15 in Intervallo come numero di secondi tra i tentativi del probe.
    Soglia non integra Selezionare 2 per Soglia di non integrità come numero di errori di probe consecutivi che devono verificarsi prima che una macchina virtuale venga considerata non integra.
  3. Lasciare le impostazioni predefinite rimanenti e selezionare OK.

Creare una regola di bilanciamento del carico

Una regola di bilanciamento del carico consente di definire come il traffico verrà distribuito alle VM. È possibile definire la configurazione IP front-end per il traffico in ingresso e il pool IP back-end che riceve il traffico. La porta di origine e quella di destinazione vengono definite nella regola.

In questa sezione verrà creata una regola di bilanciamento del carico:

  1. Selezionare Tutti i servizi nel menu a sinistra, quindi Tutte le risorse e infine selezionare myLoadBalancer nell'elenco di risorse.

  2. In Impostazioni selezionare Regole di bilanciamento del carico e quindi selezionare Aggiungi.

  3. Usare questi valori per configurare la regola di bilanciamento del carico:

    Impostazione valore
    Nome Immettere myRule.
    Versione IP Selezionare IPv4.
    Indirizzo IP front-end IP Selezionare LoadBalancerFrontEnd.
    Protocollo Selezionare TCP.
    Port Immettere 1433.
    Porta back-end Immettere 1433.
    Pool back-end Selezionare myBackendPool.
    Probe di integrità Selezionare myHealthProbe.
    Timeout di inattività (minuti) Spostare il dispositivo di scorrimento su 15 minuti.
    Reimpostazione TCP selezionare Disabilitato.
  4. Accettare tutte le impostazioni predefinite e quindi selezionare OK.

In questa sezione verrà creato un servizio Collegamento privato dietro un'istanza di Load Balancer Standard.

  1. Nell'angolo in alto a sinistra della pagina nel portale di Azure selezionare Crea una risorsa.

  2. Cercare Collegamento privato nella casella Cerca nel Marketplace.

  3. Seleziona Crea.

  4. In Panoramica, nella pagina Centro collegamento privato, selezionare il pulsante blu Crea servizio Collegamento privato.

  5. Nella scheda Informazioni di base della pagina Crea servizio Collegamento privato immettere o selezionare le informazioni seguenti:

    Impostazione Valore
    Dettagli di progetto
    Subscription Selezionare la propria sottoscrizione.
    Gruppo di risorse Selezionare il gruppo di risorse.
    Dettagli istanza
    Nome Immettere myPrivateLinkService.
    Area Selezionare Stati Uniti orientali.
  6. Selezionare la scheda Impostazioni in uscita o selezionare Avanti: Impostazioni in uscita nella parte inferiore della pagina.

  7. Nella scheda Informazioni traffico in uscita immettere o selezionare le informazioni seguenti:

    Impostazione Valore
    Bilanciamento del carico Selezionare myLoadBalancer.
    Indirizzo IP front-end del servizio di bilanciamento del carico Selezionare LoadBalancerFrontEnd.
    Subnet NAT di origine Selezionare pls-subnet.
    Abilita proxy TCP V2 Lasciare l'impostazione predefinita No.
    Impostazioni dell'indirizzo IP privato
    Lasciare le impostazioni predefinite.
  8. Selezionare la scheda Sicurezza di accesso o selezionare Avanti: Sicurezza di accesso nella parte inferiore della pagina.

  9. Nella scheda Sicurezza di accesso lasciare l'impostazione predefinita Solo controllo degli accessi in base al ruolo.

  10. Selezionare la scheda Tag o selezionare Avanti: Tag nella parte inferiore della pagina.

  11. Selezionare la scheda Rivedi e crea oppure selezionare Avanti: Rivedi e crea nella parte inferiore della pagina.

  12. Nella scheda Rivedi e crea selezionare Crea.

Creare i server back-end

  1. Nell'angolo in alto a sinistra del portale selezionare Crea una macchina virtuale di calcolo > delle risorse>.

  2. In Crea macchina virtuale digitare o selezionare i valori nella scheda Nozioni di base:

    Impostazione Valore
    Dettagli di progetto
    Abbonamento Seleziona la tua sottoscrizione di Azure.
    Gruppo di risorse Selezionare il gruppo di risorse.
    Dettagli istanza
    Virtual machine name Immettere myVM1.
    Area Selezionare Stati Uniti orientali.
    Opzioni di disponibilità Selezionare Zone di disponibilità.
    Zona di disponibilità Selezionare 1.
    Immagine Selezionare Ubuntu Server 22.04 LTS.
    Istanza Spot di Azure Selezionare No.
    Dimensione Scegliere Dimensioni macchina virtuale o accettare l'impostazione predefinita.
    Account amministratore
    Username Immettere un nome utente.
    Origine chiave pubblica SSH Generare una nuova coppia di chiavi.
    Nome della coppia di chiavi mySSHKey.
    Regole porta in ingresso
    Porte in ingresso pubbliche None
  3. Selezionare la scheda Rete oppure selezionare Avanti: Dischi e quindi Avanti: Rete.

  4. Nella scheda Rete selezionare o immettere:

    Impostazione Valore
    Interfaccia di rete
    Rete virtuale Selezionare la rete virtuale.
    Subnet be-subnet.
    IP pubblico Selezionare Nessuno.
    Gruppo di sicurezza di rete della scheda di interfaccia di rete Selezionare Nessuno.
    Bilanciamento del carico
    Associare questa macchina virtuale a una soluzione di bilanciamento del carico esistente? Selezionare .
    Impostazioni di bilanciamento del carico
    Opzioni di bilanciamento del carico Selezionare Bilanciamento del carico di Azure.
    Selezionare un servizio di bilanciamento del carico Selezionare myLoadBalancer.
    Selezionare un pool back-end Selezionare myBackendPool.
  5. Selezionare Rivedi e crea.

  6. Rivedere le impostazioni e quindi selezionare Crea.

  7. È possibile ripetere il passaggio da 1 a 6 per avere più di 1 macchina virtuale del server back-end per la disponibilità elevata.

Creazione di una regola di inoltro all'endpoint

  1. Accedere e copiare gli script ip_fwd.sh nelle macchine virtuali del server back-end.

  2. Eseguire lo script con le opzioni seguenti:

    sudo ./ip_fwd.sh -i eth0 -f 1433 -a <FQDN/IP> -b 1433
    

    Impostare il segnaposto <FQDN/IP> è l'indirizzo IP di SQL Server di destinazione.

    Nota

    FQDN non funziona per SQL Server locale, a meno che non si aggiunga un record nella zona DNS di Azure.

  3. Eseguire il comando seguente e controllare le tabelle iptable nelle macchine virtuali del server back-end. È possibile visualizzare un record nelle tabelle iptable con l'indirizzo IP di destinazione.

    sudo iptables -t nat -v -L PREROUTING -n --line-number**
    

    Screenshot che mostra il record del comando.

    Nota

    Se sono presenti più origini dati o SQL Server, è necessario definire più regole di bilanciamento del carico e record di tabella IP con porte diverse. In caso contrario, ci sarà qualche conflitto. ad esempio:

    Porta nella regola di bilanciamento del carico Porta back-end nella regola di bilanciamento del carico Comando eseguito nella macchina virtuale del server back-end
    SQL Server 1 1433 1433 sudo ./ip_fwd.sh -i eth0 -f 1433 -a <FQDN/IP> -b 1433
    SQL Server 2 1434 1434 sudo ./ip_fwd.sh -i eth0 -f 1434 -a <FQDN/IP> -b 1433

    Nota

    È importante tenere presente che la configurazione all'interno della macchina virtuale non è permanente. Ciò significa che ogni volta che la macchina virtuale viene riavviata, sarà necessaria una riconfigurazione.

  1. Selezionare Tutti i servizi nel menu a sinistra, selezionare Tutte le risorse e quindi selezionare la data factory nell'elenco delle risorse.

  2. Selezionare Crea e monitora per avviare l'interfaccia utente di Data Factory in una scheda separata.

  3. Passare alla scheda Gestisci e quindi passare alla sezione Endpoint privati gestiti .

  4. Selezionare + Nuovo in Managed private endpoints (Endpoint privati gestiti).

  5. Selezionare il riquadro collegamento privato Servizio dall'elenco e selezionare Continua.

  6. Immettere il nome dell'endpoint privato e selezionare myPrivateLinkService nell'elenco dei servizi di collegamento privato.

  7. Aggiungere l'oggetto <FQDN> di SQL Server locale di destinazione.

    Screenshot che mostra le impostazioni dell'endpoint privato.

    Nota

    Quando si distribuisce SQL Server in una macchina virtuale all'interno di una rete virtuale, è essenziale migliorare il nome di dominio completo aggiungendo privatelink. In caso contrario, verrà in conflitto con altri record nell'impostazione DNS. Ad esempio, è possibile modificare semplicemente il nome di dominio completo di SQL Server da sqlserver.westus.cloudapp.azure.net a sqlserver.privatelink.westus.cloudapp.azure.net.

  8. Creare un endpoint privato.

Creare un servizio collegato e testare la connessione

  1. Passare alla scheda Gestisci e quindi passare alla sezione Servizi collegati.

  2. Selezionare + Nuovo in Servizio collegato.

  3. Selezionare il riquadro di SQL Server dall'elenco e selezionare Continua.

    Screenshot che mostra la pagina di creazione del servizio collegato.

  4. Abilitare la creazione interattiva.

    Screenshot che mostra come abilitare la creazione interattiva.

  5. Immettere il nome di dominio completo dell'istanza locale di SQL Server, il nome utente e la password.

  6. Fare quindi clic su Test connessione.

    Screenshot che mostra la pagina di creazione del servizio collegato di SQL Server.

    Nota

    Se si dispone di più di un'istanza di SQL Server ed è necessario definire più regole di bilanciamento del carico e record di tabella IP con porte diverse, assicurarsi di aggiungere in modo esplicito il nome della porta dopo il nome di dominio completo quando si modifica il servizio collegato. La macchina virtuale NAT gestirà la conversione delle porte. Se non è specificato in modo esplicito, la connessione verrà sempre timeout.

Risoluzione dei problemi

Passare alla macchina virtuale del server back-end, verificare che telnet funzioni: telnet< FQDN> 1433.

Passare all'esercitazione seguente per informazioni sull'accesso a Microsoft Istanza gestita di SQL di Azure dalla rete virtuale gestita di Data Factory usando l'endpoint privato: