Condividi tramite


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.

Diagramma delle risorse create nella guida introduttiva all'endpoint 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

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.

  1. Accedere al portale di Azure.

  2. Selezionare Gruppi di risorse nel riquadro di spostamento sinistro.

  3. Selezionare CreateSQLEndpointTutorial-rg.

  4. Selezionare myVM.

  5. Nella pagina di panoramica di myVM selezionare Connetti e quindi Bastion.

  6. Selezionare il pulsante blu Usa Bastion.

  7. Immettere il nome utente e la password specificati durante la creazione della macchina virtuale.

  8. Aprire Windows PowerShell nel server dopo la connessione.

  9. 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.

  10. Installare SQL Server Management Studio in myVM.

  11. Aprire SQL Server Management Studio.

  12. 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 .
  13. Selezionare Connetti.

  14. Esplorare i database dal menu a sinistra.

  15. (Facoltativo) Creare o eseguire query sulle informazioni di mysqldatabase.

  16. 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.