【问题标题】:Which method to use for updating CA certificates for AWS RDS用于更新 AWS RDS 的 CA 证书的方法
【发布时间】:2020-06-13 16:55:14
【问题描述】:

我目前需要更新我的 AWS RDS 实例的 CA 证书,据我所知有两种方法可以做到这一点:修改我的数据库实例或应用数据库实例维护(来源:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html) .

我选择哪种方法重要吗?在某些情况下,一种方法是否比另一种/更好?

【问题讨论】:

    标签: amazon-web-services amazon-rds aws-regions


    【解决方案1】:

    在这两种方法中,都假定 RDS 实例需要重启(读作中断!)。

    在我们的案例中,RDS 客户端应用程序(基于 java)在重新建立与重启的 RDS 实例的 JDBC/SSL 连接时遇到了麻烦(CA 升级后),因此我们不得不手动触发 RDS 客户端应用程序的重启以带来局势恢复正常。因此,我们需要准确了解 RDS CA 升级完成的时间点。

    因此,工作流程是这样的:

    1/ 首先将 CA (2019) 添加到客户端应用程序的信任库中!
    2/ 在 RDS 方面,在较低的环境中使用“立即应用”选项(在生产中,我们也使用“立即应用”,但在批准的维护窗口期间执行)。
    3/ 等待几分钟,让 AWS 应用 CA 并重启 RDS 实例。
    4/ 执行后期操作,例如重新启动客户端应用程序(如果需要)和回归测试。

    通过这种方式,我们能够将中断时间限制在几分钟内。

    警告:如果我们选择“在维护窗口期间应用”选项,我们将无法“控制”AWS 在什么时候升级 RDS (CA),因为 AWS 可能会选择任何在指定的维护时段内执行升级的时间点,不保证在维护时段的开始。

    希望这会有所帮助!

    【讨论】:

    • 只是澄清这次重启只需要几分钟,应该不会对使用应用程序产生太大影响?
    • @user11508332 - 在我的情况下,客户端应用程序在 RDS 实例重启后重新建立 JDBC/SSL 连接时遇到了麻烦。因此,还需要显式重启客户端应用程序(在 RDS 重启之后)以使事情恢复正常。每个客户端应用程序都不同,所以最好的方法是测试!
    • 抱歉,还有一个问题 - 下载后如何将证书添加到信任库?有没有办法在没有命令行的情况下做到这一点(可能通过 AWS 控制台/mysql 工作台??)
    • @user11508332 - 信任库位于客户端应用程序端,而不是 AWS/RDS。您可以使用 openssl 实用程序将 2019 RDS CA 证书添加到客户端应用程序的信任库。一个疑问:我预计您没有使用 JDBC-over-SSL 连接到 RDS。请首先检查,如果您使用的是 JDBC(没有 SSL),那么您需要在通过 CLI 应用 CA 升级时使用--no-certificate-rotation-restart 选项——它不会重新启动 RDS。更多信息here.
    • @user11508332 - 客户端应用程序是您在 EC2 上运行的 node.js 实现。使用 MySQL Workbench(作为另一个客户端应用程序)可能会或可能不会使用 SSL 与 RDS 连接——请查看answer。 ps:如果以上回答对你有帮助,请点击UP ARROW投票,让更多人受益。
    【解决方案2】:

    我喜欢通过在测试环境中修改数据库实例来手动测试更新。然后我确认任何依赖软件,并确保一切正常。

    然后在生产中,我让它在维护窗口更新期间进行修改。由于此更改需要重新启动,因此我让它在周日凌晨 3 点的维护时段内应用。

    因此,这两种方法都很方便,具体取决于您的需要。最终结果是相同的。

    【讨论】:

      猜你喜欢
      • 2020-02-27
      • 2020-02-13
      • 2020-03-27
      • 2020-01-24
      • 1970-01-01
      • 1970-01-01
      • 2020-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多