当我将第一个键/值对放入Vault时:
vault write secret/item/33 item_name='item_name'
效果很好,我得到了:
vault read secret/item/33
Key Value
--- -----
refresh_interval 768h0m0s
item_name item_name
但如果我想要添加其他字段item_type
:
vault write secret/item/33 item_type='item_type'
它会覆盖现有的:
vault read secret/item/33
Key Value
--- -----
refresh_interval 768h0m0s
item_type item_type
如何在不替换现有字段的情况下将其他字段 - 键/值对写入Vault?
答案 0 :(得分:4)
使用kv v2的Vault已添加此功能。
“ vault kv补丁程序秘密/项目newkey = newvalue”
答案 1 :(得分:2)
每个键只能存储一个值。 (Confirmed by Vault developer) 您可以考虑一个合适的数据结构,并将长字符串写入此键,或者您为每个值使用单个键,如下所示:
vault write secret/item/33/name item_name='item_name'
vault write secret/item/33/type item_type='item_type'
答案 2 :(得分:1)
Vault不允许您附加到现有密钥。这实际上真的很烦人。首先必须读取之前的键/值,然后在写入新键/值的同时将它们重新写入。
以下是我发现有人谈论该流程的博文:https://www.fritz.ninja/extending-vault-cli-with-some-ruby-love/
基本上,他编写了自己的命令行工具,可以自动为你追加。他说他为自己的工作创建了这个工具,所以他无法共享代码,但是他在Github上创建了一个名为Vaulty
的开源版本:https://github.com/playpasshq/vaulty
答案 3 :(得分:0)
vault kv put secret/hello foo=world 兴奋=是 即使使用键/值 v1,只要您在同一个 put 命令中指定两者,您也应该能够设置多个。