为什么 HVAC 看不到 HashiCorp Vault 中的秘密?

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

我正在尝试将 HashiCorp Vault 与 HVAC Python 客户端结合使用。

我在本地主机上运行了vault docker容器(开发模式配置),创建了一个KV秘密引擎

kv1
(使用版本1 API),添加了一个秘密
mega_secret
,添加了一个键/值(
"hell" --> "yeah"
)它并尝试用 HVAC 来阅读它。

首先,我们去 docker 容器码头检查一下 Secret 是否有效:

# vault kv get kv1/mega_secret
==== Data ====
Key     Value
---     -----
hell    yeah

现在我正在尝试用 HVAC 来阅读它。

import hvac

client = hvac.Client(url="http://localhost:8200", token="hvs.4MzADdB9pIHAggqaQWQZASx0", namespace="")
assert client.is_authenticated()
assert not client.sys.is_sealed()

print(client.kv.v1.read_secret(path="kv1/mega_secret"))  # Here will be crash

错误信息:

hvac.exceptions.InvalidPath:没有路由“secret/kv1/mega_secret”的处理程序。
找不到路由条目。,在获取http://localhost:8200/v1/secret/kv1/mega_secret

如何修复?

python hashicorp-vault hvac
1个回答
3
投票

Vault 可以多次挂载相同的秘密引擎,每次都在其自己的挂载点上。您已选择使用

kv1
,没问题。

HVAC 默认假定

secret
是安装点的名称

您将能够通过指定安装点来读取您的秘密:

client.kv.v1.read_secret(mount_point="kv1", path="mega_secret")
© www.soinside.com 2019 - 2024. All rights reserved.