我正在使用 Python 库“hvac”访问 Hashicorp Vault 并创建/更新现有密钥。
在 Hashicorp Vault 中,我列出了最新版本的 2 个键/值对。例如,
k1=111
k2=222
运行下面的 Python 代码后,会在 Vault UI 中使用新的“k1”键值创建一个新的“version”,但是我丢失了“k2”键和值。
import hvac
client = hvac.Client(url='http://localhost:8200', token='hvs.xxxxxxxxxx')
client.secrets.kv.v2.create_or_update_secret(path='foo',secret=dict(k1='test123'))
有人知道我做错了什么吗?我正在尝试从 Vault UI 但在 python 中执行相当于“创建新版本”的操作。
感谢您的帮助!
对于针对 Vault API KV 版本 2 密钥引擎的创建或更新操作,您必须在参数中指定所有键值对,因为任何未指定的对都不会被视为有效负载的一部分:
client.secrets.kv.v2.create_or_update_secret(path='foo',secret=dict(k1='test123', k2='222')
或者可以使用 Patch 操作来保留任何未指定的键值对:
client.secrets.kv.v2.patch(path='foo',secret=dict(k1='test123'))