如果 /data/ 未在其路径中使用,HVAC 无法从 HashiCorp Vault 读取机密

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

在 HashiCorp Vault 中,我创建了秘密引擎

a
,如下所示:

vault secrets enable -path=a kv
Success! Enabled the kv secrets engine at: a/

然后我创建一个这样的秘密:

vault kv put -mount=a b c=d
Success! Data written to: a/b

可以获取数据:

vault kv get -mount=a b
== Data ==
Key    Value
---    -----
c      d

现在我想使用Python HVAC库:

client = hvac.Client(...) # client is initialized and authenticated
client.secrets.kv.v2.read_secret(path='b', mount_point='a') # this throws exception:
hvac.exceptions.InvalidPath: None, on get http://localhost:8200/v1/a/data/b

我想知道为什么使用 localhost:8200/v1/a/data/b 。根据文档,看起来确实使用了该路径/{mount_point}/data/{path}。这不是我创建的路径。

我不知道如何在没有 /data/ 子目录的情况下使用该库。它可以以某种方式被覆盖吗?我是否错误地使用了 HVAC 或 Vault 机密?

编辑: 这个例子创建了一个秘密:

client.secrets.kv.v2.create_or_update_secret(path='b', secret=dict(c='d'), mount_point='a')

可以这样得到:

vault kv get -mount=a data/b
===== Data =====
Key        Value
---        -----
data       map[c:d]
options    map[]

所以我什至不确定是否可以使用 HVAC 和 CLI 放置相同的数据。

hashicorp-vault hvac
1个回答
0
投票

好像和KV版本的V1、V2有关。 如果我使用 V1,我可以获取在命令行上创建的数据。

client.secrets.kv.v1.read_secret('b', 'a')['data']
{'c': 'd'}
© www.soinside.com 2019 - 2024. All rights reserved.