【问题标题】:Risks involved with publicly accessible AWS RDS databases与可公开访问的 AWS RDS 数据库相关的风险
【发布时间】:2020-06-03 02:54:58
【问题描述】:

我遇到了多个准则,指出不应将 AWS RDS 实例配置为可公开访问,因为这是一个重大的安全风险。示例:RDS Publicly Accessible - RDS best practice

如果 RDS 实例配置了足够强且唯一的密码,几乎不可能被暴力破解,是否仍然存在安全风险?即使实例可以公开访问,一个强大且唯一的密码难道不会使实例相当安全吗?

【问题讨论】:

  • 请问您为什么要公开访问您的数据库?
  • 非常适合业余爱好设置或快速评估无敏感数据。但不是为了任何严重的事情

标签: amazon-web-services amazon-rds


【解决方案1】:

您仍然会受到暴力破解和其他拒绝服务攻击。

最佳做法是将数据库服务器放在私有子网上,并且只允许本地子网中的已知 IP 通过安全组进行访问。

有些更进一步,使用网络访问控制列表保护 VPC。

以这种方式设置适当保护的 RDS 服务器非常容易。如果您真的想保护敏感数据,我不会依赖单层防御。

【讨论】:

    【解决方案2】:

    由于涉及其他方面,这是一个重大风险

    • 通常,您更改数据库密码多少次?我怀疑不是很多
    • 更改数据库密码有多容易?它会影响正在运行的应用程序吗?
    • 您是否正确地将对 DB 的访问限制为少数 IP(这会将访问面限制在与私有子网相同的级别) - 或者您只允许任何 IP 访问?如果是这样的话,一旦密码泄露,你就没有保障了
    • 您/您的客户是否重视数据?大多数情况下,数据库是需要充分保护的高价值财产

    【讨论】:

      【解决方案3】:

      请记住,通过公开访问您的数据库,您实际上是在移除您拥有的顶层安全性。

      尽管您有一个强密码,但攻击者可能正在开发几种进入的方法(不仅仅是密码的暴力破解)。

      即使他们没有进入,他们也可能会阻止您通过一系列攻击访问它,无论它们是否会占用资源(CPU、内存、磁盘)或最大化总可用连接或端口。

      我想说的是,您的数据库永远不需要直接的公共访问权限,至少可以考虑使用某种堡垒主机,或者如果您愿意,可以考虑使用客户端 VPN(AWS 托管或 OpenVPN)预算紧张(您可以在不使用时随时关闭它们)。

      如果时间允许,看看Well-Architected Frameworksecurity pillar

      【讨论】:

        【解决方案4】:

        还要考虑。如果知道数据库密码的人想要更改或销毁数据,他们能做到吗?

        假设有人刚刚离开了你的公司。您可以取消他们的 VPN 访问权限或 AWS 凭证,但除非更改密码,否则他们仍然可以访问数据库。

        假设一名现任员工想要搞点恶作剧。在适当保护的网络中,只有应用程序服务器应该能够访问数据库。但是,如果数据库是公开的,那么工作人员可以访问数据库,甚至没有人知道是他们!

        这真的取决于您的“风险偏好”。如果这只是针对一个小项目,那么丢失数据(或暴露数据)不会产生很大影响。但是,如果您是一家大公司,如果数据丢失或暴露,这可能意味着您的业务结束。如果数据对其他人有价值,那么人们尝试获取它。在这种情况下,最好构建一个更安全的平台。

        【讨论】:

          猜你喜欢
          • 2017-07-26
          • 2020-08-12
          • 2015-04-17
          • 1970-01-01
          • 2018-04-25
          • 2019-07-28
          • 1970-01-01
          相关资源
          最近更新 更多