我正在用 Python 编写一个方法,该方法接受引擎名称,并列出目录中的所有子目录和机密。我一直在玩 hvac,我已经能够使用以下命令列出特定目录中的所有秘密:
client = hvac.Client()
client = hvac.Client(
url=os.environ['VAULT_URL'],
token=os.environ['VAULT_TOKEN']
)
path='myDirectory'
mount_point='myEngine'
response=client.secrets.kv.read_secret_version(
path=path,
mount_point=mount_point
)
print(response['data']['data'])
如前所述,这确实成功了,并且确实输出了指定路径内的内容,但是如果我想列出 中的所有内容mount_point
,我已经找到了说我应该使用的答案list_secrets
,但我似乎无法开始list_secrets
工作也没有指定 a path
。
我尝试了以下方法,但收效甚微。
mount_point = 'myEngine'
list_response = client.secrets.kv.v2.list_secrets(
path=mount_point
)
list_folders = list_response['data']['keys']
print(list_folders)
这显然不起作用,但如果我同时给它path
和,它确实有效mount_point
,但这给了我路径的内容,我需要引擎中的所有内容。
我知道给它mount_point
for 路径似乎很奇怪,但我真的想不出还有什么办法来列出整个路径,而且我mount_point
看到过看起来与此类似的旧示例。
有没有一种方法可以像我想要的那样以 JSON 格式获取输出,或者甚至可以列出引擎本身内部的所有内容(递归),然后自己构建 json 会很棒。