Přiznám se: měli jsme hesla k databázím v Kubernetes Secrets (base64 encoded, ne šifrované), API klíče v environment proměnných. HashiCorp Vault to mění — centrální, šifrované, auditované úložiště tajemství.
Problém: secrets sprawl¶
Kubernetes Secrets jsou base64 encoded, ne šifrované. Kdokoliv s přístupem k etcd je přečte. To není bezpečné.
Vault architektura¶
- Seal/Unseal — potřebujete N z M klíčů pro unseal
- Auth backends — LDAP, Kubernetes, AWS IAM, GitHub
- Secret engines — KV store, dynamic credentials, PKI
- Policies — HCL pravidla kdo co smí
- Audit log — každý request zalogován
Kubernetes integrace¶
vault login -method=kubernetes \
role=api-server \
jwt=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
vault kv get secret/production/database
Dynamic secrets — game changer¶
Vault umí generovat dočasná databázová hesla. Aplikace požádá o credentials, Vault vytvoří uživatele v PostgreSQL s TTL, po expiraci ho smaže. Žádná sdílená hesla, žádná permanentní credentials.
Secrets management je základ bezpečné infrastruktury¶
Vault není triviální nasadit, ale centralizovaná, auditovaná správa tajemství je pro produkční prostředí nezbytnost.