Я создал VPC с помощью мастера VPC с двумя подсетями (общедоступной и частной) и NAT перед частной подсетью.
Глядя на ACL для подсетей, было правило, разрешающее весь ВХОДЯЩИЙ трафик для 0.0.0.0/0
. Я хотел бы запретить любой входящий трафик, который не исходит от NAT (с IP 10.0.0.8), поэтому я изменяю ACL, чтобы он был аналогичен тем, что в Scenario 2
в http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_NACLs.html.
То есть, ALLOW
ВСЕ ПРОТОКОЛЫ на ВСЕХ ПОРТАХ от 10.0.0.0/16
, с запретом на 0.0.0.0/0
.
Кажется, это работает неправильно, поскольку у моего экземпляра нет доступа в Интернет. Есть ли что-то еще, что мне нужно настроить / изменить, чтобы он заработал?
Общедоступные IP-адреса не перезаписываются при прохождении через экземпляр NAT.
Вам нужно будет оставить все общедоступное адресное пространство Интернета как разрешенное в частной подсети в сетевых ACL. Если в частной подсети отсутствует Интернет-шлюз, а ее маршрут по умолчанию указывает на экземпляр NAT, общедоступные Интернет-адреса будут поступать только косвенно через экземпляр NAT.
Сетевые ACL VPC полезны для ограничения доступа между экземплярами внутри VPC, но их природа без сохранения состояния делает их громоздкими для описываемого вами типа конфигурации: они не отслеживают соединение, которое соответствует разрешенному правилу исходящего трафика, чтобы разрешить соответствующий входящий трафик. , поэтому вам придется приблизиться, разрешив временные диапазоны портов для входящего трафика.
Более гибкий подход заключается в использовании комбинации маршрутизации VPC, отсутствия интернет-шлюза в частной подсети и хорошей iptables
конфигурация в экземпляре NAT для управления трафиком в / из публично маршрутизируемого IP-пространства, оставляя сетевой ACL для частных экземпляров подсети разрешенным по умолчанию в отношении публично-маршрутизируемого IP-пространства. В такой среде размещения в частной подсети достаточно для защиты экземпляров от любого внешнего трафика, который экземпляр NAT не проходит.