Authentication
Vault verifies an identity through a configured auth method and returns a token.
Chapter 1 of 16 · Supporting context · all Lockbox consumers
Build the consumer mental model: authenticate, receive narrow capability, obtain secret material, renew or replace it, then revoke it.
No prior Vault experience. Docker is needed only when you start the shared lab.
You can trace one Lockbox request from workload identity through policy to a leased response and name each owner.
| Owner | Consumer-facing responsibility |
|---|---|
| You own | Owns how a process consumes, reloads, and stops using secret material. |
| Platform team owns | Provides a trusted runtime identity and reachable Vault endpoint. |
| Vault owns | Operates Vault, auth methods, policies, engines, audit, and recovery. |
Vault verifies an identity through a configured auth method and returns a token.
Policies attached to that token decide which path operations are allowed.
A mounted backend stores data or generates credentials and certificates.
Metadata gives generated material a lifetime and usually a revocation handle.
export VAULT_ADDR=http://127.0.0.1:8200
vault status
vault auth list
vault secrets list| Symptom | The application reports permission denied. |
|---|---|
| Likely causes | Wrong auth mount, wrong role, missing capability, or a KV v2 path missing its data segment. |
| Inspect safely | Record HTTP status, operation, mount, and redacted path; query token capabilities. |
| Do not print | Token, request body, returned values, or the full environment. |
Break it: Treat the auth mount as though it were a secret engine path.
Fix it: Separate identity proof, policy evaluation, engine request, and lease in the request trace.
Escalate with time, endpoint, auth path, role, mount, namespace when relevant, status code, request ID, and sanitized error class. Never attach a credential or response body.
labs/bootstrap owns the disposable server, auth mounts, policies, roles, and engines; learner actions begin after setup.
$0; local containers only
Run labs/bootstrap/setup.sh and source .runtime/learner.env unless the chapter lab says AppRole alone is sufficient.
Start the shared disposable lab, inspect enabled auth methods and secret mounts, then map each mount to its Lockbox consumer.
cd learn-vault/labs/bootstrap
./setup.sh
./status.sh
docker compose ps
Complete every item in the Verify section using metadata-only evidence; no secret value appears in terminal output or tracked files.
Use the Failure drill and Break it / fix it evidence fields. Stop before broadening policy, weakening identity or TLS checks, or copying secret-bearing diagnostics.
Keep the shared lab for Chapter 2, or run ./cleanup.sh. Cleanup removes containers, volumes, and the ignored .runtime directory.
orders-api will use KV v2 for configuration, dynamic PostgreSQL credentials for data access, and short-lived PKI certificates for service identity.
No. It establishes identity and attaches policies; policies authorize operations.
It has an external lifecycle and can be revoked by its lease.
The application team, using a delivery contract supplied by the platform.
Operation, redacted path, role, expected capability, time, and correlation metadata.
Vault is a broker of identity-scoped capability, not an excuse to move static secrets from one file to another.