Udostępnij za pośrednictwem


Tworzenie usługi Private Link dla usługi Azure Database for MySQL i zarządzanie nim — serwer elastyczny przy użyciu interfejsu wiersza polecenia platformy Azure

Z tego artykułu dowiesz się, jak używać interfejsu wiersza polecenia platformy Azure do tworzenia prywatnego punktu końcowego na potrzeby uzyskiwania dostępu do serwera elastycznego usługi Azure Database for MySQL z maszyny wirtualnej w sieci wirtualnej.

Uruchamianie usługi Azure Cloud Shell

Usługa Azure Cloud Shell to bezpłatna interaktywna powłoka, której można użyć do wykonania kroków opisanych w tym artykule. Ma ona standardowe narzędzia platformy Azure wstępnie zainstalowane i skonfigurowane do użycia z kontem.

Aby otworzyć usługę Cloud Shell, wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu. Możesz również otworzyć usługę Cloud Shell na osobnej karcie przeglądarki, przechodząc do .https://shell.azure.com/bash Wybierz pozycję Kopiuj , aby skopiować bloki kodu, wklej go w usłudze Cloud Shell, a następnie wybierz Enter , aby go uruchomić.

Jeśli wolisz zainstalować interfejs wiersza polecenia i korzystać z niego lokalnie, ten przewodnik Szybki start wymaga interfejsu wiersza polecenia platformy Azure w wersji 2.0 lub nowszej. Uruchom polecenie az --version, aby dowiedzieć się, jaka wersja jest używana. Jeśli musisz zainstalować lub uaktualnić, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

Wymagania wstępne

Musisz zalogować się do swojego konta przy użyciu polecenia az login . Zanotuj właściwość id , która odnosi się do identyfikatora subskrypcji dla konta platformy Azure.

az login

Wybierz określoną subskrypcję w ramach konta przy użyciu polecenia az account set . W poleceniu zanotuj wartość id z danych wyjściowych az login , która będzie używana jako wartość argumentu subskrypcji . Jeśli masz wiele subskrypcji, wybierz odpowiednią subskrypcję, w ramach której powinny być naliczane opłaty za ten zasób. Użyj polecenia az account list , aby pobrać wszystkie subskrypcje.

az account set --subscription <subscription id>

Tworzenie grupy zasobów

Przed utworzeniem dowolnego zasobu należy utworzyć grupę zasobów do hostowania sieci wirtualnej. Utwórz grupę zasobów za pomocą polecenia az group create. W tym przykładzie zostanie utworzona grupa zasobów o nazwie myResourceGroup w lokalizacji westeurope :

az group create --name myResourceGroup --location westeurope

Tworzenie sieci wirtualnej

Utwórz sieć wirtualną za pomocą polecenia az network vnet create. W tym przykładzie zostanie utworzona domyślna sieć wirtualna o nazwie myVirtualNetwork z jedną podsiecią o nazwie mySubnet:

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

Wyłączanie zasad prywatnego punktu końcowego podsieci

Platforma Azure wdraża zasoby w podsieci w sieci wirtualnej, dlatego należy utworzyć lub zaktualizować podsieć, aby wyłączyć zasady sieci prywatnego punktu końcowego. Zaktualizuj konfigurację podsieci o nazwie mySubnet za pomocą polecenia az network vnet subnet update:

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

Tworzenie maszyny wirtualnej

Utwórz maszynę wirtualną za pomocą polecenia az vm create. Po wyświetleniu monitu podaj hasło do użycia jako poświadczenia logowania dla maszyny wirtualnej. W tym przykładzie zostanie utworzona maszyna wirtualna o nazwie myVm:

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

Uwaga

Zarejestruj publiczny adres IP maszyny wirtualnej, ponieważ jest potrzebny do nawiązania połączenia z Internetu w następnym kroku.

Tworzenie wystąpienia serwera elastycznego usługi Azure Database for MySQL z dostępem publicznym w grupie zasobów

Utwórz wystąpienie serwera elastycznego usługi Azure Database for MySQL z dostępem publicznym i dodaj adres IP klienta, aby uzyskać do niego dostęp.

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>

Uwaga

W niektórych przypadkach wystąpienie serwera elastycznego usługi Azure Database for MySQL i podsieć sieci wirtualnej znajdują się w różnych subskrypcjach. W takich przypadkach należy zapewnić następujące konfiguracje:

  • Upewnij się, że obie subskrypcje mają zarejestrowanego dostawcę zasobów Microsoft.DBforMySQL/flexibleServer . Aby uzyskać więcej informacji, zobacz rejestracja przy użyciu usługi resource-manager.

