Приватный канал 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.

  1. Перейдите к серверному ресурсу на портале Azure согласно шагам, показанным на снимке экрана ниже

    • (1) выберите подключения частной конечной точки в области слева;
    • (2) отобразится список всех подключений частных конечных точек (PEC);
    • (3) соответствующая частная конечная точка (PE) создана Screenshot of all PECs
  2. Выберите отдельное PEC из списка, щелкнув его. Screenshot selected PEC

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

  4. После утверждения или отклонения в списке отобразится соответствующее состояние вместе с текстом ответа. Screenshot of all PECs after approval

  5. Наконец, если щелкнуть имя частной конечной точки, Screenshot of PEC details

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

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

Важно!

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

Отключение общего доступа к логическому серверу Azure SQL

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

Сначала убедитесь, что включены и настроены подключения к частной конечной точке. Затем, чтобы отключить общий доступ к логическому серверу, сделайте следующее:

  1. Перейдите в область Брандмауэр и виртуальные сети на логическом сервере Azure SQL.
  2. Установите флажок Запретить доступ к общедоступной сети.

Screenshot that shows selecting the Deny public network access option.

Проверка подключения к базе данных SQL из виртуальной машины Azure в той же виртуальной сети

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

  1. Запустите сеанс удаленного рабочего стола и подключитесь к виртуальной машине.

  2. Затем можно выполнить некоторые проверки подключения, чтобы убедиться, что виртуальная машина подключается к Базе данных SQL через частную конечную точку, используя следующие средства:

    1. Telnet
    2. Psping
    3. Nmap
    4. SQL Server Management Studio (SSMS)

Проверка подключения с помощью Telnet

Клиент Telnet — это компонент Windows, который можно использовать для проверки подключения. В зависимости от версии ОС Windows может потребоваться включить этот компонент явным образом.

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

>telnet 10.9.0.4 1433

После успешного подключения Telnet в окне командной строки появится пустой экран, как показано на приведенном ниже рисунке.

Diagram of 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-адресов.

Клиенты могут подключаться к частной конечной точке из той же виртуальной сети, одноранговой виртуальной сети в том же регионе или через виртуальную сеть для подключения между регионами. Кроме того, клиенты могут подключаться из локальной среды с помощью ExpressRoute, частного пиринга или VPN-туннелирования. Ниже приведена упрощенная схема, на которой показаны распространенные варианты использования.

Diagram of connectivity options

Кроме того, службы, которые не выполняются в виртуальной сети напрямую, но интегрированы с ней (например, веб-приложения или функции Службы приложений) также могут устанавливать частное подключение к базе данных. Дополнительные сведения об этом конкретном варианте использования см. в статье о сценарии архитектуры с частным подключением веб-приложений к базе данных 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 с помощью средств контроля сетевого доступа.

  1. Отключите весь трафик службы Azure к Базе данных SQL, проходящий через общедоступную конечную точку, установив для параметра Allow Azure Services (Разрешить использование служб Azure) значение Выкл. Убедитесь, что в правилах брандмауэра на уровне сервера и базы данных не разрешены никакие IP-адреса. Дополнительные сведения см. в статье Средства контроля сетевого доступа Базы данных SQL Azure и Azure Synapse Analytics.
  2. Разрешите трафик в базу данных SQL с использованием только частного IP-адреса виртуальной машины. Дополнительные сведения см. в статьях, посвященных конечной точке службы и правилам брандмауэра виртуальной сети.
  3. На виртуальной машине Azure ограничьте область исходящего подключения, используя группы безопасности сети (NSG) и теги службы, как показано ниже:
    • укажите правило NSG, разрешающее трафик для тега службы = SQL.WestUs — разрешение подключения к Базе данных SQL только в западной части США;
    • укажите правило NSG (с более высоким приоритетом), чтобы запретить трафик для тега службы = SQL — запрет подключений к Базе данных SQL во всех регионах.

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

Используя Приватный канал, клиенты теперь могут настроить средства контроля сетевого доступа, например группы безопасности сети, чтобы ограничить доступ к частной конечной точке. Затем отдельные ресурсы Azure PaaS сопоставляются с конкретными частными конечными точками. Злоумышленник внутри организации может получить доступ только к сопоставленному ресурсу PaaS (например, к базе данных SQL) и больше ни к какому другому ресурсу.

Дальнейшие действия