Экземпляр AWS EC2 в частной подсети не может подключиться к Интернету через шлюз NAT

У меня есть два экземпляра EC2, один в общедоступной подсети (10.1.1.0/24) и один в частной подсети (10.1.2.0/24). Экземпляр EC2 в общедоступной подсети отлично работает с подключением к Интернету и настроенными службами.

В публичной подсети 10.1.1.0/24 настроен шлюз NAT с эластичным IP-адресом. Маршрут по умолчанию в частной подсети - [0.0.0.0/0 -> NAT-шлюз в общедоступной подсети]. У меня есть настраиваемый сетевой ACL в частной подсети, и я заметил, что источник и пункт назначения для правил для входящего / исходящего трафика установлены на 10.1.1.0/24 (общедоступная подсеть), внешнее подключение прерывается, но ssh работает. Подключение к Интернету восстанавливается только тогда, когда для источника / назначения установлено значение "любой". Я пытаюсь понять, какой именно источник / место назначения следует использовать в сетевых ACL в частной подсети для работы подключения к Интернету.

1 ответ

Чтобы разрешить экземпляру из частной подсети доступ в Интернет с помощью шлюза NAT, ваши NACL или SG должны разрешать Интернет-трафик. NAT не превращает интернет-трафик в частный трафик VPC. Итак, если вы удалите 0.0.0.0/0 подключение к Интернету прекращается.

Это объясняется в документации AWS об инстансах, не имеющих доступа к Интернету:

Убедитесь, что сетевые ACL, связанные с частной подсетью и общедоступными подсетями , не имеют правил, блокирующих входящий или исходящий интернет-трафик.

Следовательно, вы должны разрешить 0.0.0.0/0 (или некоторый диапазон IP-адресов, если вам нужна только часть интернет-трафика) в вашем NACL и SG для экземпляров в частной подсети.

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

Другие вопросы по тегам