Учебник. Получение доступа к локальному серверу SQL Server из управляемой виртуальной сети Фабрики данных с помощью частной конечной точки

В этом руководстве приведены инструкции по настройке портал Azure Приватный канал Service и доступ к локальному SQL Server из управляемой виртуальной сети с помощью частной конечной точки. Использование управляемой виртуальной сети гарантирует, что трафик из локального источника SQL будет проходить через собственную частную конечную точку, тем самым обеспечивая защиту доступа к общедоступному облаку с дополнительным уровнем безопасности и изоляции. Необходимые ресурсы, упомянутые ниже, необходимы для поддержки сценария.

Примечание.

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

Снимок экрана с изображением модели доступа для SQL Server.

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

  • Подписка Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
  • Виртуальная сеть. Если у вас нет виртуальной сети, создайте ее, выполнив действия из этой статьи.
  • Подключение виртуальной сети к локальной сети. Создайте подключение между виртуальной и локальной сетью с помощью ExpressRoute или VPN. Если вы предпочитаете использовать облачную виртуальную машину в частной сети, это также можно сделать. Просто создайте виртуальную сеть для облачных виртуальных машин и приватную связь с виртуальной сетью , и вы можете получить к ним доступ, как если бы они были локальными компьютерами в частной сети, даже если они размещены в облаке.
  • Фабрика данных с включенной управляемой виртуальной сетью. Если у вас нет Фабрики данных или управляемая виртуальная сеть не включена, создайте ее, выполнив инструкции из этой статьи.

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

Используйте портал для создания подсетей в виртуальной сети.

Подсеть Description
be-subnet подсеть для внутренних серверов
fe-subnet подсеть для внутренней подсистемы Load Balancer (цен. категория "Стандартный")
pls-subnet подсеть для службы "Приватный канал"

Снимок экрана с подсетями.

Создание подсистемы балансировки нагрузки уровня "Стандартный"

