У меня VPC с 3 подсетями:
Публичная подсеть NACL блокирует все входящие из Интернета на любые порты, кроме 443.
NACL частной подсети блокирует все входящие и исходящие из Интернета.
NACL для защищенной подсети должен разрешать:
Защищенная подсеть направляется в Интернет через шлюз NAT, который находится в общедоступной подсети.
Проблема заключается в следующем: исходящий трафик из защищенной подсети в Интернет работает только в том случае, если NACL для общедоступной подсети открыт, чтобы разрешить входящий трафик на порты 1024–65535. Предположительно это связано с тем, что трафик проходит через общедоступную подсеть (поскольку именно там NAT Gateway живет).
Таким образом, я могу открыть NACL для общедоступной подсети (входящий с 0.0.0.0/0 на 1024-65535), но это делает его менее безопасным; фактически, если я открою все эти порты, я могу вообще не беспокоиться о NACL (очевидно, я также использую группы безопасности).
Я что-то упускаю?
NACL не имеют гражданства. Вы обнаружили, что вам нужно открыть Эфемерные порты чтобы разрешить трафик обратно в вашу подсеть. Почитайте об эфемерных портах.
Обычно лучше использовать группы безопасности, а не NACL, поскольку они сохраняют состояние и автоматически обслуживают эфемерные порты. Вы можете использовать оба, если хотите.
Обычно я использую только две подсети: общую и частную. Public имеет только шлюз NAT или балансировщик нагрузки, и эта подсеть разрешает общедоступные IP-адреса. В частной подсети есть все внутренние ресурсы, а на первом уровне используются группы безопасности, а не подсети.
Например, создайте группу безопасности для веб-серверов, группу безопасности для серверов приложений и группу безопасности для серверов баз данных, а затем разрешите доступ между группами безопасности по нужным портам.
IE: