【问题标题】:Invalid key/value pair when adding json to vault将 json 添加到 Vault 时键/值对无效
【发布时间】:2022-10-04 22:43:32
【问题描述】:
我试过了:vault kv put -format=json secrets/path @file.json
收到此错误:
无法解析 K=V 数据:无效的键/值对“@file.json”:json 无法将数组解组为 map[string] interface {} 类型的 Go 值
尝试vault kv put -format=json secrets/path file.json 时,我得到:
无法解析 K=V 数据:无效的键/值对“file.json”:格式必须为 key=value
不知道我做错了什么。
【问题讨论】:
标签:
json
hashicorp-vault
vault
【解决方案1】:
如果您尝试将 JSON 文件作为参数传递,则第一种形式更正确。第二种形式没有引用文件,它只是无效的语法。
第一个表单上的错误消息表明您拥有的 JSON 文件格式不正确。所需的格式取决于您的 KV 引擎版本。如果您使用的是 KV v2 引擎,则需要将您的键:值对放入 data 顶级映射中。如果您使用的是 KV v1 引擎,则每个键:值对本身都需要是顶级对象。
KV v1:
{
"key": "value",
"foo": "bar",
"bar": "baz"
}
KV v2:
{
"data": {
"key": "value",
"foo": "bar",
"bar": "baz"
},
"options": {}
}
-output-curl-string 标志非常适合检查 vault CLI 工具在后台执行的操作,尝试添加它并查看二进制文件对您的命令应用了哪些转换。