Vault从入门到精通系列之四:使用python代码连接Vault服务器,存储密码、读取密码

Vault从入门到精通系列之四:使用python代码连接Vault服务器,存储密码、读取密码

一、创建Vault客户端

初始化一个新的 Vault 客户端,该客户端将对其所有请求使用基于令牌的身份验证:

import hvac
import sys



client = hvac.Client(
    url='http://127.0.0.1:8200',
    token='hvs.BvXow4DjJ8VntB57DjQnd2hY',
)

二、存储密码

秘密是我们不应该存储在我们的代码或配置文件中的敏感数据,例如 API 密钥和密码。相反,我们希望在 Vault 中存储这样的值。

我们将使用刚刚初始化的 Vault 客户端向 Vault 写入密码,如下所示:


create_response = client.secrets.kv.v2.create_or_update_secret(
    path='my-secret-password',
    secret=dict(password='Hashi123'),
)

print('Secret written successfully.')

三、写入密码的完整代码

import hvac
import sys

client = hvac.Client(
    url='http://127.0.0.1:8200',
    token='hvs.BvXow4DjJ8VntB57DjQnd2hY',
)

create_response = client.secrets.kv.v2.create_or_update_secret(
    path='my-secret-password',
    secret=dict(password='Hashi123'),
)

print('Secret written successfully.')

四、命令行查看密码

执行代码后,命令行查看密码

新起一个终端,使用根令牌

export VAULT_ADDR='http://127.0.0.1:8200'
export VAULT_TOKEN="hvs.BvXow4DjJ8VntB57DjQnd2hY"

查看my-secret-password密码

vault kv get -mount=secret my-secret-password
========= Secret Path =========
secret/data/my-secret-password

======= Metadata =======
Key                Value
---                -----
created_time       2023-06-19T06:38:47.440087Z
custom_metadata    <nil>
deletion_time      n/a
destroyed          false
version            1

====== Data ======
Key         Value
---         -----
password    Hashi123

五、使用代码查看密码

read_response = client.secrets.kv.read_secret_version(path='my-secret-password')

password = read_response['data']['data']['password']
print(password)

if password != 'Hashi123':
    sys.exit('unexpected password')

print('Access granted!')

执行代码,输出如下所示:

Hashi123
Access granted!

猜你喜欢

转载自blog.csdn.net/zhengzaifeidelushang/article/details/131287833