
Я настроил Azure SQL Server с эластичным пулом, в котором создал тестовую базу данных.
Я также настроил виртуальную сеть Azure и VPN Point-to-Site. Виртуальная сеть имеет 2 подсети — одну для GatewaySubnet и другую, в которую я поместил виртуальную машину Windows.
Я успешно настроил доступ к удаленному рабочему столу виртуальной машины и убедился, что могу подключиться к удаленному рабочему столу только с помощью внутреннего IP-адреса сервера, когда я подключен к VPN (я также запретил доступ по RDP через внешний IP-адрес, но это не имеет отношения к моему вопросу).
Я хотел бы ограничить и контролировать доступ к SQL Server, насколько это возможно. Я установил «Разрешить доступ к службам Azure» на «ВЫКЛ». Я также добавил обе подсети моих виртуальных сетей в настройки брандмауэра SQL Server и включил конечную точку «Microsoft.Sql».
Я убедился, что могу подключиться к SQL Server из копии SQL Server Management Studio, установленной на виртуальной машине.
Однако - я не могу подключиться с помощью SQL Server Management Studio с моего настольного компьютера, даже когда я подключен через VPN. Я хотел бы иметь возможность сделать это без добавления моего клиентского IP-адреса непосредственно в брандмауэр. У нас есть несколько удаленных разработчиков (все на динамических IP-адресах), которым потребуется доступ к серверам, и я не хочу накладных расходов на управление этими правилами брандмауэра. Я бы лучше просто дал им VPN-клиент.
Заранее спасибо...
решение1
Я только что получил ответ от службы поддержки Azure по этому вопросу (03.03.2018), и они подтвердили, что то, чего я пытаюсь добиться, в настоящее время невозможно.
решение2
Это более обходной путь, чем использование VPN-шлюза.
Вы можете попробовать настроить VPN-сервер с NAT на своей виртуальной машине, разрешить IP-адрес виртуальной машины в Azure SQL, а затем ваши разработчики подключатся к VPN-серверу на виртуальной машине.
NAT обманет Azure SQL, заставив его думать, что клиенты — это виртуальные машины.
решение3
Azure SQL использует шлюзы, чтобы определить, к каким кластерам клиент хочет подключиться:https://docs.microsoft.com/en-us/azure/sql-database/sql-database-connectivity-архитектура.
Поскольку шлюзы имеют фиксированные IP-адреса, я просто добавил статический маршрут в интерфейс VPN для конкретного SQL GW.
Например, если вы получаете диапазон IP-адресов от VPN 192.168.1.0/24 и вам необходимо подключиться к SQL в регионе AustraliaEast, выполните следующие команды:
add route 191.238.66.109 mask 255.255.255.255 192.168.1.1
add route 13.75.149.87 mask 255.255.255.255 192.168.1.1
То же самое можно сделать в PowerShell с помощью Add-VpnConnectionRoute
, это добавит статический маршрут.
В настоящее время он работает у меня в регионах Австралия-Восток и Юго-Восточная Азия.