Tworzenie prywatnego punktu końcowego

Utwórz prywatny punkt końcowy dla usługi Azure Database for MySQL — serwer elastyczny w sieci wirtualnej:

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

Konfigurowanie strefy Prywatna strefa DNS

Utwórz strefę Prywatna strefa DNS dla domeny serwera elastycznego usługi Azure Database for MySQL i utwórz link skojarzenia z siecią wirtualną.

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>

Uwaga

Nazwa FQDN w ustawieniu DNS klienta nie rozpoznaje skonfigurowanego prywatnego adresu IP. Musisz skonfigurować strefę DNS dla skonfigurowanej nazwy FQDN, jak pokazanotutaj.

Nawiązywanie połączenia z maszyną wirtualną z Internetu

Połącz się z maszyną wirtualną myVm z Internetu w następujący sposób:

  1. Na pasku wyszukiwania portalu wprowadź ciąg myVm.

  2. Wybierz przycisk Połącz. Po wybraniu przycisku Połącz zostanie otwarta strona Łączenie z maszyną wirtualną.

  3. Wybierz pozycję Pobierz plik RDP. Plik Remote Desktop Protocol (.rdp) zostanie utworzony na platformie Azure, a następnie pobrany na komputer.

  4. Otwórz plik downloaded.rdp.

    1. Po wyświetleniu monitu wybierz pozycję Połącz.

. Wprowadź nazwę użytkownika i hasło określone podczas tworzenia maszyny wirtualnej. > [!UWAGA]
> Może być konieczne wybranie pozycji Więcej opcji Użyj innego konta, aby określić poświadczenia wprowadzone podczas tworzenia maszyny wirtualnej.

  1. Wybierz przycisk OK.

  2. Podczas procesu logowania może pojawić się ostrzeżenie o certyfikacie. Wybierz pozycję Tak lub Kontynuuj , jeśli zostanie wyświetlone ostrzeżenie o certyfikacie.

  3. Po pojawieniu się pulpitu maszyny wirtualnej zminimalizuj go, aby powrócić do lokalnego pulpitu.

Uzyskiwanie dostępu do wystąpienia serwera elastycznego usługi Azure Database for MySQL prywatnie z maszyny wirtualnej

  1. Na pulpicie zdalnym maszyny wirtualnej myVM otwórz program PowerShell.

  2. Wprowadź nslookup mydemomysqlserver.privatelink.mysql.database.azure.com.

    Zostanie wyświetlony komunikat podobny do następującego:

    Server:  UnKnown
    Address:  168.63.129.16
    Non-authoritative answer:
    Name:    mydemomysqlserver.privatelink.mysql.database.azure.com
    Address:  10.1.3.4
    
  3. Przetestuj połączenie usługi Private Link dla wystąpienia serwera elastycznego usługi Azure Database for MySQL przy użyciu dowolnego dostępnego klienta. W poniższym przykładzie użyto aplikacji MySQL Workbench do wykonania operacji.

  4. W obszarze Nowe połączenie wprowadź lub wybierz następujące informacje:

    Ustawienie Wartość
    Nazwa połączenia Wybierz wybraną nazwę połączenia.
    Hostname (Nazwa hosta) Wybierz mydemoserver.privatelink.mysql.database.azure.com
    Username Wprowadź nazwę użytkownika jako username@servername podaną podczas tworzenia wystąpienia serwera elastycznego usługi Azure Database for MySQL.
    Hasło Wprowadź hasło podane podczas tworzenia wystąpienia serwera elastycznego usługi Azure Database for MySQL.
  5. Wybierz pozycję Połącz.

  6. Przeglądaj bazy danych z menu po lewej stronie.

  7. (Opcjonalnie) Tworzenie informacji lub wykonywanie zapytań na podstawie bazy danych serwera elastycznego usługi Azure Database for MySQL.

  8. Zamknij połączenie pulpitu zdalnego z maszyną wirtualną myVm.

Czyszczenie zasobów

Gdy grupa zasobów nie będzie już potrzebna, możesz użyć az group delete polecenia , aby usunąć grupę zasobów i wszystkie zasoby, które ma:

az group delete --name myResourceGroup --yes

Wyświetlanie listy zasobów podrzędnych z możliwością łączenia prywatnego (groupIds)

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

Wyświetlanie listy połączeń prywatnych punktów końcowych w danym zasobie

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

Zatwierdzanie połączeń prywatnych punktów końcowych w danym zasobie

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

Odrzucanie połączeń prywatnych punktów końcowych w danym zasobie

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

Usuwanie połączeń prywatnych punktów końcowych w danym zasobie

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