Ограничение доступа по SSH с помощью группы безопасности AWS

У меня есть два экземпляра EC2, оба в одной общедоступной подсети и в одной зоне доступности.

Я хочу, чтобы один из экземпляров мог получить доступ к другому через SSH.

Вот группы безопасности, которые я настроил до сих пор:

Экземпляр 1: веб-сервер

  • разрешить_http inbound and outbound port 80 0.0.0.0/0
  • разрешить_https inbound and outbound port 443 0.0.0.0/0
  • разрешить_internal_ssh inbound and outbound port 22 allow_internal_ssh (self)

Экземпляр 2: только SSH

  • разрешить_ssh inbound and outbound port 22 0.0.0.0/0 # soon to be my home IP
  • разрешить_internal_ssh inbound and outbound port 22 allow_internal_ssh (self)

Я хочу, чтобы #1 был доступен только по SSH из #2.

Я думал, что смогу сделать это, назначив одну и ту же группу безопасности (allow_internal_ssh) обоим, однако это не работает!

С описанной выше настройкой я не могу подключиться к #2.

Если я назначу обоим экземплярам группу безопасности allow_ssh, я смогу получить доступ к SSH-серверу (#2), а затем оттуда войти на веб-сервер (#1).

Будем очень признательны за любые советы по отладке или помощь в настройке доступа по SSH из той же группы безопасности!


person MattDavies    schedule 11.03.2018    source источник


Ответы (2)


Похоже, ваши требования:

Экземпляр 1 (веб-сервер):

  • Разрешить доступ по HTTP/HTTPS из любого места
  • Разрешить SSH только из экземпляра № 2

Экземпляр 2:

  • Разрешить доступ по SSH из дома

Для этого вам понадобятся две группы безопасности — по одной, связанной с каждым экземпляром.

Вам следует создать группу безопасности для экземпляра №1:

  • HTTP: разрешить входящий трафик через порт 80 от 0.0.0.0/0
  • HTTPS: разрешить входящий трафик через порт 443 от 0.0.0.0/0
  • SSH: разрешить входящий трафик через порт 22 из группы безопасности № 2 (см. конкретную группу безопасности)

Вам следует создать группу безопасности для экземпляра №2:

  • SSH: разрешить входящий трафик через порт 22 с вашего домашнего IP-адреса

Магия заключается в том, что одна группа безопасности (№1) может ссылаться на другую группу безопасности (№2). В приведенной выше конфигурации любому экземпляру, связанному с группой безопасности № 2, будет разрешен доступ к любому экземпляру, связанному с группой безопасности № 1, через порт 22. (Конечно, по-прежнему потребуются стандартный логин и пары ключей.)

person John Rotenstein    schedule 12.03.2018
comment
Это 100% правильная конфигурация. И на самом деле это то, что у меня было ... проблема, на случай, если кто-то еще столкнется с этой проблемой, заключается в том, что я пытался подключиться по SSH к внешнему IP-адресу моего сервера (поэтому выходил за пределы VPC) после того, как я настроил свое SSH-соединение на укажи на приватный IP все заработало отлично! Спасибо за вашу помощь Джон - person MattDavies; 13.03.2018

Если вы хотите разрешить № 2 подключаться по SSH к № 1, вы можете разрешить входящий трафик на частный IP-адрес № 2 через порт 22 (10.x.x.x)

person Rob    schedule 11.03.2018
comment
Спасибо @Rob, я попробую. Я пытался разрешить входящий трафик с частного IP-адреса № 1 на № 2, что не сработало ... он ДЕЙСТВИТЕЛЬНО работает с общедоступным IP-адресом, но я пытаюсь сохранить все в рамках VPC ... - person MattDavies; 12.03.2018
comment
Вы уверены, что они оба находятся в одном VPC? Каковы частные IP-адреса для обоих серверов? Кроме того, я предполагаю, что вы пытаетесь подключиться по ssh к частному IP-адресу сервера №1? - person Rob; 12.03.2018
comment
Спасибо, Роб, проблема заключалась в том, где я тоже пытался подключиться по SSH... Я пытался подключиться к my-server-1.mysubdomain.com, который был (конечно) внешним, поэтому попытка подключения была за пределами VPC. Я установил частную зону хостинга и настроил my-server-1 так, чтобы она указывала на частный IP-адрес, и работа выполнена! - person MattDavies; 13.03.2018