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

问题描述 投票:0回答:3

我能够从 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

是否可以从文件中读取多个值并通过Vault写入不同的密钥?

我的要求是通过从文件中读取来向多个键添加值:

Key                 Value
---                 -----
refresh_interval    768h0m0s
value               bGktzwatc

Key                 Value
---                 -----
refresh_interval    768h0m0s
value               AGktzwatB
hashicorp-vault
3个回答
5
投票

如果您通过文件将数据从一个密钥复制到另一个密钥,这种方法对我有用:

vault read -format=json secret/mykey1 > file.json
cat file.json | jq '.data' | vault write secret/mykey2 -

请注意使用

jq
首先将
"data"
子元素带到顶层。


4
投票

AFAIK,您不能执行此操作,因为

vault write
命令期望将
key
指定为命令的一部分。

当尝试

> vault write @data.json
时,看起来文件包含什么并不重要,因为不是
wrong file format
类型的错误,而是有关命令可用参数的一般输出。


也许会有帮助:您可以为特定键指定多个值:

# cat secrets.json 
{ "value1": "bGktzwatc", "value2": "AGktzwatB" }

然后密钥将包含

Key                 Value
---                 -----
refresh_interval    768h0m0s
value1              bGktzwatc
value2              AGktzwatB

1
投票

使用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!"} }

© www.soinside.com 2019 - 2024. All rights reserved.