0

我有两个 EC2 实例,一个在公共子网 (10.1.1.0/24) 上,一个在私有子网 (10.1.2.0/24) 上,公共子网中的 EC2 实例与 Internet 连接和配置的服务正常工作。

在公有子网 10.1.1.0/24 中配置了一个具有弹性 IP 的 NAT 网关。私有子网上的默认路由是 [0.0.0.0/0 --> 公有子网中的 NAT 网关]。我在私有子网上有一个自定义网络 ACL,我观察到当入站/出站规则的源和目标设置为 10.1.1.0/24(公共子网)外部连接中断,但 ssh 有效。只有当源/目标设置为“任何”时,互联网连接才会恢复。我试图了解在私有子网上的网络 ACL 中应该使用什么确切的源/目标,以使 Internet 连接正常工作。

4

1 回答 1

0

要允许来自私有子网的实例使用 NAT 网关访问互联网,您的 NACL 或 SG必须允许互联网流量。NAT 不会将 Internet 流量更改为私有 VPC 流量。因此,如果您删除0.0.0.0/0互联网连接停止。

这在 AWS docs on Instances cannot access the internet中有解释:

确保与私有子网和公共子网关联的网络 ACL没有阻止入站或出站 Internet 流量的规则

因此,0.0.0.0/0对于私有子网中的实例,您必须在您的 NACL 和 SG 中允许(如果您只想要部分 Internet 流量,则必须允许一些 IP 范围)。

作为旁注,通常不修改 NACL,并且通常使用默认设置。相反,安全组是控制对实例的访问的首选。

于 2020-09-14T04:37:27.757 回答