Why production Vault exists
Standing secrets, sprawl, and the platform you need.
In short. Most teams do not adopt Vault because they love new infrastructure.
Most teams do not adopt Vault because they love new infrastructure. They adopt it the week after a long-lived database password shows up in a public gist, or after an AWS access key from a forgotten CI variable starts mining crypto in someone else's account. The failure mode is standing privilege: a credential that works for months, is copied into five places, and has no owner when it needs to die.
A secrets platform is not a prettier password file. It is a system that authenticates callers, authorizes path-by-path access, encrypts data at rest behind a seal, emits an audit trail of every read, and can mint credentials that expire on their own. HashiCorp Vault is one such platform. This course walks from a toy vault server -dev to a production shape you can defend in an outage and in an audit — without pretending Vault is the only tool that can fill that role.
If you already store secrets in a cloud manager or in SOPS, you still need the same mental model: identity in, least privilege out, short lifetime by default. Vault just makes those properties explicit across databases, cloud APIs, and internal PKI in one control plane.
The problem Vault is built to solve
Static secrets sprawl. A Postgres password lands in a .env, then in a Kubernetes Secret, then in a runbook screenshot, then in a laptop backup. Rotation becomes a coordination problem across every consumer. Attribution is worse: when the password leaks, you cannot tell which service used which copy. Dynamic secrets and short-lived tokens shrink that blast radius by making expiry and revocation first-class.
Identity is the second half. Humans should not share a root token. Workloads should not embed long-lived Vault tokens in manifests. Production Vault hangs doors on the cluster: OIDC for people, Kubernetes (or cloud) auth for machines, ACL policies for what each door can open. Without that, you have encrypted storage with a shared skeleton key.
# Dev server — fine for learning, never for prodvault server -dev# note the printed Root Token and Unseal Key, then:export VAULT_ADDR='http://127.0.0.1:8200'vault status
Key Value--- -----Seal Type shamirInitialized trueSealed falseVersion 1.17.xStorage Type inmemHA Enabled false
What this course covers — and what it leaves alone
You will build an HA raft cluster, wire TLS and auto-unseal, configure OIDC and Kubernetes auth, write ACL policies, use KV v2 safely, mint dynamic database and cloud credentials, run a short-lived PKI, deliver secrets with AppRole and Vault Agent, turn on audit, rehearse break-glass, and practice snapshots. The advanced course goes deeper on namespaces, replication, Sentinel, and SPIFFE. This track is the production baseline every platform team needs first.
Myths to drop early: "Vault encrypts my Kubernetes Secrets automatically" (it does not unless you integrate it), "dev mode is almost production" (in-memory, unsealed, root printed), and "once it is in Vault it is safe forever" (policies, TTLs, and audit still decide outcomes).
Try this
Start a disposable dev server, write a KV secret, read it back, then stop the process and confirm the data is gone. That contrast is the whole reason durable storage and seals exist.
vault server -dev > /tmp/vault-dev.log 2>&1 &export VAULT_ADDR=http://127.0.0.1:8200export VAULT_TOKEN=$(grep 'Root Token' /tmp/vault-dev.log | awk '{print $NF}')vault kv put secret/demo password=s3cretvault kv get secret/demokill %1sleep 1vault status || true
====== Data ======password s3cretError checking seal status: ... connection refused# SUCCESS — demo secret lived only in memory
Takeaway
Production Vault exists to replace standing, copied secrets with authenticated, authorized, audited, expiring access. A password file in a safer box is not the goal.
Next: trade the in-memory toy for a three-node raft cluster and learn what quorum failure actually looks like.