Руководство по Подключение на сервер SQL Azure с помощью частной конечной точки Azure с помощью Azure CLI

Частная конечная точка Azure — ключевой компонент для построения Приватного канала в Azure. Это позволяет ресурсам Azure, таким как виртуальные машины (ВМ), обмениваться данными с ресурсами Приватного канала в частном порядке.

Схема ресурсов, созданных в кратком руководстве по частной конечной точке.

В этом руководстве описано следующее:

  • Создание виртуальной сети и узла бастиона.
  • Создайте виртуальную машину.
  • Создание Azure SQL Server и частной конечной точки.
  • Проверка подключения к частной конечной точке SQL Server.

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

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

Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими.

Создайте группу ресурсов с помощью команды az group create:

  • с именем CreateSQLEndpointTutorial-rg;
  • в расположении eastus.
az group create \
    --name CreateSQLEndpointTutorial-rg \
    --location eastus

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

В этом разделе вы создадите виртуальную сеть, подсеть и узел бастиона.

Для безопасного подключения к виртуальной машине с целью тестирования частной конечной точки будет использоваться узел бастиона.

Создайте виртуальную сеть с помощью команды az network vnet create:

  • с именем myVNet;
  • с префиксом адреса 10.0.0.0/16;
  • с именем подсети myBackendSubnet;
  • с префиксом подсети 10.0.0.0/24;
  • в группе ресурсов CreateSQLEndpointTutorial-rg;
  • расположении eastus.
az network vnet create \
    --resource-group CreateSQLEndpointTutorial-rg\
    --location eastus \
    --name myVNet \
    --address-prefixes 10.0.0.0/16 \
    --subnet-name myBackendSubnet \
    --subnet-prefixes 10.0.0.0/24

Измените настройки подсети, чтобы отключить сетевые политики для частной конечной точки, с помощью команды az network vnet subnet update.

az network vnet subnet update \
    --name myBackendSubnet \
    --resource-group CreateSQLEndpointTutorial-rg \
    --vnet-name myVNet \
    --disable-private-endpoint-network-policies true

Чтобы создать общедоступный IP-адрес узла-бастиона, воспользуйтесь командой az network public-ip create:

  • создайте стандартный избыточный между зонами общедоступный IP-адрес с именем myPublicIP;
  • в CreateSQLEndpointTutorial-rg;
az network public-ip create \
    --resource-group CreateSQLEndpointTutorial-rg \
    --name myBastionIP \
    --sku Standard

Используйте команду az network vnet subnet create, чтобы создать подсеть бастиона:

  • с именем AzureBastionSubnet;
  • с префиксом адреса 10.0.1.0/24;
  • в виртуальной сети myVNet;
  • в группе ресурсов CreateSQLEndpointTutorial-rg.
az network vnet subnet create \
    --resource-group CreateSQLEndpointTutorial-rg \
    --name AzureBastionSubnet \
    --vnet-name myVNet \
    --address-prefixes 10.0.1.0/24

Используйте команду az network bastion create для создания узла-бастиона:

  • с именем myBastionHost;
  • в CreateSQLEndpointTutorial-rg;
  • связанного с общедоступным IP-адресом myBastionIP;
  • связанного с виртуальной сетью myVNet;
  • в расположении eastus.
az network bastion create \
    --resource-group CreateSQLEndpointTutorial-rg \
    --name myBastionHost \
    --public-ip-address myBastionIP \
    --vnet-name myVNet \
    --location eastus

Развертывание узла-бастиона может занять несколько минут.

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

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

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

  • с именем myVM;
  • в CreateSQLEndpointTutorial-rg;
  • в сети myVNet;
  • в подсети myBackendSubnet;
  • с образом сервера Win2019Datacenter.
az vm create \
    --resource-group CreateSQLEndpointTutorial-rg \
    --name myVM \
    --image Win2019Datacenter \
    --public-ip-address "" \
    --vnet-name myVNet \
    --subnet myBackendSubnet \
    --admin-username azureuser

Примечание.

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

IP-адрес исходящего доступа по умолчанию отключен при возникновении одного из следующих событий:

  • Общедоступный IP-адрес назначается виртуальной машине.
  • Виртуальная машина размещается в серверном пуле стандартной подсистемы балансировки нагрузки с правилами исходящего трафика или без нее.
  • Ресурс шлюза NAT Azure назначается подсети виртуальной машины.

Виртуальные машины, созданные с помощью масштабируемых наборов виртуальных машин в гибком режиме оркестрации, не имеют исходящего доступа по умолчанию.

Дополнительные сведения об исходящих подключениях в Azure см. в статье об исходящем доступе по умолчанию в Azure и использовании преобразования исходящих сетевых адресов (SNAT) для исходящих подключений.

Создание сервера SQL Azure

Используя сведения из этого раздела, вы создадите сервер и базу данных SQL.

Создайте сервер SQL с помощью команды az sql server create:

  • Замените <sql-server-name> уникальным именем сервера.
  • Замените значение <your-password> паролем.
  • в CreateSQLEndpointTutorial-rg;
  • в регионе eastus.
az sql server create \
    --name <sql-server-name> \
    --resource-group CreateSQLEndpointTutorial-rg \
    --location eastus \
    --admin-user sqladmin \
    --admin-password <your-password>

