Esercitazione: Connettersi a un server SQL di Azure usando un endpoint privato di Azure con l'interfaccia della riga di comando di Azure
Un endpoint privato di Azure è il blocco costitutivo fondamentale del collegamento privato in Azure. Consente alle risorse di Azure, come le macchine virtuali (VM), di comunicare privatamente con le risorse collegamento privato.
In questa esercitazione apprenderai a:
- Creare una rete virtuale e un host bastion.
- Creare una macchina virtuale.
- Creare un server SQL di Azure e un endpoint privato.
- Testare la connettività con l'endpoint privato del server SQL.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Accedere al portale di Azure e verificare che la sottoscrizione sia attiva eseguendo
az login
. - Controllare la versione dell'interfaccia della riga di comando di Azure in una finestra terminale o di comando eseguendo
az --version
. Per la versione più recente, vedere le ultime note sulla versione.- Se non si dispone della versione più recente, aggiornare l'installazione seguendo la guida all'installazione per il sistema operativo o la piattaforma in uso.
Creare un gruppo di risorse
Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite.
Come prima cosa creare con az group create un gruppo di risorse:
- Denominato CreateSQLEndpointTutorial-rg.
- Nella posizione eastus.
az group create \
--name CreateSQLEndpointTutorial-rg \
--location eastus
Creare una rete virtuale e un host bastion
In questa sezione si creeranno una rete virtuale, una subnet e un host bastion.
L'host bastion verrà usato per connettersi in modo sicuro alla macchina virtuale per testare l'endpoint privato.
Creare una rete virtuale con az network vnet create
- Denominata myVNet.
- Prefisso indirizzo 10.0.0.0/16.
- Con una subnet denominata myBackendSubnet.
- Prefisso subnet 10.0.0.0/24.
- Nel gruppo di risorse CreateSQLEndpointTutorial-rg.
- Posizione eastus.
az network vnet create \
--resource-group CreateSQLEndpointTutorial-rg\
--location eastus \
--name myVNet \
--address-prefixes 10.0.0.0/16 \
--subnet-name myBackendSubnet \
--subnet-prefixes 10.0.0.0/24
Aggiornare la subnet per disabilitare i criteri di rete per l'endpoint privato con az network vnet subnet update:
az network vnet subnet update \
--name myBackendSubnet \
--resource-group CreateSQLEndpointTutorial-rg \
--vnet-name myVNet \
--disable-private-endpoint-network-policies true
Usare az network public-ip create per creare un indirizzo IP pubblico per l'host bastion:
- Creare un indirizzo IP pubblico ridondante di zona standard denominato myBastionIP.
- In CreateSQLEndpointTutorial-rg.
az network public-ip create \
--resource-group CreateSQLEndpointTutorial-rg \
--name myBastionIP \
--sku Standard
Usare az network vnet subnet create per creare una subnet Bastion:
- Denominata AzureBastionSubnet.
- Prefisso indirizzo 10.0.1.0/24.
- Nella rete virtuale myVNet.
- Nel gruppo di risorse CreateSQLEndpointTutorial-rg.
az network vnet subnet create \
--resource-group CreateSQLEndpointTutorial-rg \
--name AzureBastionSubnet \
--vnet-name myVNet \
--address-prefixes 10.0.1.0/24
Usare az network bastion create per creare un host bastion:
- myBastionHost denominato.
- In CreateSQLEndpointTutorial-rg.
- Associato all'IP pubblico myBastionIP
- Associato alla rete virtuale myVNet
- Nella località eastus
az network bastion create \
--resource-group CreateSQLEndpointTutorial-rg \
--name myBastionHost \
--public-ip-address myBastionIP \
--vnet-name myVNet \
--location eastus
La distribuzione dell'host Azure Bastion può richiedere qualche minuto.
Creare una macchina virtuale di test
In questa sezione si creerà una macchina virtuale che verrà usata per testare l'endpoint privato.
Creare una VM con il comando az vm create. Quando richiesto, specificare la password da usare come credenziali per la macchina virtuale:
- Denominata myVM.
- In CreateSQLEndpointTutorial-rg.
- Nella rete myVNet.
- Nella subnet myBackendSubnet.
- Immagine del server Win2019Datacenter.
az vm create \
--resource-group CreateSQLEndpointTutorial-rg \
--name myVM \
--image Win2019Datacenter \
--public-ip-address "" \
--vnet-name myVNet \
--subnet myBackendSubnet \
--admin-username azureuser
Nota
Azure fornisce un IP di accesso in uscita predefinito per le macchine virtuali a cui non è stato assegnato un indirizzo IP pubblico o che si trovano nel pool back-end di un servizio del bilanciamento del carico di base di Azure. Il meccanismo dell'IP di accesso in uscita predefinito fornisce un IP in uscita non configurabile.
L'IP di accesso in uscita predefinito è disabilitato quando si verifica uno degli eventi seguenti:
- Alla macchina virtuale viene assegnato un indirizzo IP pubblico.
- La macchina virtuale è posizionata nel pool back-end di un servizio di bilanciamento del carico standard, con o senza regole in uscita.
- Una risorsa gateway NAT di Azure viene assegnata alla subnet della macchina virtuale.
Le macchine virtuali create usando set di scalabilità di macchine virtuali in modalità di orchestrazione flessibile non hanno l'accesso in uscita predefinito.
Per altre informazioni sulle connessioni in uscita in Azure, vedere Accesso in uscita predefinito in Azure e Uso di Source Network Address Translation (SNAT) per le connessioni in uscita.
Creare un server SQL di Azure
In questa sezione si creerà un server e un database SQL.
Usare AZ SQL Server create per creare un server SQL:
- Sostituire <sql-server-name> con il nome univoco del server.
- Sostituire <your-password> con la password.
- In CreateSQLEndpointTutorial-rg.
- Nell'area eastus.
az sql server create \
--name <sql-server-name> \
--resource-group CreateSQLEndpointTutorial-rg \
--location eastus \
--admin-user sqladmin \
--admin-password <your-password>
Usare az sql db create per creare un database:
- Denominato myDataBase.
- In CreateSQLEndpointTutorial-rg.
- Sostituire <sql-server-name> con il nome univoco del server.
az sql db create \
--resource-group CreateSQLEndpointTutorial-rg \
--server <sql-server-name> \
--name myDataBase \
--sample-name AdventureWorksLT
Creare un endpoint privato
In questa sezione si creerà l'endpoint privato.
Usare az sql server list per inserire l'ID risorsa del server SQL in una variabile della shell.
Usare az network private-endpoint create per creare l'endpoint e la connessione:
- Denominato myPrivateEndpoint.
- Nel gruppo di risorse CreateSQLEndpointTutorial-rg.
- Nella rete virtuale myVNet.
- Nella subnet myBackendSubnet.
- Connessione denominata myConnection.
id=$(az sql server list \
--resource-group CreateSQLEndpointTutorial-rg \
--query '[].[id]' \
--output tsv)
az network private-endpoint create \
--name myPrivateEndpoint \
--resource-group CreateSQLEndpointTutorial-rg \
--vnet-name myVNet --subnet myBackendSubnet \
--private-connection-resource-id $id \
--group-ids sqlServer \
--connection-name myConnection
Configurare la zona DNS privato
In questa sezione si creerà e si configurerà la zona DNS privata con il comando az network private-dns zone create.
Si userà az network private-dns link vnet create per creare il collegamento della rete virtuale alla zona DNS.
Si creerà un gruppo di zone DNS con az network private-endpoint dns-zone-group create.
- Zona denominata privatelink.database.windows.net
- Nella rete virtuale myVNet.
- Nel gruppo di risorse CreateSQLEndpointTutorial-rg.
- Collegamento a DNS denominato myDNSLink.
- Associato a myPrivateEndpoint.
- Gruppo di zone denominato MyZoneGroup.
az network private-dns zone create \
--resource-group CreateSQLEndpointTutorial-rg \
--name "privatelink.database.windows.net"
az network private-dns link vnet create \
--resource-group CreateSQLEndpointTutorial-rg \
--zone-name "privatelink.database.windows.net" \
--name MyDNSLink \
--virtual-network myVNet \
--registration-enabled false
az network private-endpoint dns-zone-group create \
--resource-group CreateSQLEndpointTutorial-rg \
--endpoint-name myPrivateEndpoint \
--name MyZoneGroup \
--private-dns-zone "privatelink.database.windows.net" \
--zone-name sql
Testare la connettività con l'endpoint privato
In questa sezione si userà la macchina virtuale creata nel passaggio precedente per connettersi al server SQL tramite l'endpoint privato.
Accedere al portale di Azure.
Selezionare Gruppi di risorse nel riquadro di spostamento sinistro.
Selezionare CreateSQLEndpointTutorial-rg.
Selezionare myVM.
Nella pagina di panoramica di myVM selezionare Connetti e quindi Bastion.
Selezionare il pulsante blu Usa Bastion.
Immettere il nome utente e la password specificati durante la creazione della macchina virtuale.
Aprire Windows PowerShell nel server dopo la connessione.
Immetti
nslookup <sqlserver-name>.database.windows.net
. Sostituire <sqlserver-name> con il nome del server SQL creato nei passaggi precedenti. Si riceverà un messaggio simile al seguente:Server: UnKnown Address: 168.63.129.16 Non-authoritative answer: Name: mysqlserver8675.privatelink.database.windows.net Address: 10.0.0.5 Aliases: mysqlserver8675.database.windows.net
Per il nome del server SQL viene restituito l'indirizzo IP privato 10.0.0.5. Questo indirizzo si trova nella subnet della rete virtuale creata in precedenza.
Installare SQL Server Management Studio in myVM.
Aprire SQL Server Management Studio.
In Connetti a server immettere o selezionare queste informazioni:
Impostazione Valore Tipo di server Selezionare Motore di database. Nome server Immettere <sql-server-name.database.windows.net> Autenticazione Selezionare Autenticazione di SQL Server. Nome utente Immettere il nome utente specificato durante la creazione del server Password Immettere la password specificata durante la creazione del server Memorizza password Selezionare Sì. Selezionare Connetti.
Esplorare i database dal menu a sinistra.
(Facoltativo) Creare o eseguire query sulle informazioni di mysqldatabase.
Chiudere la connessione bastion a myVM.
Pulire le risorse
Quando non si ha più bisogno dell'endpoint privato, del server SQL e della macchina virtuale, rimuovere il gruppo di risorse e tutte le risorse che contiene:
az group delete \
--name CreateSQLEndpointTutorial-rg
Passaggi successivi
In questa esercitazione sono stati creati i componenti seguenti:
- Una rete virtuale e un host bastion.
- Una macchina virtuale.
- Un server SQL con un endpoint privato.
La macchina virtuale è stata usata per testare la connettività in modo sicuro al server SQL tramite l'endpoint privato.
Come passaggio successivo, è anche possibile essere interessati all'app Web con connettività privata all'architettura del database SQL di Azure, che connette un'applicazione Web all'esterno della rete virtuale all'endpoint privato di un database.