Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения: Управляемый экземпляр SQL Azure
В этой статье описывается архитектура подключения управляющего экземпляра SQL Azure и то, как компоненты направляют трафик обмена данными для управляемого экземпляра SQL.
Обзор
В Управляемом экземпляре SQL экземпляр помещается в виртуальную сеть Azure и внутри подсети, выделенной для управляемых экземпляров SQL. Развертывание предоставляет следующие возможности:
- Безопасный IP-адрес локальной виртуальной сети (локальной виртуальной сети).
- возможность подключения локальной сети к Управляемому экземпляру SQL;
- Возможность подключения Управляемый экземпляр SQL к связанному серверу или другому локальному хранилищу данных.
- возможность подключения Управляемого экземпляра SQL к ресурсам Azure.
Высокоуровневая архитектура подключения
Управляемый экземпляр SQL состоит из компонентов службы, размещенных в выделенном наборе изолированных виртуальных машин, сгруппированных по аналогичным атрибутам конфигурации и присоединенных к виртуальному кластеру. Некоторые компоненты службы развертываются в подсети виртуальной сети клиента, а другие службы работают в защищенной сетевой среде, управляемой корпорацией Майкрософт.
Клиентские приложения могут подключаться к Управляемому экземпляру SQL и выполнять запросы, а также обновлять базы данных в виртуальной сети, в одноранговой виртуальной сети или в сети, подключенной через VPN или Azure ExpressRoute.
На следующей схеме показаны сущности, подключающиеся к Управляемому экземпляру SQL. В нем также показаны ресурсы, необходимые для взаимодействия с управляемым экземпляром SQL. Процесс обмена данными в нижней части схемы показывает, как приложения клиента и средства подключаются к Управляемому экземпляру SQL в качестве источников данных.
Управляемый экземпляр SQL — это однотенантная платформа как услуга, которая работает в двух плоскостях: плоскость данных и плоскость управления.
Плоскость данных развертывается в подсети клиента для совместимости, подключения и сетевой изоляции. Плоскость данных зависит от таких служб Azure, как Azure Storage, Microsoft Entra ID (ранее Azure Active Directory) для проверки подлинности, а также от служб сбора данных телеметрии. Вы увидите трафик, исходящий в подсетях, которые содержат Управляемый экземпляр SQL переход к этим службам.
Плоскость управления несет функции развертывания, управления и обслуживания основных служб с помощью автоматических агентов. Эти агенты имеют эксклюзивный доступ к вычислительным ресурсам, которые управляют службой. Для доступа к этим узлам нельзя использовать протокол SSH или удаленный рабочий стол. Все обмены данными уровня управления шифруются и подписываются с помощью сертификатов. Чтобы проверить надежность общения сторон, Управляемый экземпляр SQL постоянно проверяет эти сертификаты с помощью списков отзыва сертификатов.
Общие сведения об обмене данными
Приложения могут подключаться к Управляемому экземпляру SQL с помощью трех типов конечных точек: локальной конечной точки виртуальной сети, общедоступной конечной точкии частных конечных точек. Эти конечные точки демонстрируют различные свойства и поведение, подходящие для различных сценариев.
Локальная конечная точка виртуальной сети
Локальная конечная точка виртуальной сети является средством подключения к Управляемому экземпляру SQL по умолчанию.
Доменное имя локальной конечной точки виртуальной сети находится в виде<mi_name>.<dns_zone>.database.windows.net. Это доменное имя соответствует IP-адресу из диапазона адресов подсети. Используйте локальную конечную точку виртуальной сети для подключения к управляемому экземпляру SQL во всех стандартных сценариях подключения. Локальная конечная точка виртуальной сети принимает подключения через порт 1433.
Локальная конечная точка виртуальной сети поддерживает типы подключений прокси и перенаправления.
При подключении к локальной конечной точке виртуальной сети всегда используйте его доменное имя и разрешайте входящий трафик на необходимые порты во всем диапазоне подсети, так как базовый IP-адрес может иногда меняться.
Чтобы найти доменное имя локальной конечной точки виртуальной сети для экземпляра, выполните следующие действия.
- Портал Azure. На панели обзора в разделе "Основные сведения" значение узла отображает доменное имя локальной конечной точки виртуальной сети.
-
PowerShell:
Get-AzSqlInstance -ResourceGroupName <resource-group> -Name <mi-name>отображает доменное имя локальной конечной точки виртуальной сети в качествеfullyQualifiedDomainNameсвойства. -
Azure CLI:
az sql mi show -g <resource-group> -n <mi-name>отображает доменное имя локальной конечной точки виртуальной сети в качествеfullyQualifiedDomainNameсвойства.
Для повышения безопасности укажите зашифрованное подключение и не доверяйте сертификату. Дополнительные сведения см. в обзоре функций безопасности.
Общедоступная конечная точка
Общедоступная конечная точка — это доменное имя в виде <mi_name>.public.<dns_zone>.database.windows.net. Это доменное имя разрешает общедоступный IP-адрес, доступный из Интернета. Общедоступная конечная точка подходит для сценариев, когда управляемый экземпляр SQL должен быть доступен через общедоступный Интернет. Например, при подключении к нему из другой виртуальной сети, если пиринги или частные конечные точки недоступны. Общедоступные конечные точки обслуживают только клиентский трафик и не могут использоваться для репликации данных между двумя экземплярами, например, группы отработки отказа или связь управляемого экземпляра. Общедоступная конечная точка принимает подключения через порт 3342.
Общедоступная конечная точка всегда использует тип подключения прокси независимо от параметра типа подключения.
Имя домена общедоступной конечной точки экземпляра равно имени локальной конечной точки виртуальной сети с меткойpublic, вставленной между именем узла и остальным доменом: <mi-name>.public.<dns-zone>.database.windows.net
При подключении к общедоступной конечной точке всегда используйте его доменное имя и разрешайте входящий трафик через порт 3342 по всему диапазону подсети, так как базовый IP-адрес может иногда меняться.
Узнайте, как настроить общедоступную конечную точку в настройке общедоступной конечной точки для Управляемый экземпляр SQL Azure.
Частные конечные точки
Частная конечная точка — это необязательный фиксированный IP-адрес в другой виртуальной сети, которая ведет трафик к управляемому экземпляру SQL. Одна Управляемый экземпляр SQL Azure может иметь несколько частных конечных точек в нескольких виртуальных сетях. Частные конечные точки проводят только клиентский трафик и не могут использоваться для репликации данных между двумя экземплярами, такими как группы аварийного переключения или ссылка управляемого экземпляра. Частная конечная точка принимает подключения через порт 1433.
Частные конечные точки всегда используют тип подключения прокси независимо от параметра типа подключения.
Доменное имя частной конечной точки экземпляра равно имени локального домена виртуальной сети, если конечная точка не настроена по-другому. Это происходит, когда частная конечная точка и локальная конечная точка виртуальной сети находятся в одной виртуальной сети. Дополнительные сведения см. в статье Настройка разрешения доменных имен для частной конечной точки.
При подключении к частной конечной точке всегда используйте доменное имя, так как подключение к Управляемый экземпляр SQL Azure через его IP-адрес еще не поддерживается. Однако IP-адрес частной конечной точки не изменяется.
Дополнительные сведения о частных конечных точках и их настройке в Приватный канал Azure для Управляемый экземпляр SQL Azure.
Архитектура подключения виртуального кластера
На следующей схеме показан концептуальный макет архитектуры виртуального кластера:
Доменное имя локальной конечной точки виртуальной сети разрешает частный IP-адрес внутренней подсистемы балансировки нагрузки. Хотя это доменное имя зарегистрировано в зоне общедоступной системы доменных имен (DNS) и является общедоступным, его IP-адрес принадлежит диапазону адресов подсети и может быть достигнут только из своей виртуальной сети по умолчанию.
Подсистема балансировки нагрузки направляет трафик в шлюз Управляемый экземпляр SQL. Так как несколько управляемых экземпляров SQL могут выполняться в одном кластере, шлюз использует имя узла управляемого экземпляра SQL, как показано в строке подключения для перенаправления трафика в правильную службу ядра SQL.
Значение для этого dns-zone создается автоматически при создании кластера. Если только что созданный кластер размещает вторичный управляемый экземпляр SQL, он использует идентификатор зоны с основным кластером.
Требования к сети
Управляемый экземпляр SQL Azure требует настройки делегированной подсети определенными способами, которые можно достичь с помощью конфигурации подсети, предоставляемой службой. Помимо того, что требует служба, пользователи имеют полный контроль над конфигурацией сети подсети, например:
- Разрешение или блокировка трафика на некоторых или всех портах.
- Добавление записей в таблицу маршрутов для маршрутизации трафика через устройства виртуальной сети или шлюз.
- Настройка настраиваемого разрешения DNS.
- Настройка пиринга или виртуальной частной сети (VPN).
Чтобы соответствовать критериям конфигурации сети в соглашении об уровне обслуживания для Microsoft Online Services, виртуальная сеть и подсеть, в которой развернут управляемый экземпляр SQL, должны соответствовать следующим требованиям:
- Выделенная подсеть: Управляемый экземпляр SQL используется подсеть, можно делегировать только службе Управляемый экземпляр SQL. Подсеть не может быть подсетью шлюза, и вы можете развертывать только Управляемый экземпляр SQL ресурсы в подсети.
-
Делегирование подсети: Управляемый экземпляр SQL подсеть должна быть делегирована поставщику
Microsoft.Sql/managedInstancesресурсов. - Группа безопасности сети: группа безопасности сети должна быть связана с подсетью Управляемый экземпляр SQL. Группу безопасности сети можно использовать для управления доступом к конечной точке данных управляемого экземпляра SQL, отфильтровав входящий трафик через порт 1433. Служба автоматически подготавливает правила и сохраняет их в актуальном состоянии, чтобы обеспечить непрерывный поток трафика управления.
- Таблица маршрутов: таблица маршрутов должна быть связана с подсетью Управляемый экземпляр SQL. Вы можете добавить записи в эту таблицу маршрутов, например для маршрутизации трафика в локальную среду через шлюз виртуальной сети или добавить маршрут по умолчанию 0.0.0.0/0, направляюющий весь трафик через виртуальное сетевое устройство, например брандмауэр. Управляемый экземпляр SQL Azure автоматически подготавливает и управляет необходимыми записями в таблице маршрутов.
- Достаточное количество IP-адресов. Подсеть Управляемого экземпляра SQL должна иметь по крайней мере 32 IP-адресов. Дополнительные сведения см. в статье об определении размера подсети для Управляемого экземпляра SQL. После настройки управляемого экземпляра SQL можно развернуть управляемые экземпляры 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.
-
Обязательные записи DNS: управляемые экземпляры SQL зависят от правильного разрешения определенных доменных имен. Эти доменные имена не должны быть переопределены в своих виртуальных сетях через частные зоны Azure DNS или настраиваемым DNS-сервером. В противном случае управляемые экземпляры SQL не будут развертываться или могут стать недоступными. Следующие домены не должны быть переопределены:
windows.net,database.windows.net,core.windows.net,blob.core.windows.net,table.core.windows.net,management.core.windows.net,monitoring.core.windows.net,queue.core.windows.net,graph.windows.net,login.microsoftonline.com,login.windows.net,servicebus.windows.netиvault.azure.net. Вы по-прежнему можете создавать частные конечные точки в виртуальной сети управляемого экземпляра SQL, даже для ресурсов в указанных выше доменах. Частные конечные точки используют механизм DNS, который не требует, чтобы локальный DNS-сервер стал доверенным для всей зоны. - Тег AzurePlatformDNS: использование тега службы AzurePlatformDNS для блокировки разрешения DNS платформы может отображаться Управляемый экземпляр SQL недоступно. Несмотря на то, что Управляемый экземпляр SQL поддерживает определяемый клиентом DNS для разрешения DNS внутри движка, для операций платформы используется Azure DNS.
Автоматизированное управление конфигурацией подсети в службе
Для повышения безопасности службы, управляемости и доступности Управляемый экземпляр SQL использует конфигурацию подсети, помогающую службам, и политику намерения сети в инфраструктуре виртуальной сети Azure для настройки сети, связанных компонентов и таблицы маршрутов, чтобы обеспечить соблюдение минимальных требований к Управляемый экземпляр SQL.
Автоматически настроенные правила безопасности сети и таблицы маршрутов отображаются клиенту и заносятся в одно из этих префиксов:
-
Microsoft.Sql-managedInstances_UseOnly_mi-для обязательных правил и маршрутов -
Microsoft.Sql-managedInstances_UseOnly_mi-optional-для необязательных правил и маршрутов
Для получения дополнительной информации см. конфигурацию подсети с поддержкой служб.
Дополнительные сведения об архитектуре подключения и трафике управления см . в разделе "Высокоуровневая архитектура подключения".
Ограничения сети
Ниже приведены ограничения на функции виртуальной сети и трафик.
- Частные подсети: развертывание управляемых экземпляров SQL в частных подсетях (где исходящий доступ по умолчанию отключен) в настоящее время не поддерживается.
- Шифрование виртуальной сети. Развертывание и эксплуатация управляемых экземпляров SQL в виртуальных сетях, где шифрование виртуальной сети Azure в настоящее время не поддерживается.
- Почта базы данных во внешние ретрансляторы SMTP через порт 25. Отправка почты базы данных через порт 25 внешним службам электронной почты доступна только для определенных типов подписок в Microsoft Azure. Экземпляры других типов подписок должны использовать другой порт (например, 587) для связи с внешними ретрансляторами SMTP. В противном случае экземпляры могут не доставлять почту базы данных. Подробные сведения см. в статье Устранение проблем с исходящими SMTP-подключениями в Azure.
- Пиринг Майкрософт. Включение пиринга Майкрософт в каналах ExpressRoute, которые пиринговые каналы напрямую или транзитивно связаны с виртуальной сетью, в которой Управляемый экземпляр SQL находится, влияет на поток трафика между Управляемый экземпляр SQL компонентами в виртуальной сети и службами, от которых она зависит. Результат проблем с доступностью. Управляемый экземпляр SQL развертывания в виртуальной сети, в которую уже включен пиринг Майкрософт, должны завершиться сбоем.
- Пиринг глобальной виртуальной сети: подключение к пирингу между виртуальными сетями в регионах Azure не работает для управляемых экземпляров SQL, размещенных в подсетях, созданных до 9 сентября 2020 г.
- Пиринг между виртуальными сетями — конфигурация. При установке пиринга между виртуальными сетями, содержащими подсети с управляемыми экземплярами SQL, такие подсети должны использовать разные таблицы маршрутов и группы безопасности сети (NSG). Повторное использование таблицы маршрутов и группы безопасности сети в двух или нескольких подсетях, участвующих в пиринге виртуальной сети, приведет к проблемам с подключением во всех подсетях с помощью этих таблиц маршрутов или группы безопасности сети, а также приведет к сбою операций управления Управляемый экземпляр SQL.
- Шлюз NAT. Использование NAT виртуальной сети Azure для управления исходящим подключением с определенным общедоступным IP-адресом в настоящее время не поддерживается.
- IP версии 6 для виртуальной сети Azure. Вероятно, при развертывании Управляемого экземпляра SQL в виртуальных сетях IP версии 4 или 6 с двумя стеками произойдет сбой. Связывание группы безопасности сети или таблицы маршрутов с определяемыми пользователем маршрутами (определяемыми пользователем), содержащими префиксы адресов IPv6 с префиксами Управляемый экземпляр SQL подсети, отрисовывает Управляемый экземпляр SQL недоступно. Кроме того, добавление префиксов IPv6-адресов в группу безопасности сети или UDR, которая уже связана с подсетью управляемого экземпляра SQL, делает управляемый экземпляр SQL недоступным. Управляемый экземпляр SQL развертывания в подсети с группой безопасности сети и UDR, у которых уже есть префиксы IPv6, должны завершиться ошибкой.
- Протокол TLS 1.2 применяется к исходящим подключениям: начиная с января 2020 года корпорация Майкрософт применяет TLS 1.2 для трафика внутри службы Azure. Для Управляемый экземпляр SQL это привело к принудительному применению TLS 1.2 для исходящих подключений, используемых для репликации и подключений связанного сервера к SQL Server. Если вы используете версию SQL Server ранее 2016 года с Управляемый экземпляр SQL, убедитесь, что вы применяете обновления TLS 1.2.
- Внутренний резервный механизм Azure DNS: экземпляры SQL Managed Instance зависят от функционирования разрешения DNS в своих виртуальных сетях. Если виртуальная сеть управляемого экземпляра SQL настроена на использование пользовательских DNS-серверов и dns-запроса, выданного пользовательским DNS-серверам, не выполняется в течение определенного интервала (1–2 секунд), управляемый экземпляр SQL повторит запрос к Azure DNS в этой виртуальной сети.
Связанный контент
- Обзор см. в статье Что такое управляемый экземпляр SQL Azure?.
- Дополнительные сведения см. в следующем разделе:
- Архитектура виртуального кластера.
- Конфигурация подсети с поддержкой служб.
- Настройте новую виртуальную сеть Azure или существующую виртуальную сеть Azure, где можно развернуть Управляемый экземпляр SQL.
- Вычислите размер подсети, где будет развернут Управляемый экземпляр SQL.
- Узнайте, как создать управляемый экземпляр SQL:
- На портале Azure.
- с помощью PowerShell;
- с помощью шаблона Azure Resource Manager;
- С помощью шаблона Azure Resource Manager с прыжком и SQL Server Management Studio.