#HashiCorp Vault

Industry-standard secret management.


#Installation

bash
1# Docker
2docker run -d --name vault \
3  -p 8200:8200 \
4  -e 'VAULT_DEV_ROOT_TOKEN_ID=myroot' \
5  hashicorp/vault
6
7# CLI
8export VAULT_ADDR='http://127.0.0.1:8200'
9export VAULT_TOKEN='myroot'

#Basic Operations

bash
1# Write secret
2vault kv put secret/myapp api_key=supersecret
3
4# Read secret
5vault kv get secret/myapp
6vault kv get -field=api_key secret/myapp
7
8# List secrets
9vault kv list secret/
10
11# Delete secret
12vault kv delete secret/myapp

#Dynamic Secrets

bash
1# Enable database engine
2vault secrets enable database
3
4# Configure database
5vault write database/config/postgres \
6  plugin_name=postgresql-database-plugin \
7  connection_url="postgresql://{{username}}:{{password}}@postgres:5432/mydb" \
8  allowed_roles="readonly"
9
10# Create role
11vault write database/roles/readonly \
12  db_name=postgres \
13  creation_statements="CREATE ROLE ..." \
14  default_ttl="1h"
15
16# Get dynamic credentials
17vault read database/creds/readonly

[!TIP] Pro Tip: Use dynamic secrets for databases - credentials auto-rotate!