Общайтесь в рамках одной группы безопасности EC2

Общайтесь в рамках одной группы безопасности EC2

У меня есть несколько экземпляров, работающих в одной и той же группе безопасности (например, Group-A), которым необходимо взаимодействовать друг с другом, в частности, через порт 4369.

Каждый экземпляр имеет свой Elastic IP.

Группа безопасности настроена на разрешение входящего трафика через TCP:4369 Источник:sg-XXXXX (Группа-A)

Однако экземпляры могут взаимодействовать друг с другом только через внутренний IP (10.xxx.xxx.xx) или Amazon Public DNS: ec2-ELASTIC-IP.compute-1.amazonaws.com (очевидно, Amazon преобразует его во внутренний IP).

Если я использую Elastic IP, это не сработает. Если я использую свой собственный FQDN, который указывает на Elastic IP, это не сработает.

Если я изменю источник в правиле входящего трафика с sg-XXXXX (Group-A) на 0.0.0.0, он будет работать с моим собственным FQDN и Elastic IP. Но мы не будем использовать это из соображений безопасности. Если я удалю правило входящего трафика, ничего не будет работать, даже использовать внутренний IP.

Так что же мне делать, если я хочу использовать собственное полное доменное имя (FQDN)? (worker-1.company.com -> Elastic IP), которое гораздо более удобно для чтения и которым проще управлять.

решение1

Описанное вами поведение является нормальным, поскольку при взаимодействии между экземплярами через эластичный IP-адрес идентификация машины в группе безопасности (в целях конфигураций группы безопасности, полагающихся на источник sg-xxxxxxxx) не может быть установлена ​​с полной уверенностью, поскольку преобразование адресов отправляет трафик (предположительно) через промежуточное оборудование, и трафик больше не рассматривается как исходный.напрямуюиз примера.

Решением является присвоение вашим хостам имен в DNS с помощью записей CNAME, указывающих на публичную запись DNS, вместо записей A, указывающих на конкретный IP-адрес.

В DNS-зоне company.com:

worker-1   IN  CNAME  xx-xx-xx-xx.compute-1.amazonaws.com.

Теперь worker-1.company.com будет разрешаться в частный IP-адрес при запросе изнутри и в публичный IP-адрес при запросе снаружи.

решение2

Это не идеально, но вы можете добавить явные сопоставления из FQDN в частные IP в файле hosts каждого из экземпляров. Таким образом, ваш код будет использовать FQDN, но сетевое взаимодействие будет фактически использовать частные коммуникации (что в любом случае более безопасно).

Это разумный вариант, если у вас небольшой, относительно фиксированный набор экземпляров. Вероятно, вам следует автоматизировать этот процесс, если это возможно.

Вы также можете использовать Route 53, DNS Amazon как сервис. Сопоставьте ваше FQDN с публичным DNS-именем экземпляра. Внутри EC2 это будет сопоставлено с частным IP. Вам все равно нужно будет автоматизировать это с помощью API route 53.

Связанный контент