HashiCorp Vault — A centralized secret store with audit, rotation, and dynamic secrets.
Architecture:
Startup and initialization:
1vault server -dev23# Initialization (5 keys, 3 of 5 for unseal)4vault operator init -key-shares=5 -key-threshold=356# Unseal7vault operator unseal <key1>8vault operator unseal <key2>9vault operator unseal <key3>
KV Secrets Engine:
1vault secrets enable -path=secret kv-v22vault kv put secret/myapp/db password=supersecret3vault kv get -field=password secret/myapp/db
Vault Agent Injector for K8s:
1apiVersion: v12kind: Pod3metadata:4 annotations:5 vault.hashicorp.com/agent-inject: "true"6 vault.hashicorp.com/role: "myapp"7 vault.hashicorp.com/agent-inject-secret-db: "secret/data/myapp/db"8spec:9 containers:10 - name: app11 image: myapp:latest
Dynamic secrets (Database):
1vault secrets enable database2vault write database/config/mydb \3 plugin_name=postgresql-database-plugin \4 connection_url="postgresql://{{username}}:{{password}}@db:5432" \5 allowed_roles="myapp" \6 username="vault_admin" \7 password="admin_password"8# Vault generates unique passwords for each request!