Creare e gestire collegamento privato per Database di Azure per PostgreSQL - Server singolo tramite l'interfaccia della riga di comando

SI APPLICA A: Database di Azure per PostgreSQL - Server singolo

Importante

Database di Azure per PostgreSQL - Server singolo si trova nel percorso di ritiro. È consigliabile eseguire l'aggiornamento a Database di Azure per PostgreSQL - Server flessibile. Per altre informazioni sulla migrazione a Database di Azure per PostgreSQL - Server flessibile, vedere What's happening to Database di Azure per PostgreSQL Single Server?.

Un endpoint privato è il blocco predefinito fondamentale per il collegamento privato in Azure. Consente alle risorse di Azure, come le macchine virtuali (VM), di comunicare privatamente con risorse Collegamento privato. Questo articolo illustra come usare l'interfaccia della riga di comando di Azure per creare una macchina virtuale in un Rete virtuale di Azure e un server singolo Database di Azure per PostgreSQL con un endpoint privato di Azure.

Nota

La funzionalità di collegamento privato è disponibile solo per i server Database di Azure per PostgreSQL nei piani tariffari Per utilizzo generico o Ottimizzato per la memoria. Verificare che il server di database si trova in uno di questi piani tariffari.

Prerequisiti

Per proseguire con questa guida, si richiedono:

Azure Cloud Shell

Azure Cloud Shell è un ambiente di shell interattivo ospitato in Azure e usato tramite il browser. È possibile usare Bash o PowerShell con Cloud Shell per usare i servizi di Azure. È possibile usare i comandi preinstallati di Cloud Shell per eseguire il codice in questo articolo, senza dover installare alcun elemento nell'ambiente locale.

Per avviare Azure Cloud Shell:

Opzione Esempio/Collegamento
Selezionare Prova nell'angolo superiore destro di un blocco di codice o di comando. Quando si seleziona Prova, il codice o il comando non viene copiato automaticamente in Cloud Shell. Screenshot che mostra un esempio di Prova per Azure Cloud Shell.
Passare a https://shell.azure.com o selezionare il pulsante Avvia Cloud Shell per aprire Cloud Shell nel browser. Pulsante per avviare Azure Cloud Shell.
Selezionare il pulsante Cloud Shell nella barra dei menu nell'angolo in alto a destra del portale di Azure. Screenshot che mostra il pulsante Cloud Shell nel portale di Azure

Per usare Azure Cloud Shell:

  1. Avviare Cloud Shell.

  2. Selezionare il pulsante Copia in un blocco di codice (o in un blocco di comando) per copiare il codice o il comando.

  3. Incollare il codice o il comando nella sessione di Cloud Shell selezionando CTRL+MAIUSC+V in Windows e Linux o selezionando CMD+MAIUSC+V in macOS.

  4. Selezionare INVIO per eseguire il codice o il comando.

Se si decide di installare e usare l'interfaccia della riga di comando di Azure in locale, per questa guida introduttiva è necessario usare l'interfaccia della riga di comando di Azure versione 2.0.28 o successiva. Per trovare la versione installata, eseguire az --version. Per informazioni sull'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.

Creare un gruppo di risorse

Per poter creare le risorse, è prima necessario creare un gruppo di risorse in cui ospitare la rete virtuale. Come prima cosa creare un gruppo di risorse con az group create. Questo esempio crea un gruppo di risorse denominato myResourceGroup nella località westeurope :

az group create --name myResourceGroup --location westeurope

Creare una rete virtuale

Creare una rete virtuale con il comando az network vnet create. Questo esempio crea una rete virtuale predefinita denominata myVirtualNetwork con una subnet denominata mySubnet:

az network vnet create \
--name myVirtualNetwork \
--resource-group myResourceGroup \
--subnet-name mySubnet

Disabilitare i criteri per gli endpoint privati della subnet

Azure distribuisce le risorse in una subnet all'interno di una rete virtuale, quindi è necessario creare o aggiornare la subnet per disabilitare i criteri di rete degli endpoint privati. Aggiornare una configurazione di subnet denominata mySubnet con az network vnet subnet update:

az network vnet subnet update \
--name mySubnet \
--resource-group myResourceGroup \
--vnet-name myVirtualNetwork \
--disable-private-endpoint-network-policies true

Creare la macchina virtuale

Creare una VM con il comando az vm create. Quando richiesto, specificare la password da usare come credenziali di accesso per la macchina virtuale. Questo esempio crea una macchina virtuale denominata myVM:

az vm create \
  --resource-group myResourceGroup \
  --name myVm \
  --image Win2019Datacenter

Prendere nota dell'indirizzo IP pubblico della macchina virtuale. Questo indirizzo verrà usato per connettersi alla VM da Internet nel passaggio successivo.

Creare un Database di Azure per PostgreSQL - Server singolo

Creare un Database di Azure per PostgreSQL con il comando az postgres server create. Tenere presente che il nome del server PostgreSQL deve essere univoco in Azure, quindi sostituire il valore segnaposto con i propri valori univoci usati in precedenza:

# Create a server in the resource group

[!INCLUDE [applies-to-postgresql-single-server](../includes/applies-to-postgresql-single-server.md)]

[!INCLUDE [azure-database-for-postgresql-single-server-deprecation](../includes/azure-database-for-postgresql-single-server-deprecation.md)]


az postgres server create \
--name mydemoserver \
--resource-group myresourcegroup \
--location westeurope \
--admin-user mylogin \
--admin-password <server_admin_password> \
--sku-name GP_Gen5_2

