服务发现工具是否也负责提供服务凭证?

Are service discovery tools responsible for providing service credentials as well?

我正在尝试理解一些基本概念,因为我对服务发现和云编程的概念还很陌生(请原谅陈词滥调)。一段时间以来一直在我脑海中盘旋的一个问题是:像 Consul、etcd 和 Zookeeper 这样的服务发现解决方案是否也负责提供服务凭证?

例如,如果我们有一个 Web 应用程序查询有关数据库服务器位置的信息,谁负责向它提供连接到它的凭据(用户名、密码)?我知道这可能是主观的,但我很乐意了解更多与此相关的最佳实践。

Consul 和 Vault 工具完全按照您的建议进行拆分:Consul for service discovery, Vault 用于共享秘密(并实现诸如租约和动态秘密之类的东西)。

请阅读这两个工具,看看这个概念是否适合您。

确实,请参阅 Consul 和 Vault。现在,出于推理:服务注册中心通常不附带 full-fledged 组 ACL 等来保护秘密,而且它们会在网络上传播所说的秘密,将它们左右转储到磁盘上 - 这是一种安全措施恶梦。您希望确保尽可能限制访问权限,严格限制在 need-to-know 的基础上。因此,使用一些特定的工具来做到这一点——硬件安全模块、Vault、Chef 加密数据包等等。