何时使用 Public 子网与私有子网?
When to use Public Subnet vs Private Subnet?
我有一个要向全世界开放的 Web 应用程序。我应该简单地创建 public 子网并将此实例添加到其中,还是应该创建私有子网、NAT、负载平衡器并将此实例添加到其中?
我希望此应用程序只能由某些 IP 访问。
您推荐哪种方式,为什么?
哪种方法最安全且成本效益高?
我会推荐私有子网中的实例,因为这是安全的方法,即在私有子网中启动一个实例并将 LB 放在实例的顶部。
- 这种方法的最大优势是您的实例是安全的,并且无法从 public.
访问
具有私有实例的高级外观或一般示例可以是
要访问您的私有实例,您应该在 public 子网中有一个实例,您可以从中访问该实例,通常 AWS 将其称为堡垒。
securing-your-vpc-using-public-and-private-subnets-with-network-acl
如果您只有一个实例:
- 不需要负载平衡器,因为不需要平衡流量
- 不需要私有子网,但它需要public可以访问
- 使用安全组 限制访问应可访问的最少端口(例如端口 80、443)以及登录能力(但仅限于 您的 IP地址)
如果您有多个实例,则需要负载均衡器。在这种情况下:
- 将负载平衡器放在 public 子网中
- 将实例放在私有子网中以提高安全性
但是,您实际上可以将 所有内容 保留在 public 子网中,并且仅使用安全组来控制访问。安全性的正常目标是 多层安全性让事情变得更安全。但是,设计选择取决于您。
我有一个要向全世界开放的 Web 应用程序。我应该简单地创建 public 子网并将此实例添加到其中,还是应该创建私有子网、NAT、负载平衡器并将此实例添加到其中?
我希望此应用程序只能由某些 IP 访问。
您推荐哪种方式,为什么? 哪种方法最安全且成本效益高?
我会推荐私有子网中的实例,因为这是安全的方法,即在私有子网中启动一个实例并将 LB 放在实例的顶部。
- 这种方法的最大优势是您的实例是安全的,并且无法从 public. 访问
具有私有实例的高级外观或一般示例可以是
securing-your-vpc-using-public-and-private-subnets-with-network-acl
如果您只有一个实例:
- 不需要负载平衡器,因为不需要平衡流量
- 不需要私有子网,但它需要public可以访问
- 使用安全组 限制访问应可访问的最少端口(例如端口 80、443)以及登录能力(但仅限于 您的 IP地址)
如果您有多个实例,则需要负载均衡器。在这种情况下:
- 将负载平衡器放在 public 子网中
- 将实例放在私有子网中以提高安全性
但是,您实际上可以将 所有内容 保留在 public 子网中,并且仅使用安全组来控制访问。安全性的正常目标是 多层安全性让事情变得更安全。但是,设计选择取决于您。