【问题标题】:When to use Public Subnet vs Private Subnet?何时使用公共子网与私有子网?
【发布时间】:2019-11-27 10:21:22
【问题描述】:

我有一个想要向全世界开放的 Web 应用程序。我应该简单地创建公共子网并将此实例添加到其中,还是应该创建私有子网、NAT、负载均衡器并将此实例添加到其中?

我希望这个应用程序只能被某些 IP 访问。

您推荐哪种方式,为什么? 哪种方式最安全又经济实惠?

【问题讨论】:

  • 嗨 Satish,您的问题似乎很广泛。你能把它缩小到一个更全面的问题吗?此外,如果您可以添加有关您的主机和 Web 应用程序的更多信息,那将非常有用。谢谢!
  • @SatishKumar 运行您的应用程序需要多少个 Amazon EC2 实例(只需一个,还是应该跨多个实例扩展)?
  • @JohnRotenstein 我们现在只考虑一个。

标签: amazon-web-services subnet vpc private-subnet


【解决方案1】:

我会推荐私有子网中的实例,因为这是在私有子网中启动实例并将 LB 放在实例顶部的安全方法。

  • 这种方法的一大优势是您的实例是安全的,并且不会被公众访问。

私有实例的高级外观或一般示例可以是

要访问您的私有实例,您应该在公有子网中有一个实例,您可以从中访问该实例,通常 AWS 将其称为堡垒。

securing-your-vpc-using-public-and-private-subnets-with-network-acl

【讨论】:

  • 如果这是最安全的方式,那我们为什么要有公有子网?在什么情况下应该使用它?
  • 公共实例不应该用于应用程序,但它会像隧道一样访问您的私有实例。如果这是在私有子网中,你将如何做 ssh?
  • 所以当我们将堡垒保持在公共状态时,这意味着我们的堡垒也不安全。对吗?
  • 不,您应该为堡垒设置防火墙,您可以使用多因素身份验证配置 VPN,这样您就可以说它是安全的。 2fa,特定的 IP 和 VPN 密钥可以使事情更安全
  • 当我将实例公开并且只允许某些 IP 访问它时有多安全?
【解决方案2】:

如果你只有一个实例:

  • 不需要负载平衡器,因为不需要平衡流量
  • 不需要私有子网,但需要公开访问
  • 使用安全组 限制对应可访问的最小端口(例如端口 80、443)的访问以及登录能力(但仅限于您的 IP地址)

如果您有多个实例,则需要负载均衡器。在这种情况下:

  • 将负载均衡器放在公共子网中
  • 将实例放在私有子网中以提高安全性

但是,您实际上可以将所有内容保存在公共子网中,并且仅使用安全组来控制访问。安全性的正常目标是多层安全性使事情更安全。但是,设计选择取决于您。

【讨论】:

  • 你说得对,我也有同样的想法,但我的问题是,如果我们只为某些 IP 保持开放的安全组,我们有多安全?数据包将从 AWS IP 流向使用 Hops 的 IP,对吗?以便在我们将 VPN 隧道与 AWS 一起使用之前,也可以从该跃点访问该应用程序?请纠正我。
  • 安全组按文档说明工作。因此,如果配置是您想要的,那么您的要求就会得到满足。更广泛的“安全性”问题取决于人员和流程,因为他们可能会错误地配置事物或发布“秘密”信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-13
  • 2019-06-24
  • 1970-01-01
  • 2020-12-09
  • 1970-01-01
  • 2020-11-24
  • 1970-01-01
相关资源
最近更新 更多