Архитектура подключения к Управляемому экземпляру SQL Azure

Область применения: Управляемый экземпляр SQL Azure

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

Обзор

В Управляемый экземпляр SQL экземпляр помещается в виртуальную сеть Azure и внутри подсети, выделенной для управляемых экземпляров. Развертывание предоставляет следующие возможности:

  • Безопасный IP-адрес локальной виртуальной сети (локальной виртуальной сети).
  • возможность подключения локальной сети к Управляемому экземпляру SQL;
  • Возможность подключения Управляемый экземпляр SQL к связанному серверу или другому локальному хранилищу данных.
  • возможность подключения Управляемого экземпляра SQL к ресурсам Azure.

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

Управляемый экземпляр SQL состоит из компонентов службы, размещенных в выделенном наборе изолированных виртуальных машин, сгруппированных по аналогичным атрибутам конфигурации и присоединенных к виртуальному кластеру. Некоторые компоненты службы развертываются в подсети виртуальной сети клиента, а другие службы работают в защищенной сетевой среде, которой управляет Корпорация Майкрософт.

Схема, показывющая высокоуровневую архитектуру подключения для Управляемый экземпляр SQL Azure после ноября 2022 года.

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

На следующей схеме показаны сущности, подключающиеся к Управляемому экземпляру SQL. На ней также показаны ресурсы, необходимые для взаимодействия с управляемым экземпляром. Процесс обмена данными в нижней части схемы показывает, как приложения клиента и средства подключаются к Управляемому экземпляру SQL в качестве источников данных.

Схема, показывающая сущности в архитектуре подключения для Управляемый экземпляр SQL Azure после ноября 2022 года.

Управляемый экземпляр SQL — это однотенантная платформа как услуга, которая работает в двух плоскостях: плоскость данных и плоскость управления.

Плоскость данных развертывается в подсети клиента для совместимости, подключения и сетевой изоляции. Плоскость данных зависит от служб Azure, таких как служба хранилища Azure, идентификатор Microsoft Entra (ранее Azure Active Directory) для проверки подлинности и служб сбора данных телеметрии. Вы увидите трафик, исходящий в подсетях, которые содержат Управляемый экземпляр SQL переход к этим службам.

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

Общие сведения об обмене данными

Приложения могут подключаться к Управляемый экземпляр SQL через три типа конечных точек. Эти конечные точки служат различным сценариям и демонстрируют различные сетевые свойства и поведение.

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

Локальная конечная точка виртуальной сети

Локальная конечная точка виртуальной сети является средством подключения к Управляемому экземпляру SQL по умолчанию. Локальная конечная точка виртуальной сети — это доменное имя в виде <mi_name>.<dns_zone>.database.windows.net разрешения НА IP-адрес из пула адресов подсети, следовательно, локальная виртуальная сеть или конечная точка, локальная в виртуальной сети. Локальная конечная точка виртуальной сети может использоваться для подключения к Управляемый экземпляр SQL во всех стандартных сценариях подключения.

Локальные конечные точки виртуальной сети поддерживают как прокси-сервер, так и типы подключений перенаправления.

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

Общедоступная конечная точка

Общедоступная конечная точка — это необязательное доменное имя в виде <mi_name>.public.<dns_zone>.database.windows.net разрешения на общедоступный IP-адрес, доступный из Интернета. Общедоступная конечная точка позволяет трафику TDS обращаться только к Управляемый экземпляр SQL через порт 3342 и не может использоваться для сценариев интеграции, таких как группы отработки отказа, Управляемый экземпляр связь и аналогичные технологии.

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

Общедоступная конечная точка всегда использует тип прокси-подключения независимо от параметра типа подключения.

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

Частные конечные точки

Частная конечная точка — это необязательный фиксированный IP-адрес в другой виртуальной сети, которая ведет трафик к управляемому экземпляру SQL. Одна Управляемый экземпляр SQL Azure может иметь несколько частных конечных точек в нескольких виртуальных сетях. Частные конечные точки позволяют трафику TDS достичь Управляемый экземпляр SQL через порт 1433 и не может использоваться для сценариев интеграции, таких как группы отработки отказа, Управляемый экземпляр связь и другие аналогичные технологии.

При подключении к частной конечной точке всегда используйте доменное имя, так как подключение к Управляемый экземпляр SQL Azure через его IP-адрес еще не поддерживается.

Частные конечные точки всегда используют тип прокси-подключения независимо от параметра типа подключения.

Дополнительные сведения о частных конечных точках и их настройке в Приватный канал Azure для Управляемый экземпляр SQL Azure.

Архитектура подключения виртуального кластера

На следующей схеме показан концептуальный макет архитектуры виртуального кластера:

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

Доменное имя локальной конечной точки виртуальной сети разрешает частный IP-адрес внутренней подсистемы балансировки нагрузки. Хотя это доменное имя зарегистрировано в зоне общедоступной системы доменных имен (DNS) и является общедоступным, его IP-адрес принадлежит диапазону адресов подсети и может быть достигнут только из своей виртуальной сети по умолчанию.

