Приватный канал Azure для базы данных SQL Azure и Azure Synapse Analytics
ОБЛАСТЬ ПРИМЕНЕНИЯ:
База данных Azure SQL
Azure Synapse Analytics (только выделенный пул SQL (ранее — SQL DW))
Приватный канал позволяет подключаться к различным службам PaaS в Azure через частную конечную точку. Чтобы получить список служб PaaS, поддерживающих функции Приватного канала, перейдите на страницу документации по Приватному каналу. Частная конечная точка — это частный IP-адрес в определенной виртуальной сети и подсети.
Важно!
Эта статья применима к Базе данных Azure SQL и выделенному пулу SQL (ранее — SQL DW) в Azure Synapse Analytics. Эти параметры применяются ко всем базам данных Базы данных SQL Azure и выделенного пула SQL (ранее SQL DW), связанным с сервером. Для простоты термин "база данных" применяется к обеим из них. Аналогичным образом, сервером называется логический сервер, на котором размещены База данных SQL Azure и выделенный пул SQL (ранее — Хранилище данных SQL) в Azure Synapse Analytics. Эта статья не применима к Управляемому экземпляру SQL Azure или выделенным пулам SQL в рабочих областях Azure Synapse Analytics.
Настройка Приватного канала
Процесс создания
Частные конечные точки можно создавать с помощью портала Azure, PowerShell или Azure CLI:
Процесс утверждения
После того как администратор сети создаст частную конечную точку (PE), администратор SQL может управлять подключением частной конечной точки (PEC) к Базе данных SQL.
Перейдите к серверному ресурсу на портале Azure согласно шагам, показанным на снимке экрана ниже
- (1) выберите подключения частной конечной точки в области слева;
- (2) отобразится список всех подключений частных конечных точек (PEC);
- (3) соответствующая частная конечная точка (PE) создана

Выберите отдельное PEC из списка, щелкнув его.

Администратор SQL может утвердить или отклонить PEC и при необходимости добавить короткий текст ответа.

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

Наконец, если щелкнуть имя частной конечной точки,

отобразятся сведения о сетевом интерфейсе,

где, наконец, будет указан IP-адрес частной конечной точки.

Важно!
При добавлении подключения к частной конечной точке общедоступная маршрутизация к логическому серверу Azure SQL по умолчанию не блокируется. В области Брандмауэр и виртуальные сети параметр Запретить доступ к общедоступной сети по умолчанию не установлен. Чтобы отключить доступ к общедоступной сети, установите параметр Запретить доступ к общедоступной сети.
Отключение общего доступа к логическому серверу Azure SQL
В этом сценарии предположим, что вы хотите отключить весь общий доступ к логическому серверу Azure SQL и разрешить подключения только из виртуальной сети.
Сначала убедитесь, что включены и настроены подключения к частной конечной точке. Затем, чтобы отключить общий доступ к логическому серверу, сделайте следующее:
- Перейдите в область Брандмауэр и виртуальные сети на логическом сервере Azure SQL.
- Установите флажок Запретить доступ к общедоступной сети.

Проверка подключения к базе данных SQL из виртуальной машины Azure в той же виртуальной сети
В этом сценарии предположим, что вы создали виртуальную машину Azure с последней версией Windows в той же виртуальной сети, что и частная конечная точка.
Запустите сеанс удаленного рабочего стола и подключитесь к виртуальной машине.
Затем можно выполнить некоторые проверки подключения, чтобы убедиться, что виртуальная машина подключается к Базе данных SQL через частную конечную точку, используя следующие средства:
- Telnet
- Psping
- Nmap
- SQL Server Management Studio (SSMS)
Проверка подключения с помощью Telnet
Клиент Telnet — это компонент Windows, который можно использовать для проверки подключения. В зависимости от версии ОС Windows может потребоваться включить этот компонент явным образом.
Откройте окно командной строки после установки Telnet. Выполните команду Telnet и укажите IP-адрес и частную конечную точку базы данных SQL.
>telnet 10.9.0.4 1433
После успешного подключения Telnet в окне командной строки появится пустой экран, как показано на приведенном ниже рисунке.

