在kubernetes-vault
repo 的图表中,您可以看到 init 容器通过 Vault 获取包装和解包secret_id
并兑换secret_id
令牌。为什么kubernetes-vault
控制器不自己解包和赎回,而只是将令牌传输到 init 容器?
https://github.com/Boostport/kubernetes-vault/raw/master/flow-diagram.png
在kubernetes-vault
repo 的图表中,您可以看到 init 容器通过 Vault 获取包装和解包secret_id
并兑换secret_id
令牌。为什么kubernetes-vault
控制器不自己解包和赎回,而只是将令牌传输到 init 容器?
https://github.com/Boostport/kubernetes-vault/raw/master/flow-diagram.png
注:kubernetes-vault项目是我公司维护的一个开源项目。
初始化容器解开秘密的原因是 2 折:
只有 init 容器和它所在的 pod 才能看到最终的秘密。这意味着 kubernetes-vault 控制器不知道令牌是什么,并且如果遭到破坏,也无法将其用于恶意目的。
如果有人截获了包装好的令牌并将其解包,则 init 容器将无法解包该令牌,这是集群已被破坏的一个很好的信号。如果将解包的令牌发送到 init 容器,它可能会被拦截,并且无法对此发出警报。