Подсистема балансировки нагрузки направляет трафик в шлюз Управляемый экземпляр SQL. Так как несколько управляемых экземпляров могут выполняться в одном кластере, шлюз использует имя узла Управляемый экземпляр SQL, как показано в строка подключения для перенаправления трафика в правильную службу ядра SQL.

Значение для этого dns-zone создается автоматически при создании кластера. Если в новом кластере размещается вторичный управляемый экземпляр, он использует идентификатор зоны совместно с основным кластером.

Требования к сети

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

  • Разрешение или блокировка трафика на некоторых или всех портах
  • Добавление записей в таблицу маршрутов для маршрутизации трафика через устройства виртуальной сети или шлюз
  • Настройка пользовательского разрешения DNS или
  • Настройка пиринга или VPN

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

  • Выделенная подсеть: Управляемый экземпляр SQL используется подсеть, можно делегировать только службе Управляемый экземпляр SQL. Подсеть не может быть подсетью шлюза, и вы можете развертывать только Управляемый экземпляр SQL ресурсы в подсети.
  • Делегирование подсети: Управляемый экземпляр SQL подсеть должна быть делегирована поставщику Microsoft.Sql/managedInstances ресурсов.
  • Группа безопасности сети: группа безопасности сети должна быть связана с подсетью Управляемый экземпляр SQL. Группу безопасности сети можно использовать для управления доступом к конечной точке данных Управляемый экземпляр SQL путем фильтрации трафика через порт 1433 и порты 11000-11999 при настройке Управляемый экземпляр SQL для подключений перенаправления. Служба автоматически подготавливает правила и сохраняет их в актуальном состоянии, чтобы обеспечить непрерывный поток трафика управления.
  • Таблица маршрутов: таблица маршрутов должна быть связана с подсетью Управляемый экземпляр SQL. Вы можете добавить записи в эту таблицу маршрутов, например для маршрутизации трафика в локальную среду через шлюз виртуальной сети или добавить маршрут по умолчанию 0.0.0.0/0, направляюющий весь трафик через виртуальное сетевое устройство, например брандмауэр. Управляемый экземпляр SQL Azure автоматически подготавливает и управляет необходимыми записями в таблице маршрутов.
  • Достаточное количество IP-адресов. Подсеть Управляемого экземпляра SQL должна иметь по крайней мере 32 IP-адресов. Дополнительные сведения см. в статье об определении размера подсети для Управляемого экземпляра SQL. Вы можете развернуть управляемые экземпляры в имеющейся сети после ее настройки в соответствии с требованиями к сети для Управляемого экземпляра SQL. В противном случае создайте сеть и подсеть.
  • Разрешено политиками Azure. Если вы используете Политика Azure для предотвращения создания или изменения ресурсов в области, включающей подсеть Управляемый экземпляр SQL или виртуальную сеть, политики не должны препятствовать Управляемый экземпляр SQL управлению внутренними ресурсами. Следующие ресурсы необходимо исключить из эффектов запрета политики для нормальной работы:
    • Ресурсы типа Microsoft.Network/serviceEndpointPolicies, когда имя ресурса начинается с \_e41f87a2\_
    • Все ресурсы типа Microsoft.Network/networkIntentPolicies
    • Все ресурсы типа Microsoft.Network/virtualNetworks/subnets/contextualServiceEndpointPolicies
  • Блокировка виртуальной сети: блокировка виртуальной сети выделенной подсети, родительской группы ресурсов или подписки может иногда влиять на операции управления и обслуживания Управляемый экземпляр SQL. Обратите особое внимание при использовании блокировок ресурсов.
  • Трафик репликации: трафик репликации для групп отработки отказа между двумя управляемыми экземплярами должен быть прямым, а не перенаправлен через сеть концентратора.
  • Пользовательский DNS-сервер: если виртуальная сеть настроена на использование пользовательского DNS-сервера, DNS-сервер должен иметь возможность разрешать общедоступные записи DNS. Использование таких функций, как проверка подлинности Microsoft Entra, может потребовать разрешения более полных доменных имен (FQDN). Дополнительные сведения см. в разделе "Разрешение частных DNS-имен" в Управляемый экземпляр SQL Azure.

Автоматизированное управление конфигурацией подсети в службе

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

Автоматически настроенные правила безопасности сети и таблицы маршрутов отображаются клиенту и заносятся в одно из этих префиксов:

  • Microsoft.Sql-managedInstances_UseOnly_mi- для обязательных правил и маршрутов
  • Microsoft.Sql-managedInstances_UseOnly_mi-optional- для необязательных правил и маршрутов

Дополнительные сведения см . в конфигурации подсети с поддержкой служб.

Дополнительные сведения об архитектуре подключения и трафике управления см . в разделе "Высокоуровневая архитектура подключения".

