Eclipse Hono Auth 服务器共享密钥的零停机轮换

Zero Downtime rotation of Eclipse Hono Auth Server Shared Secret

我们正在运行 Eclipse Hono,并希望对集群中的所有组件执行零停机更新。

为了在不同的 Eclipse Hono 组件之间进行身份验证,我们使用 Hono Auth 服务。 我们在那里配置了一个共享密钥 (HONO_AUTH_SVC_SIGNING_SHARED_SECRET) 用于签署已发行的令牌。 消费服务(例如 Command Router / Mongo DB Device Regsitry)配置了相同的密码。

更改共享密钥时,我们需要同时重启上述微服务的所有实例,这会导致短暂的停机时间。 如果我们执行滚动更新,旧实例将不会验证已经 运行 新共享秘密的实例的已发行令牌。

有没有人遇到同样的问题,或者知道如何执行零停机更新?

解决我们问题的一个选择是可以在 HONO_AUTH_VALIDATION_SHARED_SECRET 旁边配置另一个秘密 (HONO_AUTH_VALIDATION_SHARED_SECRET_FALLBACK),如果主要失败,将尝试该秘密。 像这样我们可以在不停机的情况下对所有组件执行滚动更新。

据我所知,使用证书而不是共享密钥具有相同的限制。

谢谢 克里斯

我也没有看到任何选项可以根据当前的实现循环共享密钥而不会导致任何停机。 为此,Hono 的组件需要支持配置多个共享机密以验证令牌,正如您正确指出的那样。也许你想和 Hono 一起为此打开一个问题?