AWS Security Group - как разрешить общедоступный IP-адрес из другой группы безопасности

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

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

Кто-нибудь знает о более простой способ сделать это?

Подводя итог:

  • Экземпляр 1 -> 1.2.3.4
  • Экземпляр 2 -> 5.6.7.8

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

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

Кто-нибудь знает о более простой способ сделать это?

Подводя итог:

  • Экземпляр 1 -> 1.2.3.4
  • Экземпляр 2 -> 5.6.7.8

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

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

Кто-нибудь знает о более простой способ сделать это?

Подводя итог:

  • Экземпляр 1 -> 1.2.3.4
  • Экземпляр 2 -> 5.6.7.8

Экземпляр 1 требуется для доступа к Экземпляру 2 по общедоступному IP. s Публичный IP. Я обнаружил, что предоставление доступа группе безопасности разрешает доступ только к частному IP, а не к общедоступному IP.

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

Кто-нибудь знает о более простой способ сделать это?

Подводя итог:

  • Экземпляр 1 -> 1.2.3.4
  • Экземпляр 2 -> 5.6.7.8

Экземпляр 1 требуется для доступа к Экземпляру 2 по общедоступному IP. s Публичный IP. Я обнаружил, что предоставление доступа группе безопасности разрешает доступ только к частному IP, а не к общедоступному IP.

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

Кто-нибудь знает о более простой способ сделать это?

Подводя итог:

  • Экземпляр 1 -> 1.2.3.4
  • Экземпляр 2 -> 5.6.7.8

Экземпляр 1 требуется для доступа к Экземпляру 2 по общедоступному IP.

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

Кто-нибудь знает о более простой способ сделать это?

Подводя итог:

  • Экземпляр 1 -> 1.2.3.4
  • Экземпляр 2 -> 5.6.7.8

Экземпляр 1 требуется для доступа к Экземпляру 2 по общедоступному IP.

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

Кто-нибудь знает о более простой способ сделать это?

Подводя итог:

  • Экземпляр 1 -> 1.2.3.4
  • Экземпляр 2 -> 5.6.7.8

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

6
задан 6 November 2018 в 07:29
3 ответа

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

Однако, если вы создаете экземпляр 1 с помощью Ansible, вы можете затем использовать Ansible fact для экземпляра, чтобы получить его общедоступный IP-адрес и установить его как источник в Экземпляр 2 SG . Что-то вроде этого должно работать:

- name: Create Instance 1
  ec2:
    key_name: mykey
    instance_type: t2.micro
    image: ami-123456
    wait: yes
    assign_public_ip: yes             <<< Assign Public IP
  register: ec2

А затем вы можете добавить его в качестве источника в группу безопасности экземпляра 2 :

- name: Instance 2 SG
  ec2_group:
    name: ...
    rules:
    - proto: tcp
      ports:
      - 80
      cidr_ip: "{{ ec2.instances.public_ip }}"   <<< Use it here

Что-то в этом роде должно позволить вам выполнять автоматизацию с помощью Ansible.

Надеюсь, что это поможет :)

7
ответ дан 3 December 2019 в 00:09

Обычно вы создаете именованную группу безопасности, присоединяете ее к этим экземплярам и добавляете правило, которое ссылается на эту группу безопасности как на источник и разрешает необходимые порты назначения.

Окончательное изображение :

  • Ко всем экземплярам, ​​необходимым для связи друг с другом, прикреплена созданная группа безопасности .
  • Созданная группа безопасности содержит правила, которые устанавливают входящий из созданной группы безопасности в порт назначения, который вам нужен
  • Часто исходящие правила не включены, так как группы безопасности сохраняют состояние. Но не стесняйтесь добавлять то, что необходимо.

Таким образом, в основном даже один IP-адрес не требуется, а разрешить / запретить можно контролировать, прикрепив группу безопасности к ресурсам, к которым необходим доступ. Этот метод также хорошо работает с динамическими средами (например, с автомасштабированием).

3
ответ дан 3 December 2019 в 00:09

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

Я рекомендую исходному экземпляру использовать DNS-адрес для целевого экземпляра, который разрешается в частный IP-адрес целевого экземпляра. Например: вы создаете запись CNAME my-service.example.com , которая указывает на общедоступное DNS-имя целевого экземпляра, предоставленное AWS. Общедоступное DNS-имя будет выглядеть примерно так ec2-public-ipv4-address.compute-1.amazonaws.com .

AWS обеспечивает разрешение DNS с разделенным горизонтом. Когда my-service.example.com разрешается в общедоступном Интернете, возвращается общедоступный IP-адрес. Когда my-service.example.com разрешается в вашем VPC, возвращается частный IP-адрес. Поэтому ваш исходный экземпляр будет подключаться к целевому экземпляру, используя частный IP-адрес, и правила вашей группы безопасности будут работать, как ожидалось.

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

2
ответ дан 3 December 2019 в 00:09

Теги

Похожие вопросы