什么使子网在 aws 中成为私有子网

What makes a subnet as private in aws

我有一些初学者的疑问。我有一个子网,其路由 table 指向互联网网关 (0.0.0.0/0)。但是 public ip 地址分配未启用。这是否使它成为私有或 public 子网?没有附加 nat 网关。它只是没有 public 分配给子网实例的 ip 的互联网网关。我知道 public 和 private 之间的区别。但是上面的案例对我来说似乎不太清楚。使子网成为私有或 public.

的确切条件是什么

Does that make this as private or public subnet?

它是 public,因为您可以使用 public IP 启动实例。无需在子网级别启用 public IP,即可拥有具有 public IP 并可从互联网访问的实例。

相比之下,私有子网中的资源无法从 Internet 访问,即使它们具有 public IP。是的,您可以在私有子网中使用 public IP 创建实例,但无法从互联网访问此类实例。

Amazon VPC 中 Public 子网 的定义是:

  • 附加到子网的路由Table有一个路由,目的地0.0.0.0/0指向到 Internet 网关

要与 Internet 通信,Public 子网中的资源还需要一个 Public IP 地址。

What are the exact conditions that makes the subnet as private or public.

subnet public or private 的原因是:

Public subnet: The subnet's IPv4 or IPv6 traffic is routed to an internet gateway or an egress-only internet gateway and can reach the public internet.

Private subnet: The subnet’s IPv4 or IPv6 traffic is not routed to an internet gateway or egress-only internet gateway and cannot reach the public internet.

因此,在您的情况下,由于您的子网有一条通往互联网网关的路由,因此该子网是 public 一个。

然而,尽管子网是 public,但如果您在没有 public IP 的情况下启动实例,这些实例将无法从互联网访问,也没有互联网连接。

所有答案都正确,但我认为它们还没有明确解决您的问题,所以让我试一试。

子网是私有的还是 public 仅取决于是否存在到 Internet 网关的路由。我想你知道这一点。

关于您的问题:

However the public ip address assignation is not enabled.

是否将子网设为私有?

答案是,因为在实例启动期间,您可以覆盖子网的public IP 地址属性。您可以尝试在您的子网中启动 EC2 实例。即使子网中未启用 Public IP 寻址,您仍然可以选择为实例分配 Public IP。

同样,您可以有一个 public 子网,但您的 NACL 配置为阻止到 public IP 的流量。这会使子网私有吗?

答案是,因为NACL 通常用于允许或拒绝特定的IP 和端口范围。例如,在 public 子网中,如果您识别出一组来自某些 IP 的恶意 activity,您可能希望在 NACL 中阻止它们。同样,在私有子网中,您可能不会通过在 NACL 中指定拒绝规则来阻止到 Internet 的流量。您只是没有配置到 Internet 网关的路由。

它只是一个 public 子网,实际上您是否启用 public IP 并不重要,因为您已连接互联网网关,您的子网已连接到互联网。它就像一个私有子网一样工作,因为您的互联网网关无法从互联网访问,因为您没有为它启用 public IP。但是一旦您启用 public IP,它就可以从 Internet 访问。