我可以从json文件中将值写入Vault:
# cat secrets.json
{ "value": "bGktzwatc" }
{ "value": "AGktzwatB" }
尝试通过读取json文件创建新值时,Vault只读取文件中的第一个值:
# ./vault write secret/passwd1 @secrets.json
Success! Data written to: secret/passwd1
# ./vault read secret/passwd1
Key Value
--- -----
refresh_interval 768h0m0s
value bGktzwatc
是否可以从文件读取多个值并通过保险库写入不同的密钥?
我的要求是通过读取文件为多个键添加值:
Key Value
--- -----
refresh_interval 768h0m0s
value bGktzwatc
Key Value
--- -----
refresh_interval 768h0m0s
value AGktzwatB
答案 0 :(得分:2)
AFAIK,你不能这样,因为vault write
命令期望key
被指定为命令的一部分。
尝试> vault write @data.json
时,看起来文件包含的内容并不重要,因为代替wrong file format
类错误,有关于命令的可用参数的一般输出。 / p>
也许它会有所帮助:您可以为特定密钥指定多个值:
# cat secrets.json
{ "value1": "bGktzwatc", "value2": "AGktzwatB" }
然后键将包含
Key Value
--- -----
refresh_interval 768h0m0s
value1 bGktzwatc
value2 AGktzwatB
答案 1 :(得分:1)
如果您要通过文件将数据从一个键复制到另一个键,则这种方法对我有用:
vault read -format=json secret/mykey1 > file.json
cat file.json | jq '.data' | vault write secret/mykey2 -
请注意,使用jq
会将"data"
子元素置于顶层。
答案 2 :(得分:0)
使用Vault 1.1.3和密钥引擎,我可以从文件中写入密钥:
cat secrets.json | vault write secret/yoursecrets -
这也有效:
vault write secret/yoursecrets @secrets.json
请注意,如果secrets.json
是使用vault read
生成的,则您的秘密位于JSON响应的data
字段中,例如{ "data": {"username":"Mario", "password": "It's-a me, Mario!"} }
。