Я установил Azure SQL Server с эластичным пулом, в котором я создал тестовую базу данных.
Я также установил виртуальную сеть Azure и VPN типа «точка-сеть». Виртуальная сеть имеет 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-клиент.
Заранее спасибо...
Я только что получил ответ от службы поддержки Azure по этой проблеме (03.03.2018), и они подтвердили, что то, чего я пытаюсь достичь, в настоящее время невозможно.
Это скорее обходной путь, чем использование шлюза VPN.
Вы можете попробовать настроить VPN-сервер с NAT на своей виртуальной машине, разрешить IP-адрес виртуальной машины в Azure SQL, а затем ваши разработчики подключатся к VPN-серверу на виртуальной машине.
NAT заставит Azure SQL думать, что клиенты - это виртуальная машина.
Azure SQL использует шлюзы, чтобы определить, к каким кластерам клиент хочет подключиться: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-connectivity-architecture.
Поскольку шлюзы имеют фиксированные 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
, он добавит статический маршрут.
В настоящее время он работает для меня в регионах Австралии, Восточной и Юго-Восточной Азии.