AWS RDS "Publicly Accessible = No" 与私有子网中的实例

AWS RDS "Publicly Accessible = No" vs instance in private subnet

我正在 AWS 上为我的一个 Web 应用程序创建基础设施。该应用需要 Mysql 个 RDS 实例。现在我想知道我是否应该简单地在 public 子网中创建 RDS 实例并将其设置更改为 Publicly Accessible=No,或者我必须在私有子网中创建这个 RDS 实例以获得更好的安全性等等。我很困惑上述任何选项是否会提供比其他选项更好的安全性。

我还读到,只需将安全组分配给实例即可充当防火墙,因此我可以拥有 publicly accessible=true RDS 实例及其安全组,仅允许从我的应用程序 EC2 实例进行访问。所以基本上我有下面提到的三个选项。

  1. 可公开访问 = public 子网中的真实 RDS 实例,其安全组仅允许访问 EC2 应用程序实例。

  2. 可公开访问 = public 子网中的虚假 RDS 实例。

  3. 私有子网中的 RDS 实例。

谁能解释一下上述方法在安全性方面的优缺点?

您说得对,安全组可以为您的数据库以及 Amazon EC2 实例提供足够的保护。

那么为什么 AWS 提供 public/private 个子网?这是因为许多客户需要它们,因为这是企业在使用云之前通常组织网络的方式。传统防火墙仅在子网 之间 起作用,而安全组 单独应用于每个实例 .

因此,如果您了解如何正确配置安全组,实际上根本不需要使用私有子网!但是,有些人更愿意将资源放在其中私有子网,因为它提供了额外的安全层。