Creare l'endpoint privato

Creare un endpoint privato per il server PostgreSQL nel Rete virtuale:

az network private-endpoint create \  
    --name myPrivateEndpoint \  
    --resource-group myResourceGroup \  
    --vnet-name myVirtualNetwork  \  
    --subnet mySubnet \  
    --private-connection-resource-id $(az resource show -g myResourcegroup -n mydemoserver --resource-type "Microsoft.DBforPostgreSQL/servers" --query "id" -o tsv) \    
    --group-id postgresqlServer \  
    --connection-name myConnection  

Configurare la zona DNS privato

Creare un dominio del server DNS privato zone per PostgreSQL e creare un collegamento di associazione con il Rete virtuale.

az network private-dns zone create --resource-group myResourceGroup \ 
   --name  "privatelink.postgres.database.azure.com" 
az network private-dns link vnet create --resource-group myResourceGroup \ 
   --zone-name  "privatelink.postgres.database.azure.com"\ 
   --name MyDNSLink \ 
   --virtual-network myVirtualNetwork \ 
   --registration-enabled false

#Query for the network interface ID  

networkInterfaceId=$(az network private-endpoint show --name myPrivateEndpoint --resource-group myResourceGroup --query 'networkInterfaces[0].id' -o tsv)


az resource show --ids $networkInterfaceId --api-version 2019-04-01 -o json
# Copy the content for privateIPAddress and FQDN matching the Azure database for PostgreSQL name

[!INCLUDE [applies-to-postgresql-single-server](../includes/applies-to-postgresql-single-server.md)]

[!INCLUDE [azure-database-for-postgresql-single-server-deprecation](../includes/azure-database-for-postgresql-single-server-deprecation.md)]


#Create DNS records 

az network private-dns record-set a create --name myserver --zone-name privatelink.postgres.database.azure.com --resource-group myResourceGroup  
az network private-dns record-set a add-record --record-set-name myserver --zone-name privatelink.postgres.database.azure.com --resource-group myResourceGroup -a <Private IP Address>

Nota

L'FQDN nell'impostazione DNS del cliente non si risolve nell'indirizzo IP privato configurato. Sarà necessario configurare una zona DNS per il nome di dominio completo configurato, come illustrato di seguito.

Nota

In alcuni casi, Database di Azure per PostgreSQL e la subnet della rete virtuale sono in sottoscrizioni diverse. In questi casi è necessario garantire le configurazioni seguenti:

  • Assicurarsi che entrambe le sottoscrizioni dispongano del provider di risorse Microsoft.DBforPostgreSQL registrato. Per altre informazioni, vedere Provider di risorse.

Connettersi a una VM da Internet

Connettersi alla macchina virtuale myVm da Internet come indicato di seguito:

  1. Nella barra di ricerca del portale immettere myVm.

  2. Scegliere il pulsante Connetti. Dopo aver selezionato il pulsante Connetti viene aperta la finestra Connetti alla macchina virtuale.

  3. Selezionare Scarica file RDP. Azure crea e scarica nel computer un file Remote Desktop Protocol con estensione .rdp.

  4. Aprire il file downloaded.rdp.

    1. Quando richiesto, selezionare Connetti.

    2. Immettere il nome utente e la password specificati al momento della creazione della macchina virtuale.

      Nota

      Potrebbe essere necessario selezionare Altre opzioni>Usa un altro account per specificare le credenziali immesse al momento della creazione della macchina virtuale.

  5. Seleziona OK.

  6. Durante il processo di accesso, è possibile che venga visualizzato un avviso relativo al certificato. Se si riceve un avviso relativo al certificato, selezionare oppure Continua.

  7. Quando viene visualizzato il desktop della macchina virtuale, ridurlo a icona per tornare al desktop locale.

Accedere al server PostgreSQL privatamente dalla macchina virtuale

  1. Nel Desktop remoto di myVm1 aprire PowerShell.

  2. Immetti nslookup mydemopostgresserver.privatelink.postgres.database.azure.com.

    Verrà visualizzato un messaggio simile al seguente:

    Server:  UnKnown
    Address:  168.63.129.16
    Non-authoritative answer:
    Name:    mydemopostgresserver.privatelink.postgres.database.azure.com
    Address:  10.1.3.4
    
  3. Testare la connessione di collegamento privato per il server PostgreSQL usando qualsiasi client disponibile. L'esempio seguente usa Azure Data Studio per eseguire l'operazione.

  4. In Nuova connessione immettere o selezionare queste informazioni:

    Impostazione Valore
    Tipo di server Selezionare PostgreSQL.
    Nome server Selezionare mydemopostgresserver.privatelink.postgres.database.azure.com
    Nome utente Immettere il nome utente come username@servername fornito durante la creazione del server PostgreSQL.
    Password Immettere una password specificata durante la creazione del server PostgreSQL.
    SSL Seleziona Obbligatoria.
  5. Selezionare Connetti.

  6. Esplorare i database dal menu a sinistra.

  7. (Facoltativamente) Creare o eseguire query sulle informazioni dal server postgreSQL.

  8. Chiudere la connessione Desktop remoto a myVm.

Pulire le risorse

Quando non sono più necessari, è possibile usare az group delete per rimuovere il gruppo di risorse e tutte le risorse in esso contenute:

az group delete --name myResourceGroup --yes 

Passaggi successivi

  • Altre informazioni sull'endpoint privato di Azure