使用Vault CLI,我可以获取以下路径的数据:
vault kv get -field=databag chef0/databags/wireguard/hedge然而,在我的打包脚本中,这是:
"{{ vault `chef0/databags/wireguard/hedge` `databag` }}"生成无数据错误:
template: root:1:3: executing "root" at <vault `chef0/databags/wireguard/hedge`
`databag`>: error calling vault: Vault data was empty at the given path.
Warnings: Invalid path for a versioned K/V secrets engine. See the API docs for
the appropriate API endpoints to use. If using the Vault CLI, use 'vault kv get'
for this operation.是否有将其中一个转换/映射到另一个的规则?
注意:为了消除不相关的权限问题,我使用根令牌运行了这两个命令。
发布于 2020-12-03 06:08:38
好吧,不确定这是在哪里记录的,我也不是说它不是,但这是我发现的:
似乎可以通过data子路径下的API访问存储在密钥中的任何数据,比如chef0。它还可以帮助您了解在与data相同的级别上有一个metadata子路径。
因此,Vault CLI似乎不会公开这些子路径,Vault HTTP-API和打包程序Vault-API会公开这些子路径。
正确的包装器咒语(鸡可选)是:
"{{ vault `chef0/**data**/databags/wireguard/hedge` `databag` }}"发布于 2020-12-04 12:36:53
您必须使用kv引擎的v2。对于该引擎,您确实需要在路径中包含/data/,如API docs中所示。对此前缀的要求也在the engine docs中进行了描述。我自己也遇到过同样的问题:-)
https://stackoverflow.com/questions/65110428
复制相似问题