Средства контроля сетевого доступа базы данных SQL Azure и Azure Synapse Analytics

Применимо к:База данных SQL Azure Azure Synapse Analytics (только выделенные пулы SQL)

При создании логического сервера из портал Azure для База данных SQL Azure и Azure Synapse Analytics результатом является общедоступная конечная точка в формате yourservername.database.windows.net.

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

  • Разрешить службам и ресурсам Azure доступ к этому серверу: если включено, другие ресурсы в пределах границ Azure, например виртуальная машина Azure, могут получить доступ к База данных SQL
  • Правила брандмауэра IP-адресов. Используйте эту функцию, чтобы явно разрешить подключения с определенного IP-адреса, например с локальных компьютеров

Вы также можете разрешить закрытый доступ к базе данных из виртуальных сетей, используя:

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

Важно!

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

Подробное описание этих элементов управления доступом и их действия см. в приведенном ниже видеоролике:

Параметр "Разрешить службы Azure"

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

Этот параметр также можно изменить с помощью параметра сети после создания логического сервера следующим образом:

Screenshot of manage server firewall

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

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

Однако это влияет на следующие функции, выполняемые на виртуальных машинах в Azure, которые не являются частью виртуальной сети и поэтому подключаются к базе данных через IP-адрес Azure:

Служба импорта и экспорта

Импорт службы экспорта не работает, если разрешить службам и ресурсам Azure доступ к этому серверу не включен. Однако вы можете обойти проблему , вручную запустив SqlPackage из виртуальной машины Azure или выполнив экспорт непосредственно в коде с помощью API DACFx.

Синхронизация данных

Чтобы использовать функцию синхронизации данных с разрешением доступа к этому серверу службам и ресурсам Azure, необходимо создать отдельные записи правил брандмауэра, чтобы добавить IP-адреса из тега службы Sql для региона, в котором размещена база данных Концентратора. Добавьте эти правила брандмауэра на уровне сервера на серверы, на которых размещены центральная и рядовая базы данных (которые могут находиться в разных регионах)

Используйте следующий сценарий PowerShell для создания IP-адресов, соответствующих тегу службы SQL для региона "Западная часть США"

PS C:\>  $serviceTags = Get-AzNetworkServiceTag -Location eastus2
PS C:\>  $sql = $serviceTags.Values | Where-Object { $_.Name -eq "Sql.WestUS" }
PS C:\> $sql.Properties.AddressPrefixes.Count
70
PS C:\> $sql.Properties.AddressPrefixes
13.86.216.0/25
13.86.216.128/26
13.86.216.192/27
13.86.217.0/25
13.86.217.128/26
13.86.217.192/27

Совет

Get-AzNetworkServiceTag возвращает глобальный диапазон для тега службы SQL, несмотря на указание параметра расположения. Не забудьте выполнить фильтрацию по региону, где размещена центральная база данных, используемая группой синхронизации

Обратите внимание, что выходные данные скрипта PowerShell находятся в нотации бесклассовой междоменной маршрутизации (CIDR). Необходимо выполнить преобразование в формат начального и конечного IP-адресов с помощью Get-IPrangeStartEnd.ps1 следующим образом:

PS C:\> Get-IPrangeStartEnd -ip 52.229.17.93 -cidr 26
start        end
-----        ---
52.229.17.64 52.229.17.127

Этот дополнительный скрипт PowerShell можно использовать для преобразования всех IP-адресов из CIDR в формат начального и конечного IP-адресов.

PS C:\>foreach( $i in $sql.Properties.AddressPrefixes) {$ip,$cidr= $i.split('/') ; Get-IPrangeStartEnd -ip $ip -cidr $cidr;}
start          end
-----          ---
13.86.216.0    13.86.216.127
13.86.216.128  13.86.216.191
13.86.216.192  13.86.216.223

Теперь их можно добавить в виде отдельных правил брандмауэра, а затем отключить параметр Разрешить службам и ресурсам Azure доступ к этому серверу.

Правила брандмауэра для IP-адресов

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

Правила брандмауэра для виртуальной сети

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

Терминология сети Azure

При просмотре правил брандмауэра виртуальной сети учитывайте следующие термины сети Azure.

Виртуальная сеть. С вашей подпиской Azure могут быть связаны виртуальные сети.

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

Конечные точки служб для виртуальной сети. Конечная точка службы для виртуальной сети — это подсеть, значения свойств которой включают в себя одно или несколько формальных имен типов службы Azure. В этой статье мы рассмотрим тип Microsoft.Sql, который относится к службе Azure, которая называется Базой данных SQL.

Правило виртуальной сети. Правило виртуальной сети для сервера — это подсеть, которая указана в списке управления доступом (ACL) сервера. Для включения в ACL для базы данных SQL подсеть должна содержать имя типа Microsoft.Sql. Правило виртуальной сети предписывает серверу принимать подключения от всех узлов, находящихся в подсети.

Правила брандмауэра для IP-адресов и виртуальной сети

Брандмауэр базы данных SQL Azure позволяет указать диапазоны IP-адресов, подключения с которых принимаются базой данных SQL. Эта методика хорошо подходит для постоянных IP-адресов, которые находятся за пределами частной сети Azure. Однако виртуальные машины в частной сети Azure настроены с использованием динамических IP-адресов. Динамические IP-адреса могут измениться после перезапуска виртуальной машины и, в свою очередь, сделать недействительным правило брандмауэра на основе IP-адресов. Было бы неразумно указывать динамический IP-адрес в правиле брандмауэра в рабочей среде.

Это ограничение можно обойти, получив для виртуальной машины статический IP-адрес. Дополнительные сведения см. в статье Создание виртуальной машины со статическим общедоступным IP-адресом с помощью портала Azure. Однако применение статических IP-адресов может усложнить управление и создать дополнительные расходы при увеличении масштаба среды.

Правила виртуальной сети проще устанавливать и управлять доступом из определенной подсети, содержащей ваши виртуальные машины.

Примечание.

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

Приватный канал позволяет подключаться к серверу через частную конечную точку. Частная конечная точка — это частный IP-адрес в определенной виртуальной сети и подсети.

Следующие шаги