【问题标题】:How to change redis passwd without downtime如何在不停机的情况下更改redis密码
【发布时间】:2021-06-22 09:33:29
【问题描述】:

出于安全考虑,我们计划定期(例如每 4 周)更改我们的 redis 密码。问题是如何在没有外部停机时间或仅在很短的时间内进行更改。

我的计划是:

  1. 清除redis服务器上的密码并重启。
  2. 鉴于不需要密码,即使密码已过时,客户端仍然可以重新连接到 redis 服务器
  3. 客户端会定期从配置中心重新加载新密码,不久之后,所有客户端都将更新为新密码。
  4. 将redis服务器改成新密码并重启。
  5. 客户端使用新密码重新连接到redis服务器

但是当我尝试它时(我正在使用redigo),我在第 2 步得到了ERR Client sent AUTH, but no password is set。如果不需要密码,我们似乎无法使用额外的密码连接到 redis。但是当我使用redis-cli时,它可以!我想知道 redis-cli 是如何实现这一点的,我怎样才能用 redigo 做到这一点?

【问题讨论】:

    标签: go redis redigo


    【解决方案1】:

    密码轮换的常见解决方案是:

    • 在密码翻转期间,让配置提供程序提供两个密码:当前密码和以前的密码。
    • 客户端尝试使用当前密码。
    • 如果失败,它将使用前一个重试。

    在翻转期结束时,使用新密码重新启动服务器,并从配置中删除旧密码。

    【讨论】:

      【解决方案2】:

      为什么不使用 Redis ACL https://redis.io/topics/acl

      1. 用密码1创建当前用户user1
      2. 一段时间后创建用户2/密码2
      3. 为应用程序重新连接留出宽限期(某些客户端允许您在 go 中设置 MaxConnAge)
      4. 删除用户1/密码1

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-05
        • 1970-01-01
        • 1970-01-01
        • 2018-09-02
        • 1970-01-01
        • 1970-01-01
        • 2019-07-09
        • 2016-05-21
        相关资源
        最近更新 更多