С помощью портала создайте внутреннюю подсистему балансировки нагрузки (цен. категория "Стандартный").

  1. В верхней части экрана слева последовательно выберите Создать ресурс > Сеть > Подсистема балансировки нагрузки.

  2. На странице Создание подсистемы балансировки нагрузки на вкладке Основные сведения укажите следующее.

    Параметр Значение
    Отток подписок Выберите свою подписку.
    Группа ресурсов Выберите группу ресурсов.
    Имя. Введите myLoadBalancer.
    Регион Выберите Восточная часть США.
    Тип Выберите Внутренний.
    номер SKU Выберите Стандартное.
    Виртуальная сеть Выберите свою виртуальную сеть.
    Подсеть Выберите подсеть fe-subnet, созданную на предыдущем шаге.
    Назначение IP-адресов Выберите Динамический.
    Availability zone Выберите Избыточное в пределах зоны.
  3. Оставьте значения по умолчанию для остальных параметров и нажмите кнопку Просмотр и создание.

  4. На вкладке Отзыв и создание выберите Создать.

    Снимок экрана, на котором показан этап создания Load Balancer (цен. категория

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

Создание внутреннего пула.

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

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

  1. В меню слева щелкните Все службы, выберите Все ресурсы, а затем из списка ресурсов выберите myLoadBalancer.
  2. В разделе Параметры выберите Серверные пулы, затем щелкните Добавить.
  3. На странице Добавление серверного пула введите имя myBackEndPool для серверного пула и выберите Добавить.

Создание пробы работоспособности

Подсистема балансировки нагрузки отслеживает состояние приложения, выполняя пробу работоспособности.

Проба работоспособности добавляет виртуальные машины в балансировщик нагрузки или удаляет их оттуда на основе их ответа на проверки работоспособности.

Создайте зонд работоспособности с именем myHealthProbe, чтобы отслеживать работоспособность виртуальных машин.

  1. В меню слева щелкните Все службы, выберите Все ресурсы, а затем из списка ресурсов выберите myLoadBalancer.

  2. В разделе Параметры выберите Пробы работоспособности, а затем щелкните Добавить.

    Параметр Значение
    Имя. Введите myHealthProbe.
    Протокол Выберите TCP.
    Порт Введите 22.
    Интервал В качестве интервала между попытками выполнения пробы (в секундах) введите 15.
    Порог состояния неработоспособности Выберите 2 в качестве значения порога состояния неработоспособности или количества последовательных сбоев пробы, после которых виртуальная машина будет считаться неработоспособной.
  3. Сохраните остальные значения по умолчанию и нажмите кнопку OK.

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

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

В этом разделе показано, как создать правило подсистемы балансировки нагрузки, которая имеет следующие характеристики:

  1. В меню слева щелкните Все службы, выберите Все ресурсы, а затем из списка ресурсов выберите myLoadBalancer.

  2. В разделе Параметры выберите Правила балансировки нагрузки, а затем щелкните Добавить.

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

    Параметр Значение
    Имя. Введите myRule.
    Версия IP-адреса Выберите IPv4.
    Интерфейсный IP-адрес Выберите LoadBalancerFrontEnd.
    Протокол Выберите TCP.
    Порт Введите 1433.
    Серверный порт Введите 1433.
    Внутренний пул Выберите myBackendPool.
    Проба работоспособности Выберите myHealthProbe.
    Время ожидания простоя (в минутах) Переместите ползунок на 15 минут.
    Сброс TCP Выберите Отключено.
  4. Сохраните остальные значения по умолчанию и нажмите кнопку ОК.

В этом разделе показано, как создать службу приватного канала за подсистемой балансировки нагрузки (цен. категория "Стандартный").

  1. В верхнем левом углу страницы портала Azure щелкните Создать ресурс.

  2. Введите Приватный канал в поле Поиск в Marketplace.

  3. Нажмите кнопку создания.

  4. В разделе Обзор в Центре Приватного канала нажмите синюю кнопку Создать службу приватного канала.

  5. На вкладке Основные сведения в разделе Создание службы ариватного канала укажите следующее:

    Параметр Значение
    Сведения о проекте
    Отток подписок Выберите свою подписку.
    Группа ресурсов Выберите группу ресурсов.
    Сведения об экземпляре
    Имя. Введите myPrivateLinkService.
    Регион Выберите Восточная часть США.
  6. Выберите вкладку "Параметры исходящего трафика " или нажмите кнопку "Далее: исходящие параметры" в нижней части страницы .

  7. На вкладке Параметры исходящего трафика укажите следующее:

    Параметр Значение
    Подсистема балансировки нагрузки Выберите myLoadBalancer.
    IP-адрес внешнего интерфейса подсистемы балансировки нагрузки Выберите LoadBalancerFrontEnd.
    Исходная подсеть NAT Выберите pls-subnet.
    Включить TCP-прокси версии 2 Оставьте значение по умолчанию Нет.
    Параметры частного IP-адреса
    Оставьте параметры по умолчанию.
  8. Выберите вкладку "Безопасность доступа" или нажмите кнопку "Далее: безопасность доступа" в нижней части страницы.

  9. Оставьте значение по умолчанию для параметра Только управление доступом на основе ролей на вкладке Защита доступа.

  10. Выберите вкладку "Теги" или нажмите кнопку "Далее" в нижней части страницы.

  11. Выберите вкладку "Просмотр и создание " или нажмите кнопку "Далее" и " Просмотреть" и "Создать " в нижней части страницы.

  12. Выберите Создать на вкладке Просмотр и создание.

Создание внутренних серверов

  1. В верхнем левом углу портала последовательно выберите: Создать ресурс > Вычисления > Виртуальная машина.

  2. В разделе Создание виртуальной машины на вкладке Основные сведения укажите следующее.

    Параметр Значение
    Сведения о проекте
    Отток подписок Выберите свою подписку Azure.
    Группа ресурсов Выберите группу ресурсов.
    Сведения об экземпляре
    Virtual machine name Введите myVM1.
    Регион Выберите Восточная часть США.
    Параметры доступности Выберите зоны доступности.
    Availability zone Выберите 1.
    Изображения Выберите Ubuntu Server 22.04 LTS.
    Точечный экземпляр Azure Выберите Нет.
    Размер Выберите размер виртуальной машины или используйте значение по умолчанию.
    Учетная запись администратора
    Username Введите имя пользователя.
    SSH public key source (Источник открытого ключа SSH) Создайте пару ключей.
    Key pair name (Имя пары ключей) mySSHKey.
    Правила входящего порта
    Общедоступные входящие порты нет
  3. Выберите вкладку Сети или Next: Disks (Далее: диски), а затем Next: Networking (Далее: сеть).

  4. На вкладке Сеть укажите следующее.

    Параметр Значение
    Сетевой интерфейс
    Виртуальная сеть Выберите свою виртуальную сеть.
    Подсеть be-subnet.
    Общедоступный IP-адрес Выберите Отсутствует.
    Группа безопасности сети сетевого адаптера Выберите Отсутствует.
    Балансировка нагрузки
    Настроить эту виртуальную машину для работы с существующим решением по балансировке нагрузки? Выберите Да.
    Параметры балансировки нагрузки
    Параметры балансировки нагрузки Выберите Azure load balancing (Балансировка нагрузки Azure).
    Выберите подсистему балансировки нагрузки Выберите myLoadBalancer.
    Выберите серверный пул Выберите myBackendPool.
  5. Выберите Review + create (Просмотреть и создать).

  6. Проверьте параметры, а затем нажмите кнопку Создать.

  7. Вы можете повторно выполнить шаги 1–6, чтобы у вас было несколько виртуальных машин внутреннего сервера для обеспечения высокого уровня доступности.

Создание правила переадресации для конечной точки

  1. Войдите в систему и скопируйте скрипт ip_fwd.sh на виртуальные машины внутреннего сервера.

  2. Запустите скрипт со следующими параметрами:

    sudo ./ip_fwd.sh -i eth0 -f 1433 -a <FQDN/IP> -b 1433
    

    Задайте заполнитель <FQDN/IP> — это целевой IP-адрес SQL Server.

    Примечание.

    Если не добавить запись в зону Azure DNS, полное доменное имя не будет работать для локального сервера SQL Server.

  3. Выполните следующую команду и проверка iptables на виртуальных машинах внутреннего сервера. Вы можете видеть одну запись в iptables с вашим целевым IP-адресом.

    sudo iptables -t nat -v -L PREROUTING -n --line-number**
    

    Снимок экрана с изображением записи команды.

    Примечание.

    Если у вас несколько серверов SQL Server или других источников данных, необходимо определить несколько правил подсистемы балансировки нагрузки и записей таблицы IP-адресов с разными портами. В противном случае может возникнуть конфликт. Например,

    Порт в правиле подсистемы балансировки нагрузки Внутренний порт в правиле подсистемы балансировки нагрузки Выполнение команды на виртуальной машине внутреннего сервера
    SQL Server 1 1433 1433 sudo ./ip_fwd.sh -i eth0 -f 1433 -a <FQDN/IP> -b 1433
    SQL Server 2 1434 1434 sudo ./ip_fwd.sh -i eth0 -f 1434 -a <FQDN/IP> -b 1433

    Примечание.

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

  1. В меню слева выберите "Все службы", "Все ресурсы", а затем из списка ресурсов выберите фабрику данных.

  2. Выберите Создание и мониторинг, чтобы запустить на отдельной вкладке пользовательский интерфейс фабрики данных.

  3. Откройте вкладку Управление, а затем перейдите в раздел управляемых частных конечных точек.

  4. В разделе Managed private endpoints (Управляемые частные конечные точки) выберите + Создать.

  5. Выберите в списке элемент Служба приватных каналов Azure, а затем нажмите кнопку Продолжить.

  6. Введите имя частной конечной точки и выберите myPrivateLinkService в списке службы "Приватный канал".

  7. <FQDN> Добавьте целевой локальный СЕРВЕР SQL Server.

    Снимок экрана с изображением параметров частной конечной точки.

    Примечание.

    При развертывании SQL Server на виртуальной машине в виртуальной сети важно улучшить полное доменное имя путем добавления приватного канала. В противном случае он будет конфликтован с другими записями в параметре DNS. Например, можно просто изменить полное доменное имя SQL Server с sqlserver.westus.cloudapp.azure.net на sqlserver.privatelink.westus.cloudapp.azure.net.

    Примечание.

    В настоящее время ApplicationIntent и MultiSubnetFailover не поддерживаются в свойствах подключения SQL.

  8. Создайте частную конечную точку.

Создание связанной службы и проверка подключения

  1. Откройте вкладку Управление, а затем перейдите в раздел Связанные службы.

  2. В разделе Связанная служба выберите + Создать.

  3. Выберите в списке плитку SQL Server, а затем нажмите кнопку Продолжить.

    Снимок экрана с изображением страницы создания связанной службы.

  4. Включите режим Интерактивная разработка.

    Снимок экрана, на котором показано, как включить режим

  5. Укажите полное доменное имя локального сервера SQL Server, имя пользователя и пароль.

  6. Далее выберите Проверить подключение.

    Снимок экрана, на котором показана страница создания связанной службы сервера SQL Server.

    Примечание.

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

Устранение неполадок

Перейдите на виртуальную машину внутреннего сервера и убедитесь, что SQL Server работает: telnet <FQDN> 1433.

Перейдите к следующему учебнику, чтобы получить дополнительные сведения о доступе к Управляемому экземпляру SQL Microsoft Azure из управляемой виртуальной сети Фабрики данных с помощью частной конечной точки: