Поделиться через


Создание Приватный канал и управление ими для База данных Azure для MySQL — гибкий сервер с помощью Azure CLI

В этой статье вы узнаете, как с помощью Azure CLI создать частную конечную точку для доступа к гибкому серверу База данных Azure для MySQL с виртуальной машины в виртуальной сети.

Запуск Azure Cloud Shell

Azure Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье. Она имеет стандартные средства Azure, предварительно установленные и настроенные для использования с вашей учетной записью.

Чтобы открыть Cloud Shell, выберите Попробовать в правом верхнем углу блока кода. Кроме того, Cloud Shell можно открыть в отдельной вкладке браузера. Для этого перейдите на страницу https://shell.azure.com/bash. Нажмите кнопку Копировать, чтобы скопировать блоки кода. Вставьте код в Cloud Shell и нажмите клавишу ВВОД, чтобы выполнить его.

Если вы решили установить и использовать CLI локально, для выполнения инструкций, приведенных в этом кратком руководстве, вам потребуется Azure CLI 2.0 или более поздней версии. Чтобы узнать версию, выполните команду az --version. Если вам нужно установить или обновить azure CLI, см. статью "Установка Azure CLI ".

Необходимые компоненты

Необходимо войти в учетную запись с помощью команды az login . Обратите внимание на свойство id, которое ссылается на идентификатор подписки вашей учетной записи Azure.

az login

Выберите конкретную подписку вашей учетной записи, выполнив команду az account set. В команде обратите внимание на значение идентификатора из выходных данных az login для использования в качестве значения аргумента подписки . Если вы используете несколько подписок, выберите соответствующую, в которой за ресурс будет взиматься плата. Используйте az account list , чтобы получить все подписки.

az account set --subscription <subscription id>

Создание или изменение группы ресурсов

Перед созданием любого ресурса необходимо создать группу ресурсов для размещения виртуальная сеть. Создайте группу ресурсов с помощью команды az group create. В этом примере создается группа ресурсов с именем myResourceGroup в расположении westeurope.

az group create --name myResourceGroup --location westeurope

Создание виртуальной сети

Создайте виртуальную сеть с помощью команды az network vnet create. В этом примере создается виртуальная сеть по умолчанию с именем myVirtualNetwork с подсетью mySubnet.

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

Отключение политик подсети частной конечной точки

Поскольку Azure развертывает ресурсы в подсеть виртуальной сети, чтобы отключить политики сети частной конечной точки, вам следует создать или обновить подсеть. Обновите конфигурацию подсети mySubnet с помощью команды az network vnet subnet update.

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

Создание виртуальной машины

Создание виртуальной машины с az vm createпомощью . При появлении запроса укажите пароль в качестве учетных данных для входа на виртуальную машину. В этом примере создается виртуальная машина с именем myVM.

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

Примечание.

Запишите общедоступный IP-адрес виртуальной машины, так как он необходим для подключения из Интернета на следующем шаге.

Создание экземпляра гибкого сервера База данных Azure для MySQL с общедоступным доступом в группе ресурсов

Создайте экземпляр гибкого сервера База данных Azure для MySQL с общедоступным доступом и добавьте IP-адрес клиента для доступа к нему.

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>

Примечание.

В некоторых случаях экземпляр гибкого сервера База данных Azure для MySQL и подсеть виртуальной сети находятся в разных подписках. В этих случаях необходимо обеспечить указанную ниже конфигурацию.

  • Убедитесь, что обе подписки зарегистрированы поставщиком ресурсов Microsoft.DBforMySQL/flexibleServer . Дополнительные сведения см. в статье resource-manager-registration.

Создание частной конечной точки

Создайте частную конечную точку для гибкого сервера База данных Azure для MySQL в виртуальная сеть:

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

Настройка частной зоны DNS

Создайте зону Частная зона DNS для домена гибкого сервера База данных Azure для MySQL и создайте связь с виртуальная сеть.

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>

Примечание.

Полное доменное имя в параметре DNS клиента не разрешает настроенный частный IP-адрес. Необходимо настроить зону DNS для настроенного полного доменного имени, как показаноздесь.

Подключение к виртуальной машине из Интернета

Подключитесь к виртуальной машине myVm из Интернета, выполнив следующие действия.

  1. На портале в строке поиска введите myVm.

  2. Нажмите кнопку Подключиться. После нажатия кнопки Подключиться откроется окно Connect to virtual machine (Подключение к виртуальной машине).

  3. Выберите Скачать RDP-файл. Azure создаст и скачает на ваш компьютер файл протокола удаленного рабочего стола (RDP).

  4. Откройте файл downloaded.rdp.

    1. При появлении запроса выберите Подключиться.

. Введите имя пользователя и пароль, указанные при создании виртуальной машины. > [!ПРИМЕЧАНИЕ]
> Вам может потребоваться выбрать другие варианты использования другой учетной записи, чтобы указать учетные данные, введенные при создании виртуальной машины.

  1. Нажмите ОК.

  2. При входе в систему может появиться предупреждение о сертификате. Нажмите кнопку "Да" или "Продолжить", если появится предупреждение о сертификате.

  3. После появления рабочего стола виртуальной машины сведите его к минимуму, чтобы вернуться к локальному рабочему столу.

Доступ к экземпляру гибкого сервера База данных Azure для MySQL в частном порядке из виртуальной машины

  1. Откройте PowerShell на удаленном рабочем столе myVm.

  2. Введите nslookup mydemomysqlserver.privatelink.mysql.database.azure.com.

    Должно появиться сообщение следующего вида:

    Server:  UnKnown
    Address:  168.63.129.16
    Non-authoritative answer:
    Name:    mydemomysqlserver.privatelink.mysql.database.azure.com
    Address:  10.1.3.4
    
  3. Проверьте подключение приватного канала для экземпляра гибкого сервера База данных Azure для MySQL с помощью любого доступного клиента. В следующем примере для выполнения операции используется MySQL Workbench .

  4. В окне Новое подключение введите или выберите следующую информацию:

    Параметр Значение
    Имя подключения Выберите нужное имя подключения.
    Hostname (Имя узла) Выберите mydemoserver.privatelink.mysql.database.azure.com
    Имя пользователя Введите имя пользователя как username@servername, предоставленное во время создания экземпляра гибкого сервера База данных Azure для MySQL.
    Пароль Введите пароль, предоставленный во время создания экземпляра гибкого сервера База данных Azure для MySQL.
  5. Нажмите Подключиться.

  6. Просмотр баз данных из левого меню.

  7. (Необязательно) Создание или запрос сведений из базы данных гибкого сервера База данных Azure для MySQL.

  8. Закройте подключение к удаленному рабочему столу myVM.

Очистка ресурсов

Если она больше не нужна, можно удалить az group delete группу ресурсов и все ресурсы, которые у нее есть:

az group delete --name myResourceGroup --yes

Вывод списка вложенных ресурсов с возможностью приватного канала (groupIds)

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

Вывод списка подключений к частной конечной точке для заданного ресурса

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

Утверждение подключений частной конечной точки к заданному ресурсу

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

Отклонение подключений частной конечной точки к заданному ресурсу

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

Удаление подключений к частной конечной точке для заданного ресурса

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