我在我的 vpc 中创建了两个子网(10.11.0.0/22)
- 公共子网 - 10.11.0.128/27
- 私有子网 - 10.11.0.0/26
我还在公共子网中创建了 NAT 网关并将其附加到私有子网,以便私有子网中的实例可以访问互联网。
所以一切正常,我在公共子网中创建了 Linux 实例,我可以执行 ssh 并访问互联网。私有子网实例也是如此,我可以通过公共实例登录私有实例。
但在应用网络 ACL 之后
入境规则
出站规则
我可以从我的公共实例访问互联网,但无法通过私有实例访问。
为了从私有实例访问互联网,正确的网络 ACL 是什么?
答案1
NAT 网关不是服务器,因此它们没有理由仅使用传统的临时端口范围。如文档中所述:
NAT 网关使用端口 1024–65535
https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html
因此,您的 NACL 限制过多,导致 NAT 网关无法正常运行。
如果您决定在 VPC 中使用网络 ACL,则可能需要为 NAT 网关创建一个不使用自定义 NACL 的新公共子网,因为 NAT 网关上没有任何需要保护的内容 - 它们本质上是安全的,因为 (a) 它们会丢弃任何它们无法识别的流量,(b) 它们不允许入站端口映射,(c) 它们不是服务器,因此不需要限制对网关本身的访问。
此外,对于 NAT 网关,两个 NACL 上的规则都适用于两个方向的流量(尽管是在不同的上下文中并且要经过端口转换),这使得有意义的规则更加复杂 - 例如,“入站”列表适用于从互联网“进入”的流量以及从实例“进入”网关的流量(出站到互联网),而“出站”列表适用于“出站”到互联网的流量和“出站”到实例的流量(从互联网入站)。