Группа безопасности источника не работает должным образом в AWS

У меня есть EC2 node, node1 (группа безопасности SG1), который должен быть доступен из другого EC2 node, node2 (группа безопасности SG2) на порту 9200. Теперь, когда я добавляю правило входящих в SG1 с портом 9200 и указать SG2 как источник в разделе пользовательского IP-адреса, я не могу получить доступ к узлу1 из узла2. С другой стороны, если я укажу входящее правило в SG1 с источником как 0.0.0.0/0 или IP узла2, он отлично работает. Что не так в моем подходе?

Ответы

Ответ 1

Вы пытаетесь подключиться к общедоступному или приватному адресу node1? Из документа :

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

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

Некоторые вещи, о которых нужно знать:

  • В EC2 Classic частные IP-адреса могут меняться при остановке/запуске экземпляра EC2. Если вы используете EC2 classic, вы можете захотеть заглянуть в эту дискуссию об именах эластичных DNS для более статического решения для адресации.
  • Если вы настроили среду в VPC, частные IP-адреса статичны. Вы также можете изменить членство в группе безопасности для запуска экземпляров.

Ответ 2

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

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

например. если ваш экземпляр имеет общедоступный IP 203.0.113.185 и закрытый IP 10.1.234.12, вам предоставляется общедоступное DNS-имя, например ec2-203-0-113-185.eu-west-1.compute.amazonaws.com.

ec2-203-0-113-185.eu-west-1.compute.amazonaws.com будет разрешен к 203.0.113.185, если запрашивается извне, или 10.1.234.12, если запрашивается внутренне. Это позволит вашим группам безопасности работать по назначению.

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

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

Ответ 3

Общественный DNS не работал у меня. Вместо этого я создал пользовательское входящее правило, используя группу безопасности другого экземпляра.