我使用带有两个子网(公用和专用)的VPC向导创build了VPC,并在专用子网前面创build了一个NAT。
查看子网的ACL,有一条规则允许0.0.0.0/0所有INBOUND通信。 我想禁止任何来自NAT(IP 10.0.0.8)的入站stream量,因此我将ACL更改为类似于http://docs.aws.amazon.com/AmazonVPC中的Scenario 2中的stream量/latest/UserGuide/VPC_Appendix_NACLs.html 。
也就是说, ALLOW来自10.0.0.0/16所有端口上的所有协议,禁止0.0.0.0/0 。
这似乎没有正常工作,因为我的实例没有互联网访问。 还有什么我需要设置/更改以使其工作?
可公开路由的IP地址在通过NAT实例时不会被重写。
您需要在networkingACL中私有子网上允许的整个公共Internet地址空间。 如果私有子网缺lessInternet网关,并且其默认路由指向NAT实例,则公共Internet地址将仅通过NAT实例间接到达。
VPCnetworkingACL对限制VPC内部实例之间的访问非常有用,但是它们的无状态特性使得它们对于您所描述的configurationtypes来说很麻烦:它不跟踪与允许的出站规则匹配的连接以允许相应的入站stream量,所以你只能通过允许入站stream量的临时端口范围来近似。
更灵活的方法是使用VPC路由,私有子网上缺less互联网网关以及NAT实例中良好的iptablesconfiguration,以控制stream入和stream出公共可路由IP空间的stream量,同时将networkingACL私有子网实例相对于可公开路由的IP空间而言是默认允许的。 在这样的环境中,在私有子网中的放置足以保护实例免受NAT实例不经过的任何外部stream量的影响。