使用python从hashicorp vault获取数据库密码(用户名和密码)

8ehkhllq  于 2023-02-20  发布在  Python
关注(0)|答案(1)|浏览(288)

我想使用hvac python库从hashicorp保险库获取凭证(用户名和密码),并将其打印出来或存储在某个变量中。但是,在最后一个print语句后,我收到错误TypeError: 'Response' object is not subscriptable。但是,我的凭证正在进行身份验证。
我的密码如下

import hvac 

vault_token = 's.MYBDmBvO5I.....' # Copying my token from vault

vault_url = 'https://vault.corp.foxbase.de/ui/vault/secrets'

client = hvac.Client(url=vault_url, token=vault_token)

res=client.is_authenticated()

print('here is : ',res)

secrets_list = client.secrets.kv.v1.read_secret(
    path = 'databases/creds/data-science-access'
)

print("secrets list: ", secrets_list['username'])

输出为

here is :  True
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-52-3a463dc902b7> in <module>()
     23 #secrets_list1 = secrets_list.json()
     24 
---> 25 print("secrets list: ", secrets_list['username'])

我在Vault中的凭据位于databases/creds/data-science-access中。当我在Vault终端"vault read databases/creds/data-science-access"中运行此命令时,它会生成如下凭据

Key      Value               
password xxx
username xxx

当我登录到我的保管库时,它看起来像

有没有人能纠正一下我错在哪里?也许是一些参数,比如"vault_url","vault_token"或"path"值,我错误地传递了。

b0zn9rqh

b0zn9rqh1#

您需要查询“数据”中的结果,基本上如下所示的最后一行:#print(“机密列表:“,secrets_list ['用户名'])print(“机密列表:“,机密列表[”数据“][”用户名“])

相关问题