Vault の入門から熟練度までのシリーズ 4: Python コードを使用して Vault サーバーに接続し、パスワードを保存し、パスワードを読み取ります

Vault の入門から熟練度までのシリーズ 4: Python コードを使用して Vault サーバーに接続し、パスワードを保存し、パスワードを読み取ります

1. Vault クライアントを作成する

すべてのリクエストに対してトークンベースの認証を使用する新しい Vault クライアントを初期化します。

import hvac
import sys



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

2. パスワードを保存する

シークレットは、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.')

3. パスワードの完全なコードを書き込みます

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.')

4 番目に、パスワードを表示するコマンドライン

コードを実行した後、コマンドラインでパスワードを表示します。

新しいターミナルを起動し、ルート トークンを使用します

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

私の秘密のパスワードのパスワードを表示する

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

5. コードを使用してパスワードを表示します

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