Vault desde la entrada hasta la serie de competencia cuatro: use el código python para conectarse al servidor de Vault, almacenar contraseñas y leer contraseñas
1. Crear un cliente de Vault
Inicialice un nuevo cliente de Vault que utilizará la autenticación basada en token para todas sus solicitudes:
import hvac
import sys
client = hvac.Client(
url='http://127.0.0.1:8200',
token='hvs.BvXow4DjJ8VntB57DjQnd2hY',
)
2. Almacenar contraseña
Los secretos son datos confidenciales, como claves API y contraseñas, que no debemos almacenar en nuestro código o archivos de configuración. En cambio, queremos almacenar dichos valores en Vault.
Usaremos el cliente de Vault que acabamos de inicializar para escribir la contraseña en Vault de la siguiente manera:
create_response = client.secrets.kv.v2.create_or_update_secret(
path='my-secret-password',
secret=dict(password='Hashi123'),
)
print('Secret written successfully.')
3. Escribe el código completo de la contraseña
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.')
En cuarto lugar, la línea de comando para ver la contraseña.
Después de ejecutar el código, vea la contraseña en la línea de comando
Inicie una nueva terminal, use el token raíz
export VAULT_ADDR='http://127.0.0.1:8200'
export VAULT_TOKEN="hvs.BvXow4DjJ8VntB57DjQnd2hY"
Ver mi-contraseña-secreta contraseña
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. Usa el código para ver la contraseña
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!')
Ejecute el código, el resultado es el siguiente:
Hashi123
Access granted!