Это может быть много вещей. Возможно, я бы порекомендовал посмотреть на группы безопасности (добавить входящий TCP / 22 с вашего IP-адреса) и, в зависимости от ваших настроек (убедиться, что IGW подключен), убедиться, что вашим экземплярам назначен публичный c IP-адрес (добавить Elasti c IP, если у вашего экземпляра его еще нет). Без дополнительной информации о вашей среде я могу предоставить лишь некоторые сведения, которые помогут вам устранить неполадки.
Сетевой путь к экземпляру в VP C выглядит следующим образом:
Inte rnet -> AWS Граница -> VP C Граница -> VP C Маршрутизатор -> Su bnet border -> Elasti c Сетевой интерфейс
AWS Граница
В большинстве случаев эта часть не важна. Из Inte rnet ваш трафик c в конечном итоге будет перенаправлен в автономную систему Amazon. Это вообще прозрачно. Но если у вас есть прямое подключение типа c, то Amazon-сторона соединения выдает вас здесь. В этой области вы можете получить доступ к конечным точкам API publi c, но вы не можете получить доступ к чему-либо внутри VP C без дальнейшего продвижения вниз по стеку. См. Ниже.
VP C Граница
Это точка, в которой трафик c входит / покидает VP C. Это может происходить несколькими способами.
Inte rnet Шлюз (IGW)
Выполняется один-к-одному NAT между публично маршрутизируемым IP-адресом, принадлежащим Amazon, и VP C внутренний частный IP-адрес (не путайте его со шлюзом NAT, так как он отличается от описанного ниже). Только экземпляры, которым назначен общедоступный IP-адрес c, могут использовать IGW. Будучи NAT 1-к-1, с точки зрения Экземпляров это соединение между частным IP-адресом и IP-адресом Inte rnet. Снаружи это соединение с публичным IP-адресом экземпляра c. Подчеркнем, что экземпляры без назначенного общедоступного IP-адреса c (elasti c IP или другого) не смогут взаимодействовать с Inte rnet в любом направлении через IGW. И наоборот, если у вас нет IGW, в ваших экземплярах не будет необходимости использовать публичные c IP-адреса. Также стоит упомянуть, что существуют также выходные шлюзы, которые позволяют подключение IPv6 только для исходящих инициированных подключений.
Виртуальный частный шлюз (VGW)
Это можно рассматривать как своего рода маршрутизатор. Если у вас есть VPN-соединение, подключенное к AWS 'VPN-сервису, или если вы используете Private Direct Connect, оно будет проходить через это виртуальное устройство, которое будет связано с VP C. Стоит отметить, что это своего рода пиринг и использует частные IP-адреса VP C для связи. Вам не нужен общедоступный c IP-адрес для связи через VGW, и вы не можете обойти VGW, используя опубликованный c IP-адрес экземпляров в вашем VP C.
VP C Пиринговые соединения (PCX)
Это очень похоже на VGW. Он может соединять только два VPC (с транзитным шлюзом, я полагаю, это упрощение) и соединяет их на уровне частных IP-адресов. Вы не можете ссылаться на ресурсы через PCX, используя свои IP-адреса Publi c.
VP C Конечная точка (VP C -E)
Это доступно только изнутри VP C с выходящими соединениями (очевидно, возвращаются traffi c с возвратом через это, но. Это соединение с определенной c AWS конечной точкой в AWS Publi c Граница (например, конечная точка API S3). При этом не используется общедоступный c IP-адрес экземпляра.
VP C Маршрутизатор
Весь трафик c при выходе или входе VP C попадает на этот маршрутизатор, и он направляет к / от всех точек входа / выхода на границе VP C и к / от каждой подсети. Вы можете настроить этот маршрутизатор для управления тем, какой трафик c идет куда, и вы можете иметь разные таблицы маршрутов для каждого su bnet. Таким образом, "publi c" su bnet - это один в VP C, который имеет IGW и имеет маршрут по умолчанию (0.0.0.0 / 0) к этому IGW. У частного су bnet нет пути к IGW. Если нет маршрута к IGW, использование IPL-адреса publi c в вашем экземпляре бесполезно и расточительно.
Вы также можете направить в ENI, если хотите контролировать трафик c в своем VP C и отправить его в экземпляр EC2 (веб-прокси / IDS / traffi c захват / et c.), однако, что ENI должен находиться в su bnet с другой таблицей маршрутов, иначе его собственный исходящий трафик c будет перенаправлен обратно к самому себе. Весь трафик c, выходящий / входящий в любой сервер su bnet, и весь трафик c, выходящий / входящий в VP C, проходит через этот маршрутизатор и зависит от настроенных вами маршрутов. Вы не можете настроить маршрутизацию в своих подсетях, любой пакет, предназначенный для адреса в частном IP-пространстве вашего VP C, будет автоматически перенаправлен на этот конкретный su bnet, и вы не можете переопределить эту функциональность с более конкретными c маршрутами .
Su bnet Граница
На границе su bnet traffi c подчиняется спискам контроля доступа к сети (NACL). Это брандмауэр без сохранения состояния, основанный на правилах. По умолчанию он широко открыт и не требует настройки для разрешения traffi c. Не существует правила, разрешающего «существующие соединения», поэтому, если вы начнете блокировать su bnet с помощью NACL, вам, вероятно, потребуется открыть все временные порты в ожидаемом направлении. Traffi c , Любой трафик c между экземплярами в пределах одного su bnet будет , а не попадать в NACL. Но все, что покидает или входит в su bnet (идет ли оно к другому su bnet в том же VP C или вообще покидает VP C), попадает в NACL и подчиняется его правилам. Обычно оставляйте их в покое, если только вам не нужно защищать трафик c на уровне su bnet, NACL немного громоздки.
Elasti c Сетевой интерфейс (ENI)
Наконец traffi c проходит через ENI, где он подчиняется группе безопасности. Это неявный брандмауэр с сохранением состояния, для которого вы можете добавлять только разрешающие правила. Если группа безопасности не имеет правила, разрешающего исходящий трафик c из экземпляра, этот трафик c никогда не покинет ENI. Если в группе безопасности нет правила, разрешающего некоторый тип входящего трафика c, этот тип входящего трафика c никогда не будет отправлен в экземпляр (т. Е. ОС не сможет его обнаружить).
NAT Gateway
Это устройство, которое может находиться в су bnet. Для этого потребуется маршрут к IGW и IP-адрес publi c (IP-адреса Elasti c работают). Он выполняет преобразование «многие-к-одному» из любых частных IP-адресов в вашем VP C в общедоступный IP-адрес (технически он выполняет преобразование «многие-к-одному», преобразуя множество частных IP-адресов в вашем VP C в свой собственный частный IP-адрес, и когда он связывается с IGW, он выполняет NAT один-к-одному для преобразования частного IP-адреса шлюза NAT в общедоступный c IP-адрес). Это работает только для IPv4. И это работает, только если экземпляры отправляют свой трафик c в ENI шлюза NAT. Как правило, шлюз NAT должен находиться в общедоступном c Su bnet (с маршрутом по умолчанию к IGW), и все ваши экземпляры в частных подсетях будут иметь маршрут по умолчанию к ENI шлюза NAT.
Сводка
Голый минимум для подключения к экземпляру EC2:
- VP C имеет подключенный IGW
- NACL имеет разрешающие правила для желаемый трафик c в обоих направлениях (настроен по умолчанию)
- EC2 Instance имеет группу безопасности, разрешающую желаемый трафик c (TCP / 22 для S SH, et c.)
- Экземпляр EC2 имеет связанный с ним общедоступный c IP-адрес (должен быть настроен при запуске экземпляра или может быть добавлен после присоединения Elasti c IP).
Эта конфигурация позволяет напрямую подключаться к экземпляру через publi c inte rnet.
Хорошо спроектированный VP C Pattern
Общий c архитектурный шаблон, рекомендованный AWS для простых сетей с наилучшей практикой:
- VP C с подключенным IGW
- два или больше общедоступных c подсетей (каждая в отдельных зонах доступности) с маршрутом по умолчанию к IGW.
- шлюз NAT в каждой из общедоступных c подсетей
- два или более частные подсети (каждая в том же AZ, что и подсети publi c), каждая с маршрутами по умолчанию к шлюзу NAT в publi c su bnet в том же AZ.
- хост-бастион в группе автоматического масштабирования 1, охватывающий все публичные c подсети, допускающие входящий S SH (целесообразно ли это, является дискуссионным)
- при необходимости, a VPN-подключение из вашей корпоративной сети к группам безопасности VP C
- в частных экземплярах, позволяющее входить из определенных c ресурсов в VP C (ссылаясь по идентификатору группы безопасности, где это возможно) и любых входящих traffi c необходим через VP C, а исходящий трафик c TCP / 443 отправляется в мир (или больше / меньше в зависимости от вашей толерантности к риску и потребностей).
- при необходимости, и VP C Конечная точка к S3 или любым другим конечным точкам API, которые вы собираетесь отправлять большими объемами трафика c.
Эта архитектура позволяет вашим частным экземплярам подключаться к общедоступным c inte rnet ресурсам исходящий (по крайней мере, с использованием IPv4) и входящий трафик c должен go через VPN или хост-бастион. Для служб publi c -facing установка Elasti c Load Balancer в подсетях publi c является желаемым способом обеспечения подключения publi c для ваших экземпляров, чтобы вы могли продолжать поддерживать их защищенными в частный су bnet.