Ограничения сети

  • Протокол TLS 1.2 применяется к исходящим подключениям: начиная с января 2020 года корпорация Майкрософт применяет TLS 1.2 для трафика внутри службы Azure. Для Управляемый экземпляр SQL это привело к принудительному применению TLS 1.2 для исходящих подключений, используемых для репликации и подключений связанного сервера к SQL Server. Если вы используете версию SQL Server ранее 2016 года с Управляемый экземпляр SQL, убедитесь, что вы применяете обновления TLS 1.2.

Следующие функции виртуальной сети сейчас не поддерживаются для Управляемого экземпляра SQL:

  • Частные подсети: развертывание управляемых экземпляров в частных подсетях (где исходящий доступ по умолчанию отключен) в настоящее время не поддерживается.
  • Почта базы данных во внешние ретрансляторы SMTP через порт 25. Отправка почты базы данных через порт 25 внешним службам электронной почты доступна только для определенных типов подписок в Microsoft Azure. Экземпляры других типов подписок должны использовать другой порт (например, 587) для связи с внешними ретрансляторами SMTP. В противном случае экземпляры могут не доставлять почту базы данных. Подробные сведения см. в статье Устранение проблем с исходящими SMTP-подключениями в Azure.
  • Пиринг Майкрософт. Включение пиринга Майкрософт в каналах ExpressRoute, которые пиринговые каналы напрямую или транзитивно связаны с виртуальной сетью, в которой Управляемый экземпляр SQL находится, влияет на поток трафика между Управляемый экземпляр SQL компонентами в виртуальной сети и службами, от которых она зависит. Результат проблем с доступностью. Управляемый экземпляр SQL развертывания в виртуальной сети, в которую уже включен пиринг Майкрософт, должны завершиться сбоем.
  • Пиринг между виртуальными сетями — глобальный: подключение к пирингу между виртуальными сетями в регионах Azure не работает для экземпляров Управляемый экземпляр SQL, размещенных в подсетях, созданных до 9 сентября 2020 г.
  • Пиринг между виртуальными сетями — конфигурация. При установке пиринга между виртуальными сетями, содержащими подсети с Управляемый экземпляр SQL, такие подсети должны использовать разные таблицы маршрутов и группы безопасности сети (NSG). Повторное использование таблицы маршрутов и группы безопасности сети в двух или нескольких подсетях, участвующих в пиринге виртуальной сети, приведет к проблемам с подключением во всех подсетях с помощью этих таблиц маршрутов или группы безопасности сети, а также приведет к сбою операций управления Управляемый экземпляр SQL.
  • Тег AzurePlatformDNS: использование тега службы AzurePlatformDNS для блокировки разрешения DNS платформы может отображаться Управляемый экземпляр SQL недоступно. Хотя Управляемый экземпляр SQL поддерживает определяемые клиентом DNS для разрешения DNS внутри подсистемы, существует зависимость от платформы DNS для операций платформы.
  • Шлюз NAT. Использование Azure виртуальная сеть NAT для управления исходящим подключением с определенным общедоступным IP-адресом отображается Управляемый экземпляр SQL недоступно. В настоящее время служба Управляемый экземпляр SQL ограничена использованием базовой подсистемы балансировки нагрузки, которая не обеспечивает сосуществование входящих и исходящих потоков с azure виртуальная сеть NAT.
  • IP версии 6 для виртуальной сети Azure. Вероятно, при развертывании Управляемого экземпляра SQL в виртуальных сетях IP версии 4 или  6 с двумя стеками произойдет сбой. Связывание группы безопасности сети или таблицы маршрутов с определяемыми пользователем маршрутами (определяемыми пользователем), содержащими префиксы адресов IPv6 с префиксами Управляемый экземпляр SQL подсети, отрисовывает Управляемый экземпляр SQL недоступно. Кроме того, добавление префиксов IPv6-адресов в группу безопасности сети или UDR, которая уже связана с подсетью управляемого экземпляра, отображает Управляемый экземпляр SQL недоступно. Управляемый экземпляр SQL развертывания в подсети с группой безопасности сети и UDR, у которых уже есть префиксы IPv6, должны завершиться ошибкой.
  • Записи DNS для зарезервированных службы Майкрософт. Следующие доменные имена зарезервированы и их разрешение, как определено в Azure DNS, не должно быть переопределено в управляемых экземплярах виртуальной сети: , blob.core.windows.netcore.windows.netlogin.microsoftonline.comlogin.windows.netservicebus.windows.netdatabase.windows.netmanagement.core.windows.netvault.azure.nettable.core.windows.netmonitoring.core.windows.netqueue.core.windows.netgraph.windows.netwindows.net Развертывание Управляемый экземпляр SQL в виртуальной сети, в которой одно или несколько таких доменных имен переопределяются через частные зоны Azure DNS или настраиваемый DNS-сервер, завершится сбоем. Переопределение разрешения этих доменов в виртуальной сети, содержащей управляемый экземпляр, отображает, что управляемый экземпляр недоступен. Сведения о настройке записей DNS Приватный канал в виртуальной сети, содержащей управляемые экземпляры, см. в разделе конфигурации DNS частной конечной точки Azure.