Encryption HashiCorp Vault项目-在不覆盖现有密钥/值对的情况下写入其他密钥/值对

Encryption HashiCorp Vault项目-在不覆盖现有密钥/值对的情况下写入其他密钥/值对,encryption,cryptography,hashicorp-vault,Encryption,Cryptography,Hashicorp Vault,当我将第一个密钥/值对放入Vault时: vault write secret/item/33 item_name='item_name' 它运行良好,我得到: vault read secret/item/33 Key Value --- ----- refresh_interval 768h0m0s item_name item_name 但是如果我想添加字段项目

当我将第一个密钥/值对放入Vault时:

vault write secret/item/33 item_name='item_name' 
它运行良好,我得到:

vault read secret/item/33

Key                     Value
---                     -----
refresh_interval        768h0m0s
item_name               item_name
但是如果我想添加字段
项目类型

vault write secret/item/33 item_type='item_type' 
它覆盖了现有的一个:

vault read secret/item/33

Key                     Value
---                     -----
refresh_interval        768h0m0s
item_type               item_type

如何在不替换现有字段-键/值对的情况下将其他字段-键/值对写入Vault?

每个键只能存储一个值。() 您可以考虑一个合适的数据结构,并为此键写入一个长字符串,或者为每个值使用一个键,如下所示:

vault write secret/item/33/name item_name='item_name'
vault write secret/item/33/type item_type='item_type'

Vault不允许您附加到现有机密。这真的很烦人。首先必须读取以前的键/值,然后在写入新键/值的同时将它们写回

下面是我发现的一篇博客文章,其中有人谈到了这个过程:


本质上,他编写了自己的命令行工具,可以自动为您执行追加。他说他为自己的工作创建了这个工具,所以他不能共享代码,但他已经在Github上启动了一个名为
Vaulty

带有kv v2引擎的Vault增加了这个功能

vault kv patch secret/item newkey=newvalue

vault kv put secret/hello foo=世界兴奋=是
即使使用Key/value v1,只要在同一put命令中指定两者,您也应该能够设置多个。

我使用的是版本1,这是不允许的:(