Condividi tramite


Creare e gestire collegamento privato per Database di Azure per MySQL - Server flessibile con l'interfaccia della riga di comando di Azure

Questo articolo illustra come usare l'interfaccia della riga di comando di Azure per creare un endpoint privato per l'accesso a Database di Azure per MySQL server flessibile da una macchina virtuale in una rete virtuale.

Avviare Azure Cloud Shell

Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire la procedura di questo articolo. Include strumenti di Azure standard preinstallati e configurati per l'uso con l'account.

Per aprire Cloud Shell, selezionare Prova nell'angolo superiore destro di un blocco di codice. È anche possibile aprire Cloud Shell in una scheda separata del browser visitando https://shell.azure.com/bash. Selezionare Copia per copiare i blocchi di codice, incollarli in Cloud Shell e premere INVIO per eseguirli.

Se si preferisce installare e usare l'interfaccia della riga di comando in locale, per questo argomento di avvio rapido è necessaria l'interfaccia della riga di comando di Azure versione 2.0 o successiva. Eseguire az --version per trovare la versione. Se è necessario installare o aggiornare l'interfaccia della riga di comando di Azure, vedere Installare l'interfaccia della riga di comando di Azure.

Prerequisiti

È necessario accedere all'account usando il comando az login . Prendere nota della proprietà id che fa riferimento all'ID sottoscrizione per l'account Azure.

az login

Selezionare la sottoscrizione specifica nell'account tramite il comando az account set. Nel comando prendere nota del valore id dell'output az login da usare come valore per l'argomento subscription. Se si possiedono più sottoscrizioni, scegliere quella appropriata in cui verrà fatturata la risorsa. Usare az account list per ottenere tutte le sottoscrizioni.

az account set --subscription <subscription id>

Creare un gruppo di risorse

Prima di creare qualsiasi risorsa, è necessario creare un gruppo di risorse per ospitare il 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, di conseguenza è necessario creare o aggiornare la subnet per disabilitare i criteri di rete per gli 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 macchina virtuale con 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

Nota

Registrare l'indirizzo IP pubblico della macchina virtuale perché è necessario connettersi da Internet nel passaggio successivo.

Creare l'istanza del server flessibile Database di Azure per MySQL con accesso pubblico nel gruppo di risorse

Creare un'istanza del server flessibile Database di Azure per MySQL con accesso pubblico e aggiungere l'indirizzo IP client per accedervi.

az mysql flexible-server create \
  --name mydemoserver \
  --resource-group myResourcegroup \
  --location westeurope \
  --admin-user mylogin \
  --admin-password <server_admin_password> \
  --public-access <my_client_ip>

Nota

In alcuni casi, l'istanza del server flessibile Database di Azure per MySQL e la subnet della rete virtuale si trovano in sottoscrizioni diverse. In questi casi è necessario garantire le configurazioni seguenti:

  • Assicurarsi che per entrambe le sottoscrizioni sia registrato il provider di risorse Microsoft.DBforMySQL/flexibleServer . Per altre informazioni, vedere resource-manager-registration.

Creare l'endpoint privato

Creare un endpoint privato per Database di Azure per MySQL server flessibile 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.DBforMySQL/flexibleServers" --query "id" -o tsv) \
    --group-id mysqlServer \
    --connection-name myConnection \
    --location location

Configurare la zona DNS privato

Creare una zona DNS privato per il dominio server flessibile Database di Azure per MySQL e creare un collegamento di associazione con il Rete virtuale.

az network private-dns zone create --resource-group myResourceGroup \
   --name  "privatelink.mysql.database.azure.com"
az network private-dns link vnet create --resource-group myResourceGroup \
   --zone-name  "privatelink.mysql.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 MySQL flexible server name

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

Nota

Il nome di dominio completo nell'impostazione DNS del cliente non risolve l'INDIRIZZO IP privato configurato. È necessario configurare una zona DNS per il nome di dominio completo configurato, come illustratodi seguito.

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.

. Immettere il nome utente e la password specificati al momento della creazione della macchina virtuale. > [!NOTA]
> Potrebbe essere necessario selezionare Altre opzioni Usare un account diverso per specificare le credenziali immesse al momento della creazione della macchina virtuale.

  1. Seleziona OK.

  2. Durante il processo di accesso potrebbe essere visualizzato un avviso relativo al certificato. Selezionare o Continua se viene visualizzato un avviso del certificato.

  3. Quando viene visualizzato il desktop della macchina virtuale, ridurlo al minimo per tornare al desktop locale.

Accedere privatamente all'istanza del server flessibile Database di Azure per MySQL dalla macchina virtuale

  1. Nel Desktop remoto di myVm1 aprire PowerShell.

  2. Immetti nslookup mydemomysqlserver.privatelink.mysql.database.azure.com.

    Verrà visualizzato un messaggio simile al seguente:

    Server:  UnKnown
    Address:  168.63.129.16
    Non-authoritative answer:
    Name:    mydemomysqlserver.privatelink.mysql.database.azure.com
    Address:  10.1.3.4
    
  3. Testare la connessione di collegamento privato per l'istanza del server flessibile Database di Azure per MySQL usando qualsiasi client disponibile. L'esempio seguente usa MySQL Workbench per eseguire l'operazione.

  4. In Nuova connessione immettere o selezionare queste informazioni:

    Impostazione Valore
    Nome connessione Selezionare il nome di connessione desiderato.
    Hostname (Nome host) Selezionare mydemoserver.privatelink.mysql.database.azure.com
    Username Immettere il nome utente come username@servername specificato durante la creazione dell'istanza del server flessibile Database di Azure per MySQL.
    Password Immettere una password specificata durante la creazione dell'istanza del server flessibile Database di Azure per MySQL.
  5. Selezionare Connetti.

  6. Esplorare i database dal menu a sinistra.

  7. (Facoltativamente) Creare o eseguire query sulle informazioni dal database del server flessibile Database di Azure per MySQL.

  8. Chiudere la connessione Desktop remoto a myVm.

Pulire le risorse

Quando non è più necessario, è possibile usare az group delete per rimuovere il gruppo di risorse e tutte le risorse di cui dispone:

az group delete --name myResourceGroup --yes

Elencare le sottorisorse collegabili private (groupIds)

az network private-link-resource list --id {PrivateLinkResourceID}  // or -g MyResourceGroup -n MySA --type Microsoft.Storage/storageAccounts

Elencare le connessioni dell'endpoint privato in una determinata risorsa

az network private-endpoint-connection list --id {PrivateLinkResourceID}

Approvare le connessioni dell'endpoint privato in una determinata risorsa

az network private-endpoint-connection approve --id {PrivateEndpointConnectionID}  --description "Approved!"

Rifiutare le connessioni dell'endpoint privato in una determinata risorsa

az network private-endpoint-connection reject --id {PrivateEndpointConnectionID}  --description "Rejected!"

Eliminare le connessioni dell'endpoint privato in una determinata risorsa

az network private-endpoint-connection delete --id {PrivateEndpointConnectionID}