我在docker环境中实现了一组微服务。并且这些服务中的每一个使用JWT令牌彼此通信。当服务A呼叫服务B
时公钥/私钥生成过程由微服务本身完成,然后它们将公钥传递给公钥存储。所以公钥存储必须做的唯一事情,
我要做的是与此图中显示的内容类似。
我从上面获得了上面的图像:https://www.youtube.com/watch?v=dBdZrw2pPvc&t=462s
所以我的问题是,这种公钥存储是否有任何标准实现?如果是这样,他们是什么?
答案 0 :(得分:4)
披露:我是Conjur的首席技术官。
考虑工作流程:
公钥存储必须确保:
但另外还有一点很难。在步骤(5)中,当密钥存储器接收到服务A的密钥时,它需要验证密钥实际上来自服务A,而不是来自冒名顶替者。换句话说,它必须验证请求。
如何执行此操作取决于基础结构的详细信息。如果您使用的是原始Docker(而不是Kubernetes),则可以使用服务器上的代理将容器的IP地址与计算机上的容器列表(docker ps
)相关联。这将告诉您容器的图像,它应该告诉您服务的身份。
这个问题有很多细微之处,解决方案对于每个容器环境都有所不同。
答案 1 :(得分:1)
如果安全性不重要:
如果安全很重要:
老实说,有更多的选择,但这些是DevOps社区最着名和最严格的一些选项。