HashiCorp Vault 项目 - 编写额外的 key/value 对而不覆盖现有的
HashiCorp Vault project - write additional key/value pair without overwritting existing ones
当我将第一个 key/value 对放入 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
如何在不替换现有字段的情况下写入附加字段 - key/value 对 Vault?
每个键只能存储一个值。 (Confirmed by Vault developer)
您要么考虑合适的数据结构并向该键写入一个长字符串,要么为每个值使用一个键,如下所示:
vault write secret/item/33/name item_name='item_name'
vault write secret/item/33/type item_type='item_type'
Vault 不允许您附加到现有机密。这真的很烦人。您首先必须阅读之前的 key/values,然后在写入新的 key/values.
的同时将它们写回
这是一篇博客 post 我发现有人在谈论这个过程:https://www.fritz.ninja/extending-vault-cli-with-some-ruby-love/
本质上,他编写了自己的命令行工具,可以自动为您添加。他说他为自己的工作创建了这个工具,所以他不能分享代码,但他在 Github 上启动了一个名为 Vaulty
的开源版本:https://github.com/playpasshq/vaulty
带有 kv v2 引擎的 Vault 添加了此功能。
vault kv patch secret/item newkey=newvalue
vault kv put secret/hello foo=world excited=yes
即使使用 Key/value v1,您也应该能够设置多个,只要您在同一个 put 命令中指定两者即可。
当我将第一个 key/value 对放入 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
如何在不替换现有字段的情况下写入附加字段 - key/value 对 Vault?
每个键只能存储一个值。 (Confirmed by Vault developer) 您要么考虑合适的数据结构并向该键写入一个长字符串,要么为每个值使用一个键,如下所示:
vault write secret/item/33/name item_name='item_name'
vault write secret/item/33/type item_type='item_type'
Vault 不允许您附加到现有机密。这真的很烦人。您首先必须阅读之前的 key/values,然后在写入新的 key/values.
的同时将它们写回这是一篇博客 post 我发现有人在谈论这个过程:https://www.fritz.ninja/extending-vault-cli-with-some-ruby-love/
本质上,他编写了自己的命令行工具,可以自动为您添加。他说他为自己的工作创建了这个工具,所以他不能分享代码,但他在 Github 上启动了一个名为 Vaulty
的开源版本:https://github.com/playpasshq/vaulty
带有 kv v2 引擎的 Vault 添加了此功能。
vault kv patch secret/item newkey=newvalue
vault kv put secret/hello foo=world excited=yes 即使使用 Key/value v1,您也应该能够设置多个,只要您在同一个 put 命令中指定两者即可。