HASHICORP VAULT:如何从文件中读取多个项目并将其写入Vault

时间:2017-04-12 07:11:10

标签: hashicorp-vault

我可以从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

3 个答案:

答案 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!"} }