AWS - 安全组是否足够,或者是否需要私有和公有子网?

Dan*_*llo 2 amazon-ec2 amazon-web-services aws-security-group aws-application-load-balancer

假设我有一个 Web 服务器,它是一个 EC2 实例和一个 RDS。

EC2实例与RDS通信。

为了安全起见,我可以在应用程序负载均衡器后面设置此设置,并使用安全组仅允许入站流量通过 ALB。ALB 将仅通过 HTTPS 与互联网通信。

在内部,我可以设置一个安全组,仅接受来自 ALB 安全组的传入流量。我会将此安全组附加到 EC2 实例。然后,我可以拥有另一个安全组,仅允许来自 EC2 实例的传入流量。该安全组将附加到 RDS。

EC2 实例的安全组将允许通过 HTTPS 的出站流量用于更新、下载软件包等。

根据我对此设置如何工作的(有限)理解,与 RDS 的通信必须严格从 EC2 实例进行,并且与 EC2 实例的入站通信必须严格从 ALB 进行,ALB 配置为仅接受通过 SSL 的请求。

从安全性角度来说,这样的设置安全吗?

运营这样的机构会存在哪些风险?

配置私有和公共子集(如此处所示)有什么好处(如果有的话)?

Joh*_*ein 6

这完全取决于您的风险偏好

额外的安全层使事情变得更安全,但它们也让事情变得更加难以使用——只需看看机场安检、申请新护照或使用 NAT 网关获取互联网访问即可。

通过将资源放入私有子网中,可以增加一层额外的安全性。知道私有子网中的资源不会因安全组的错误配置而意外公开(但可以因子网的错误配置而公开!),这可以让人放心。

网络安全人员熟悉使用公共/私有子网的传统安全方法,并且没有在传统网络中拥有安全组的奢侈。因此,他们更“舒适”地使用旧式安全方法现代安全组。

因此,如果您愿意将资源放入公共子网并使用安全组来限制它们,那么这取决于您。如果您不向私有资源提供公共 IP 地址,则可以进一步保护资源,这将进一步保护它们免遭访问。

至少,将您的数据库设置为Publicly Accessible = No.