您能否仅依靠安全组来安全地限制对可公开访问的 RDS 的访问?
Can you rely solely on security groups to securely restrict access to Publicly Accessible RDS?
我试图在设置 RDS 和 lambda 时平衡 convenience/cost 与安全性。我的最终目标是使架构尽可能简单和便宜,同时保证其安全。
我有几个基本要求让我很头疼,试图在不显着增加成本和复杂性的情况下平衡我的选择:
- (some) Lambdas 需要访问互联网
- 我想(有时)直接访问数据库
我可以走 "best practices" 路线,在 public 子网中使用堡垒主机、私有 lambda、具有互联网访问权限的 lambda 和 RDS,所有这些都在单独的私有子网和安全组中,并使用 NAT 网关用于 lambda 进行通信。这会增加大量成本和使用 NAT 网关和堡垒主机的移动部件。
作为(希望)大于安全损失的成本和复杂性 "step-down",我正在考虑以下几点:
- 将所有 lambda 放在私有子网中。对于需要访问互联网的 lambda,它们可以直接调用位于 VPC 之外的单独的 lambda 来访问 public 互联网。我可以做一些简单的事情来避免在此处等待响应时支付 2 倍的空闲时间吗?
- 为了解决堡垒主机问题,我尝试将 RDS 放在 public 子网中并将其设置为可公开访问,但仍然只允许从私有 lambda 安全组进入。然后我可以将我的 IP 添加到安全组并限制外部进入我的 IP。假设我只在实际需要时才允许我的特定 IP,我是否可以单独信任安全组在这里足够安全?或者您实际上是否也需要使用私有子网来获得安全性?
我还没有真正在任何地方看到这个建议,这就是为什么我在这里问 - 我错过了什么让这个想法变得可怕?
安全组完全可靠用于保护 VPC 中的资源。
但是,一些安全专家建议"security in depth" 添加多层安全。这样,如果一层配置不正确,资源就不会受到攻击。因此,他们建议使用安全组 and 私有子网 and 限制对特定 IP 范围 and 的访问,使用多重身份验证等
总是在您的 'appetite for risk' 与成本和努力之间进行权衡。
成本似乎是您最关心的问题,因此您愿意付出一些额外的努力(使用 2 个 Lambda 函数)或降低安全性(通过不使用私有子网)。没关系,因为这始终是一种权衡,决定权在你。
我试图在设置 RDS 和 lambda 时平衡 convenience/cost 与安全性。我的最终目标是使架构尽可能简单和便宜,同时保证其安全。
我有几个基本要求让我很头疼,试图在不显着增加成本和复杂性的情况下平衡我的选择:
- (some) Lambdas 需要访问互联网
- 我想(有时)直接访问数据库
我可以走 "best practices" 路线,在 public 子网中使用堡垒主机、私有 lambda、具有互联网访问权限的 lambda 和 RDS,所有这些都在单独的私有子网和安全组中,并使用 NAT 网关用于 lambda 进行通信。这会增加大量成本和使用 NAT 网关和堡垒主机的移动部件。
作为(希望)大于安全损失的成本和复杂性 "step-down",我正在考虑以下几点:
- 将所有 lambda 放在私有子网中。对于需要访问互联网的 lambda,它们可以直接调用位于 VPC 之外的单独的 lambda 来访问 public 互联网。我可以做一些简单的事情来避免在此处等待响应时支付 2 倍的空闲时间吗?
- 为了解决堡垒主机问题,我尝试将 RDS 放在 public 子网中并将其设置为可公开访问,但仍然只允许从私有 lambda 安全组进入。然后我可以将我的 IP 添加到安全组并限制外部进入我的 IP。假设我只在实际需要时才允许我的特定 IP,我是否可以单独信任安全组在这里足够安全?或者您实际上是否也需要使用私有子网来获得安全性?
我还没有真正在任何地方看到这个建议,这就是为什么我在这里问 - 我错过了什么让这个想法变得可怕?
安全组完全可靠用于保护 VPC 中的资源。
但是,一些安全专家建议"security in depth" 添加多层安全。这样,如果一层配置不正确,资源就不会受到攻击。因此,他们建议使用安全组 and 私有子网 and 限制对特定 IP 范围 and 的访问,使用多重身份验证等
总是在您的 'appetite for risk' 与成本和努力之间进行权衡。
成本似乎是您最关心的问题,因此您愿意付出一些额外的努力(使用 2 个 Lambda 函数)或降低安全性(通过不使用私有子网)。没关系,因为这始终是一种权衡,决定权在你。