Используйте команду PowerShell, чтобы проверить возможность подключения:
Test-NetConnection -computer myserver.database.windows.net -port 1433
Проверка подключения с помощью Psping
Psping можно использовать следующим образом, чтобы убедиться, что частная конечная точка прослушивает подключения через порт 1433.
Запустите PsPing следующим образом, указав полное доменное имя логического сервера SQL и порт 1433:
>psping.exe mysqldbsrvr.database.windows.net:1433
...
TCP connect to 10.9.0.4:1433:
5 iterations (warmup 1) ping test:
Connecting to 10.9.0.4:1433 (warmup): from 10.6.0.4:49953: 2.83ms
Connecting to 10.9.0.4:1433: from 10.6.0.4:49954: 1.26ms
Connecting to 10.9.0.4:1433: from 10.6.0.4:49955: 1.98ms
Connecting to 10.9.0.4:1433: from 10.6.0.4:49956: 1.43ms
Connecting to 10.9.0.4:1433: from 10.6.0.4:49958: 2.28ms
Выходные данные показывают, что Psping может проверить связь с частным IP-адресом, связанным с частной конечной точкой.
Проверка подключения с помощью Nmap
Nmap (модуль сопоставления сети) — это бесплатное средство с открытым кодом, используемое для обнаружения сетевых ресурсов и аудита безопасности. Дополнительные сведения и ссылку для скачивания см. на странице https://nmap.org. С помощью этого средства можно обеспечить прослушивание подключений через порт 1433 в частной конечной точке.
Запустите Nmap следующим образом, указав диапазон адресов подсети, в которой размещена частная конечная точка.
>nmap -n -sP 10.9.0.0/24
...
Nmap scan report for 10.9.0.4
Host is up (0.00s latency).
Nmap done: 256 IP addresses (1 host up) scanned in 207.00 seconds
В результате отображается, что работает один IP-адрес, который соответствует IP-адресу частной конечной точки.
Проверка подключения с помощью SQL Server Management Studio (SSMS)
Примечание
Используйте полное доменное имя (FQDN) сервера в строках подключения для клиентов (<server>.database.windows.net). Любые попытки входа, выполненные непосредственно по IP-адресу или с помощью полного доменного имени частного канала (<server>.privatelink.database.windows.net), будут завершаться ошибкой. Такое поведение предусмотрено, так как частная конечная точка направляет трафик в шлюз SQL в регионе. При этом для успешного входа нужно указать правильное значение FQDN.
Выполните следующие действия, чтобы использовать SSMS для подключения к базе данных SQL. После подключения к базе данных SQL с помощью SSMS в следующем запросе должен быть указан client_net_address, который соответствует частному IP-адресу виртуальной машины Azure, с которой вы подключаетесь.
select client_net_address from sys.dm_exec_connections
where session_id=@@SPID
Ограничения
Подключения к частной конечной точке поддерживают в качестве политики подключения только прокси-сервер.
Локальные подключения через частный пиринг
Когда клиенты подключаются к общедоступной конечной точке из локальных компьютеров, их IP-адреса необходимо добавить в брандмауэр на основе IP-адресов, используя правило брандмауэра на уровне сервера. Хотя эта модель отлично подходит для предоставления доступа к отдельным компьютерам для рабочих нагрузок разработки или тестирования, управлять ею в рабочей среде сложно.
Используя Приватный канал, клиенты могут включить перекрестный доступ к частной конечной точке с помощью ExpressRoute, частного пиринга или VPN-туннелирования. После этого клиенты могут отключить доступ через общедоступную конечную точку и не использовать брандмауэр на основе IP-адресов для разрешения каких-либо IP-адресов.
Варианты использования Приватного канала для Базы данных SQL Azure
Клиенты могут подключаться к частной конечной точке из той же виртуальной сети, одноранговой виртуальной сети в том же регионе или через виртуальную сеть для подключения между регионами. Кроме того, клиенты могут подключаться из локальной среды с помощью ExpressRoute, частного пиринга или VPN-туннелирования. Ниже приведена упрощенная схема, на которой показаны распространенные варианты использования.