Создайте базу данных с помощью команды az sql db create:

  • с именем mydatabase;
  • в CreateSQLEndpointTutorial-rg;
  • Замените <sql-server-name> уникальным именем сервера.
az sql db create \
    --resource-group CreateSQLEndpointTutorial-rg  \
    --server <sql-server-name> \
    --name myDataBase \
    --sample-name AdventureWorksLT

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

Используя сведения из этого раздела, вы создадите частную конечную точку.

Используйте команду az sql server list, чтобы разместить идентификатор ресурса сервера SQL в переменную оболочки.

Создайте конечную точку и подключение с помощью команды az network private-endpoint create:

  • с именем myPrivateEndpoint;
  • в группе ресурсов CreateSQLEndpointTutorial-rg.
  • в виртуальной сети myVNet;
  • в подсети myBackendSubnet;
  • с именем подключения myConnection.
id=$(az sql server list \
    --resource-group CreateSQLEndpointTutorial-rg \
    --query '[].[id]' \
    --output tsv)

az network private-endpoint create \
    --name myPrivateEndpoint \
    --resource-group CreateSQLEndpointTutorial-rg \
    --vnet-name myVNet --subnet myBackendSubnet \
    --private-connection-resource-id $id \
    --group-ids sqlServer \
    --connection-name myConnection  

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

Используя сведения из этого раздела, вы создадите и настроите частную зону DNS с помощью az network private-dns zone create.

Воспользуйтесь командой az network private-dns link vnet create, чтобы создать в виртуальной сети ссылку на зону DNS.

Вы создадите группу зоны DNS с помощью команды az network private-endpoint dns-zone-group create:

  • с именем зоны privatelink.database.windows.net;
  • в виртуальной сети myVNet;
  • в группе ресурсов CreateSQLEndpointTutorial-rg.
  • с именем ссылки на DNS myDNSLink;
  • связанную с myPrivateEndpoint;
  • с именем группы зон MyZoneGroup.
az network private-dns zone create \
    --resource-group CreateSQLEndpointTutorial-rg \
    --name "privatelink.database.windows.net"

az network private-dns link vnet create \
    --resource-group CreateSQLEndpointTutorial-rg \
    --zone-name "privatelink.database.windows.net" \
    --name MyDNSLink \
    --virtual-network myVNet \
    --registration-enabled false

az network private-endpoint dns-zone-group create \
   --resource-group CreateSQLEndpointTutorial-rg \
   --endpoint-name myPrivateEndpoint \
   --name MyZoneGroup \
   --private-dns-zone "privatelink.database.windows.net" \
   --zone-name sql

Проверка подключения к частной конечной точке

В этом разделе описано, как использовать виртуальную машину, созданную на предыдущем шаге, для подключения к серверу SQL через частную конечную точку.

  1. Войдите на портал Azure.

  2. В области навигации слева выберите Группы ресурсов.

  3. Выберите группу ресурсов CreateSQLEndpointTutorial-rg.

  4. Выберите myVM.

  5. На обзорной странице для myVM выберите Подключиться, а затем — Бастион.

  6. Нажмите синюю кнопку Использовать Бастион.

  7. Введите имя пользователя и пароль, указанные при создании виртуальной машины.

  8. После подключения откройте на сервере Windows PowerShell.

  9. Введите nslookup <sqlserver-name>.database.windows.net. Замените <sqlserver-name> именем сервера SQL, созданного на предыдущих шагах. Вы получите сообщение, аналогичное показанному ниже:

    Server:  UnKnown
    Address:  168.63.129.16
    
    Non-authoritative answer:
    Name:    mysqlserver8675.privatelink.database.windows.net
    Address:  10.0.0.5
    Aliases:  mysqlserver8675.database.windows.net
    

    Для имени сервера SQL возвращен частный IP-адрес 10.0.0.5. Этот адрес находится в подсети виртуальной сети, созданной ранее.

  10. Установите SQL Server Management Studio в myVM.

  11. Откройте SQL Server Management Studio.

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

    Параметр Значение
    Тип сервера Выберите Ядро СУБД.
    Имя сервера Введите <sql-server-name>.database.windows.net
    Проверка подлинности Выберите Проверка подлинности SQL Server.
    User name Введите имя пользователя, указанное при создании сервера
    Пароль Введите пароль, указанный при создании сервера
    Запомнить пароль Выберите Да.
  13. Нажмите Подключиться.

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

  15. (Дополнительно) Создание или запрос информации из базы данных mysqldatabase.

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

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

После завершения работы с частной конечной точкой,SQL server и виртуальными машинами удалите группу ресурсов и все содержащиеся в ней ресурсы:

az group delete \
    --name CreateSQLEndpointTutorial-rg

Следующие шаги

В рамках этого учебника вы создали:

  • виртуальную сеть и узел-бастион;
  • виртуальную машину;
  • Azure SQL Server с частной конечной точкой.

Вы использовали виртуальную машину для безопасного тестирования подключения к SQL Server через частную конечную точку.

В качестве следующего шага вы также можете ознакомиться со сценарием архитектуры веб-приложения с частным подключением к базе данных SQL Azure, когда веб-приложение за пределами виртуальной сети подключается к частной конечной точке базы данных.