AWS 虚拟私有云允许通过多种方式限制从 Internet 访问 VPC 网络上的设备。
1) 将设备放入私有子网(无互联网网关)。每台设备都可以使用私有 IP 与其他设备通信。没有设备具有公共 IP,因此无法从互联网访问。
2) 将设备放入公共子网。每个设备都有一个公共 IP,因此它们可以使用私有或公共 IP 与其他内部设备通信。添加安全组以限制来自互联网的访问。
问题:
从安全角度来看,这两种方法是否相同?
还有其他需要考虑的因素吗?
答案1
在安全性方面,实际上没有区别。具有入站允许所有安全组的私有子网中的 EC2 实例和没有规则的单个安全组中的 EC2 实例都无法从互联网访问。
但是公共子网中的实例可寻址来自互联网,因为它具有全球唯一的 IP,互联网上的人们可以尝试向其发送数据包。
私有子网提供了一些额外的安全考虑 - 它们明确指出实例无法从互联网访问。它也很难改变,而安全组方法可以通过添加入站规则来更改。但最重要的是,许多人认为这种方法是最佳实践(无论是否如此),因此它可以安抚勾选框管理器和安全审计。
值得注意的是,AWS 中的 IPv4总是使用 NAT,即使没有 NAT 网关。公有子网中的 EC2 实例实际上没有公有 IP -> 如果您检查目标数据包,它们将转到内部 IP。这是因为 AWS 在后台使用 NAT。
我个人认为私有子网增加了复杂性,却没有带来额外的好处。如果可能的话,我会尝试使用 IPv6,完全忽略 NAT,只使用安全组 + 应用层安全。但是 IPv6 的支持很差,而且很多人不太了解 NAT,所以除非这些问题不存在,否则请使用私有子网。
答案2
不完全是。首先,你列出的要点。
是的,就目前而言,这是正确的。您还可以将 NAT 网关(或 NAT 实例)放在公共子网中以提供互联网访问,这对于软件更新等非常有用。
设备始终使用私有 IP 地址与其他内部服务器通信。它们使用公有 IP 地址与 VPC 之外的站点通信。
您可以拥有三个层级,而不必将服务器放在公共子网中。将负载均衡器/代理放入公共子网,将 Web/应用服务器放入应用程序子网,将数据库服务器放入第三个子网
现在,你的问题
不,它们完全不同。一个是隔离的,除非你以某种方式打开它,否则它是安全的;另一个是在互联网上提供的,因此其安全性仅与你的软件一样安全。
是的。很多。所有安全组都通过端口进行限制。您还可以放入拦截流量的服务以进行完整的入口和出口扫描,您可以使用云服务来执行类似操作,您可以使用 Guard Duty 来监控您的流量。
云安全是一个很大的话题。我举办了为期两天的 AWS 研讨会,以教育和引导新客户使用 AWS,其中一半以上的内容与安全有关 - 这只是高层次的内容。然后有很多细节需要涵盖,之后还要做出决定。不过这是企业级的,涉及许多集成、公司政策、国家安全标准等。
如果您发布一个关于您想要实现的目标的具体问题(新问题),而不是理论上的问题,您就可以得到一些实用的建议。