Кроме того, службы, которые не выполняются в виртуальной сети напрямую, но интегрированы с ней (например, веб-приложения или функции Службы приложений) также могут устанавливать частное подключение к базе данных. Дополнительные сведения об этом конкретном варианте использования см. в статье о сценарии архитектуры с частным подключением веб-приложений к базе данных SQL Azure.
Подключение из виртуальной машины Azure в одноранговой виртуальной сети
Настройте пиринг виртуальных сетей, чтобы установить подключение к базе данных SQL из виртуальной машины Azure в одноранговой виртуальной сети.
Подключение из виртуальной машины Azure в виртуальной сети к среде виртуальной сети
Настройте подключение VPN-шлюза типа "виртуальная сеть — виртуальная сеть", чтобы установить подключение к базе данных SQL из виртуальной машины Azure в другом регионе или подписке.
Подключение из локальной среды через VPN
Чтобы установить подключение из локальной среды к базе данных SQL, выберите и реализуйте один из вариантов.
Рассмотрите также сценарии конфигурации DNS, так как FQDN службы может разрешаться в общедоступный IP-адрес.
Подключение из Azure Synapse Analytics к службе хранилища Azure с помощью Polybase и инструкции COPY
PolyBase и инструкцию COPY часто используют для загрузки данных в Azure Synapse Analytics из учетных записей службы хранилища Azure. Если учетная запись службы хранилища Azure, из которой загружаются данные, предоставляет доступ только к набору подсетей виртуальной сети через частные конечные точки, конечные точки службы или брандмауэры на основе IP-адресов, подключение из PolyBase и инструкции COPY к учетной записи будет прервано. Чтобы обеспечить возможность импорта и экспорта в хранилище Azure Synapse Analytics, подключенном к службе хранилища Azure, которая прикреплена к виртуальной сети, выполните действия, описанные здесь.
Предотвращение кражи данных
Кража данных в Базе данных SQL Azure происходит тогда, когда пользователь, например администратор базы данных, может извлекать данные из одной системы и перемещать их в другое расположение или систему за пределами организации. Например, пользователь перемещает данные в учетную запись хранения, принадлежащую третьей стороне.
Рассмотрим сценарий с пользователем, запускающим SQL Server Management Studio (SSMS) в виртуальной машине Azure, подключенной к базе данных SQL. Эта база данных находится в центре обработки данных в западной части США. В приведенном ниже примере показано, как ограничить доступ к общедоступным конечным точкам в Базе данных SQL с помощью средств контроля сетевого доступа.
- Отключите весь трафик службы Azure к Базе данных SQL, проходящий через общедоступную конечную точку, установив для параметра Allow Azure Services (Разрешить использование служб Azure) значение Выкл. Убедитесь, что в правилах брандмауэра на уровне сервера и базы данных не разрешены никакие IP-адреса. Дополнительные сведения см. в статье Средства контроля сетевого доступа Базы данных SQL Azure и Azure Synapse Analytics.
- Разрешите трафик в базу данных SQL с использованием только частного IP-адреса виртуальной машины. Дополнительные сведения см. в статьях, посвященных конечной точке службы и правилам брандмауэра виртуальной сети.
- На виртуальной машине Azure ограничьте область исходящего подключения, используя группы безопасности сети (NSG) и теги службы, как показано ниже:
- укажите правило NSG, разрешающее трафик для тега службы = SQL.WestUs — разрешение подключения к Базе данных SQL только в западной части США;
- укажите правило NSG (с более высоким приоритетом), чтобы запретить трафик для тега службы = SQL — запрет подключений к Базе данных SQL во всех регионах.
После завершения установки виртуальная машина Azure может подключаться к базам данных SQL только в западной части США. Но возможность подключения не ограничивается одной базой данных SQL. Виртуальная машина по-прежнему может подключаться к любым базам данных в западной части США, включая базы данных, которые не входят в подписку. Хотя мы сократили масштабы кражи данных в приведенном выше сценарии до определенного региона, мы не полностью устранили ее.
Используя Приватный канал, клиенты теперь могут настроить средства контроля сетевого доступа, например группы безопасности сети, чтобы ограничить доступ к частной конечной точке. Затем отдельные ресурсы Azure PaaS сопоставляются с конкретными частными конечными точками. Злоумышленник внутри организации может получить доступ только к сопоставленному ресурсу PaaS (например, к базе данных SQL) и больше ни к какому другому ресурсу.
Дальнейшие действия
- Общие сведения о методах защиты в Базе данных SQL Azure см. в этой статье.
- Общие сведения об архитектуре подключений к Базе данных SQL Azure см. в этой статье.
- Вы также можете узнать больше о сценарии архитектуры с частным подключением веб-приложений к базе данных SQL Azure, в котором веб-приложение за пределами виртуальной сети подключается к частной конечной точке базы данных.