假设您有一些由负载均衡器 (ELB) 支撑的 EC2 服务器。
假设它们位于公共 VPC 中 - 即每个 EC2 实例都有一个公共 IP 地址,并且每个实例都使用安全组 (SG) 进行防火墙保护,因此只有 ELB 可以直接访问这些实例。
假设服务器做需要传出的公共互联网访问。
我们知道AWS 推荐的方法而是使用私有 VPC + NAT 来提高安全性。
但是,与上述做法相比,这样做有什么实际好处呢?
据我了解,由于 SG 规则,在上述场景中没有人可以直接连接到实例,而且由于这是在 AWS 基础设施中处理的,因此我们的服务器不会因连接泛滥而陷入瘫痪 - 数据包永远不会到达我们。
那么,如果 AWS 防火墙将你关闭,那么拥有公共 IP 地址有什么害处呢?
我是否错过了私有 VPC 的其他好处?我上面的某个断言是错误的吗?
答案1
这其实是“纵深防御”概念的问题。使用公共地址,您完全依赖安全组配置来保护您的服务器 - 确保配置正确,确保没有人意外修改它,等等。
您可以反过来问自己,既然私人地址就足够了,为什么还需要公共地址?
答案2
我想说私有 VPC + NAT 选项具有较少的管理开销,并且由于错误(例如未分配 SG 或一些相当开放的规则)而导致访问保持开放的可能性较小。
此外,在不了解平台内部结构的情况下,我可以做出有根据的猜测,认为 VPC + NAT 可以更好地利用平台资源。如果您有公共 IP,则将被拒绝的入站流量可能必须穿越 AWS 网络到达您的虚拟机。如果您没有公共 IP,则不会有入站流量进入您的虚拟机 :)