Share via


Erstellen und Verwalten eines privaten Links für Azure-Datenbank für MySQL – Flexibler Server mit Azure CLI

GILT FÜR: Azure Database for MySQL – Flexible Server

In diesem Artikel erfahren Sie, wie Sie Azure CLI verwenden, um einen privaten Endpunkt für den Zugriff auf azure Database for MySQL flexible Server von einem virtuellen Computer in einem VNet zu erstellen.

Starten von Azure Cloud Shell

Azure Cloud Shell ist eine kostenlose interaktive Shell, mit der Sie die Schritte in diesem Artikel durchführen können. Sie verfügt über vorinstallierte Standardtools und ist für die Verwendung mit Ihrem Konto konfiguriert.

Wählen Sie zum Öffnen von Cloud Shell oben rechts in einem Codeblock die Option Ausprobieren aus. Sie können Cloud Shell auch auf einer separaten Browserregisterkarte öffnen, indem Sie zu https://shell.azure.com/bash navigieren. Wählen Sie Kopieren aus, um die Codeblöcke zu kopieren. Fügen Sie die Blöcke anschließend in Cloud Shell ein, und wählen Sie Eingabe, um sie auszuführen.

Wenn Sie es vorziehen, die CLI lokal zu installieren und zu verwenden, müssen Sie für diesen Schnellstart mindestens Version 2.0 der Azure CLI verwenden. Führen Sie az --version aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.

Voraussetzungen

Sie müssen sich mit dem Befehl az login bei Ihrem Konto anmelden. Beachten Sie die Eigenschaft id, die auf die Abonnement-ID für Ihr Azure-Konto verweist.

az login

Wählen Sie mithilfe des Befehls az account set das Abonnement unter Ihrem Konto aus. Beachten Sie in dem Befehl, dass der ID-Wert der Ausgabe von az login als Wert für das Argument subscription zu verwenden ist. Wenn Sie über mehrere Abonnements verfügen, wählen Sie das entsprechende Abonnement aus, in dem die Ressource fakturiert sein sollte. Verwenden Sie az account list, um alle Abonnements abzurufen.

az account set --subscription <subscription id>

Erstellen einer Ressourcengruppe

Bevor Sie eine Ressource erstellen, müssen Sie eine Ressourcengruppe zum Hosten des virtuellen Netzwerks erstellen. Erstellen Sie mit az group create eine Ressourcengruppe. Das folgende Beispiel erstellt eine Ressourcengruppe mit dem Namen myResourceGroup am Standort westeurope:

az group create --name myResourceGroup --location westeurope

Erstellen eines virtuellen Netzwerks

Erstellen Sie mit az network vnet create ein virtuelles Netzwerk. Bei diesem Beispiel wird ein virtuelles Standardnetzwerk mit dem Namen myVirtualNetwork und dem Subnetz mySubnet erstellt:

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

Deaktivieren von Richtlinien für den privaten Endpunkt im Subnetz

Azure stellt Ressourcen für ein Subnetz innerhalb eines virtuellen Netzwerks bereit. Daher müssen Sie das Subnetz erstellen oder aktualisieren, um die Netzwerkrichtlinien für den privaten Endpunkt im Subnetz zu deaktivieren. Aktualisieren Sie eine Subnetzkonfiguration mit dem Namen mySubnet mit az network vnet subnet update:

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

Erstellen des virtuellen Computers

Erstellen Sie einen virtuellen Computer mit az vm create. Geben Sie bei entsprechender Aufforderung ein Kennwort als Anmeldeinformation für den virtuellen Computer ein. In diesem Beispiel wird ein virtueller Computer mit dem Namen myVm erstellt:

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

Hinweis

Notieren Sie sich die öffentliche IP-Adresse des virtuellen Computers, da sie für die Verbindung über das Internet im nächsten Schritt erforderlich ist.

Erstellen der flexiblen Azure-Datenbank für MySQL-Serverinstanz mit öffentlichem Zugriff in der Ressourcengruppe

Erstellen Sie eine Azure-Datenbank für eine flexible Serverinstanz von MySQL mit öffentlichem Zugriff und fügen Sie die Client-IP-Adresse hinzu, um darauf zuzugreifen.

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>

Hinweis

In einigen Fällen befinden sich die flexible Azure-Datenbank für MySQL-Serverinstanz und das VNet-Subnetz in verschiedenen Abonnements. In diesen Fällen müssen Sie folgende Konfigurationen sicherstellen:

  • Stellen Sie sicher, dass für beide Abonnements der Ressourcenanbieter Microsoft.DBforMySQL/flexibleServer registriert ist. Weitere Informationen finden Sie unter Azure-Ressourcenanbieter und -typen.

