Разрешить экземплярам Azure VMSS подключаться к серверу MySQL, работающему на виртуальной машине в другой группе ресурсов.
В Microsoft Azure у меня есть масштабируемый набор виртуальных машин , скажем, в «resourceGroup1» в регионе Западный ЕС. У меня также есть одна виртуальная машина (назовем ее «VM1»), которая содержит экземпляр mySql, также в западной части ЕС, но (скажем) в «resourceGroup2».
Мне удалось заставить отдельные виртуальные машины в resourcesGroup1 подключаться к серверу MySQL, открыв их IP-адрес для доступа в разделе «Сеть» VM1, порт 3306.
Но я не могу придумать, как разрешить подобное для VMSS. Хотя экземпляры в VMSS в настоящее время имеют свои собственные общедоступные IP-адреса, я не собираюсь сохранять их, и, конечно, я не могу гарантировать, какими они будут в будущем, поскольку экземпляры приходят и уходят.
Я пытался изучить группы безопасности приложений, но не смог понять, как назначить им VMSS. Я просмотрел частную ссылку, но она, похоже, не поддерживает ни виртуальные машины, ни VMSS. В некоторой документации говорится, что установка IP-адреса в сетевом брандмауэре на 0.0.0.0 откроет доступ к Azure в целом, что не было бы идеально, но лучше, чем весь Интернет (и, похоже, все равно не работает).
Другая моя мысль заключается в том, что я бы отключил IP-адреса для каждого экземпляра в VMSS (что я все равно планирую сделать после завершения тестирования), а затем пропустил бы исходящий трафик из экземпляра через балансировщик нагрузки, чтобы он появляется в качестве источника запроса, и тогда я могу вместо этого добавить IP-адрес LB в брандмауэр. Но это тоже выглядит сложно, и я теряю желание жить, поскольку работа в сети на самом деле не моя сильная сторона.
Каково наиболее элегантное и ориентированное на безопасность решение, позволяющее любым экземплярам VMSS отправлять запросы на чтение и запись на сервер MySQL, работающий на виртуальной машине Windows в отдельной группе ресурсов, но в том же регионе?
Спасибо!
1 ответ
Группы ресурсов не учитываются в этом сценарии. Они используются для группировки связанных ресурсов, но сами по себе не ограничивают возможности ресурсов.
Однако выбор сетевой топологии имеет решающее значение. Частично это вы видите, когда обсуждаете использование балансировщика нагрузки, поскольку балансировщик нагрузки может предоставлять SNAT машинам, находящимся за ним, для совместного использования общедоступного IP-адреса. Этот IP-адрес затем можно поместить в группу сетевой безопасности, чтобы разрешить доступ в Интернет. «Интернет» в кавычках, поскольку он все еще находится в сети Microsoft, но перемещается по маршрутам, которые вы считаете «вне» вашей сети.
Это подводит меня к моей первой мысли об ответе... спроектируйте свою сеть соответствующим образом, чтобы она соответствовала желаемой модели безопасности.
В частности, это похоже на случай, когда VMSS и виртуальная машина не нуждаются в границе сетевой безопасности между ними. Шаблон по умолчанию развертывает VMSS в новой сети, но это не обязательно. Если ваша модель сетевой безопасности позволяет это, просто разверните VMSS в существующей виртуальной сети для виртуальной машины или наоборот поместите виртуальную машину в виртуальную сеть VMSS.
Удалите создание новой виртуальной сети для VMSS и замените ее ссылкой на существующую виртуальную сеть.Ссылка на существующую виртуальную сеть в шаблоне масштабируемого набора Azure.
Вам все равно потребуется соответствующим образом настроить группу сетевой безопасности, чтобы разрешить трафик, но, поскольку он будет передаваться между компьютерами в одной виртуальной сети, это легко (и по умолчанию).
Альтернативно, вы можете добиться очень похожего результата с помощью пиринга виртуальных сетей. Пиринг позволяет совместимым виртуальным сетям маршрутизировать трафик друг с другом. Обычно совместимость означает, что в каждой виртуальной сети должны быть непересекающиеся диапазоны IP-адресов. Пиринг также позволяет трафику перетекать между подписками или регионами, если вам нужно настроить более широкую сеть, охватывающую города/страны/континенты. У пиринга есть преимущество в управлении, поскольку вы можете разделить ресурсы, биллинг и безопасность, однако с точки зрения сети существует небольшая функциональная разница между отдельной виртуальной сетью, как описано выше, и одноранговыми виртуальными сетями в одном и том же регионе.
Пиринг виртуальных сетей позволяет беспрепятственно подключать две или более виртуальные сети в Azure. Виртуальные сети отображаются как одна для обеспечения возможности подключения. Трафик между виртуальными машинами в одноранговых виртуальных сетях использует магистральную инфраструктуру Microsoft. Как и трафик между виртуальными машинами в одной сети, трафик маршрутизируется только через частную сеть Microsoft.
Если ваша модель сетевой безопасности требует более глубокого разделения VMSS и виртуальной машины, существует множество решений, которые можно построить с использованием стандартных блоков Azure. Самый простой вариант — виртуальные машины будут использовать общедоступный IP-адрес балансировщика нагрузки, к которому они подключены, для SNAT. Или, если балансировщик нагрузки отсутствует, для той же цели можно развернуть шлюз Azure NAT (и он предпочтительнее балансировщика нагрузки, если присутствуют оба). Это дает вам контроль над общедоступным IP-адресом исходящего Интернета Azure VMSS, который затем можно использовать для защиты группы сетевой безопасности на виртуальной машине. Сети остаются отдельными, и любая форма NAT позволяет рассматривать их как имеющие меньшее доверие друг к другу.
Используйте трансляцию исходных сетевых адресов (SNAT) для исходящих подключений.
В некоторых сценариях требуется, чтобы виртуальные машины или вычислительные экземпляры имели исходящее подключение к Интернету. IP-адреса внешнего интерфейса общедоступного балансировщика нагрузки можно использовать для обеспечения исходящего подключения к Интернету для серверных экземпляров. В этой конфигурации используется преобразование адресов исходной сети (SNAT) для преобразования частного IP-адреса виртуальной машины в общедоступный IP-адрес балансировщика нагрузки. SNAT сопоставляет IP-адрес серверной части с общедоступным IP-адресом вашего балансировщика нагрузки. SNAT не позволяет внешним источникам иметь прямой адрес к экземплярам серверной части.
Azure NAT Gateway — это полностью управляемая и высокоустойчивая служба трансляции сетевых адресов (NAT). Вы можете использовать шлюз Azure NAT, чтобы разрешить всем экземплярам в частной подсети исходящие подключения к Интернету, оставаясь при этом полностью конфиденциальными. Незапрошенные входящие подключения из Интернета через шлюз NAT не допускаются. Через шлюз NAT могут проходить только пакеты, поступающие в качестве ответных пакетов на исходящее соединение.