理解题:为什么 seal/unseal 存储 hashicorp 金库?

comprehension question: Why seal/unseal the storage of hashicorp vault?

今天我们开始在办公室玩 hashicorp 保险库,通过一些很好的教程,我们已经可以管理 storaged 秘密。但是有一点我还是不明白为什么要先解封存储?据我所知,目前 hashicorp 保险库给了我两个盒子,第一个盒子我必须用 3 个钥匙中的 2 个开封,然后我才能使用单独的钥匙访问第二个盒子,该钥匙受到政策的额外保护。

也许有一种我没有看到的方法或场景,但目前我想我会在启动服务器时打开外箱,如果服务器关闭,它将被密封,以便秘密"only" 受到应用程序令牌和策略的保护。

如果有人能给我一些解释 seal-/unsealing 的概念如何给我额外的安全性,我将不胜感激。 最好的祝福 丹

引用自 Hashicorp 文档

Vault 存储的数据是加密存储的。 Vault 需要加密密钥才能解密数据。加密密钥也与数据一起存储,但使用另一个称为主密钥的加密密钥进行加密。主密钥未存储在任何地方。

因此,要解密数据,Vault 必须解密需要主密钥的加密密钥。解封就是重构这个万能钥匙的过程。

Vault 不是将此主密钥作为单个密钥分发给操作员,而是使用一种称为 Shamir 的秘密共享的算法将密钥拆分为碎片。重构主密钥需要一定阈值的分片。

这是解封过程:一次添加一个碎片(以任何顺序),直到存在足够的碎片来重建密钥和解密数据。