Erstellen des privaten Endpunkts

Erstellen Sie einen privaten Endpunkt für azure Database for MySQL flexiblen Server in Ihrem virtuellen Netzwerk:

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

Konfigurieren der privaten DNS-Zone

Erstellen Sie eine Privates DNS Zone für die Flexible Azure-Datenbank für MySQL Standard und erstellen Sie eine Zuordnungsverbindung mit dem virtuellen Netzwerk.

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>

Hinweis

Mit dem FQDN in der DNS-Einstellung des Kunden wird die konfigurierte private IP-Adresse nicht aufgelöst. Sie müssen eine DNS-Zone für den konfigurierten FQDN einrichten, wie hier gezeigt.

Herstellen einer Verbindung mit einem virtuellen Computer über das Internet

Stellen Sie wie folgt eine Verbindung mit dem virtuellen Computer myVm aus dem Internet her:

  1. Geben Sie in der Suchleiste des Portals myVm ein.

  2. Wählen Sie die Schaltfläche Verbinden aus. Nach dem Auswählen der Schaltfläche Verbinden wird Verbindung mit virtuellem Computer herstellen geöffnet.

  3. Wählen Sie RDP-Datei herunterladen aus. Azure erstellt eine Remotedesktopprotokoll-Datei (RDP) und lädt sie auf Ihren Computer herunter.

  4. Öffnen Sie die Datei downloaded.rdp.

    1. Wenn Sie dazu aufgefordert werden, wählen Sie Verbinden aus.

. Geben Sie den Benutzernamen und das Kennwort ein, den/das Sie beim Erstellen des virtuellen Computers angegeben haben. > [!HINWEIS] > Unter Umständen müssen Sie Weitere OptionenAnderesAnderes Konto verwenden auswählen, um die Anmeldeinformationen anzugeben, die Sie beim Erstellen des virtuellen Computers eingegeben haben.

  1. Klickan Sie auf OK.

  2. Während des Anmeldevorgangs wird unter Umständen eine Zertifikatwarnung angezeigt. Wählen Sie Ja oder Weiter aus, wenn Sie eine Zertifikatwarnung erhalten.

  3. Sobald der VM-Desktop angezeigt wird, minimieren Sie ihn, um zu Ihrem lokalen Desktop zurückzukehren.

Zugriff auf die Azure-Datenbank für mySQL flexible Serverinstanz privat von der VM

  1. Öffnen Sie auf dem Remotedesktop von myVM PowerShell.

  2. Geben Sie nslookup mydemomysqlserver.privatelink.mysql.database.azure.com ein.

    Sie erhalten eine Meldung wie die folgende:

    Server:  UnKnown
    Address:  168.63.129.16
    Non-authoritative answer:
    Name:    mydemomysqlserver.privatelink.mysql.database.azure.com
    Address:  10.1.3.4
    
  3. Testen Sie die Private Link-Verbindung für die azure-Datenbank für die flexible Serverinstanz von MySQL unter Verwendung eines beliebigen verfügbaren Clients. Im folgenden Beispiel wird die MySQL Workbench zum Ausführen des Vorgangs verwendet.

  4. Geben Sie in Neue Verbindung die folgenden Informationen ein, oder wählen Sie sie aus:

    Einstellung Wert
    Verbindungsname Wählen Sie den gewünschten Verbindungsnamen aus.
    Hostname Select mydemoserver.privatelink.mysql.database.azure.com
    Username Geben Sie den Benutzernamen als username@servername während der Erstellung der flexiblen Azure-Datenbank für MySQL-Serverinstanzen ein.
    Kennwort Geben Sie während der Azure-Datenbank für die Erstellung flexibler Serverinstanzen ein Kennwort ein.
  5. Wählen Sie Verbinden aus.

  6. Durchsuchen Sie Datenbanken im linken Menü.

  7. (Optional) Erstellen oder Abfragen von Informationen aus der Azure-Datenbank für mySQL flexible Serverdatenbank.

  8. Schließen Sie die Remotedesktopverbindung mit myVm.

Bereinigen von Ressourcen

Wenn sie nicht mehr benötigt wird, können az group delete Sie die Ressourcengruppe und alle darin vorhandenen Ressourcen entfernen:

az group delete --name myResourceGroup --yes

Auflisten von per Private Link verknüpfbarer Unterressourcen (groupIds)

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

Auflisten privater Endpunktverbindungen zu einer bestimmten Ressource

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

Genehmigen privater Endpunktverbindungen zu einer bestimmten Ressource

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

Ablehnen privater Endpunktverbindungen zu einer bestimmten Ressource

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

Löschen privater Endpunktverbindungen zu einer bestimmten Ressource

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

Nächste Schritte