Appearance
Local OpenBao
Use OpenBao as the local secrets-management service for EDP. It gives the stack a place to practice moving credentials out of application config and into a controlled secret store before adopting a production secret-management pattern.
This local service runs in OpenBao dev mode. It is useful for development and integration testing, but it is not production-safe because it starts unsealed with a known root token and in-memory storage.
Start OpenBao
sh
make openbao-upOpenBao starts at:
- API and UI:
http://127.0.0.1:8200 - Local root token:
OPENBAO_DEV_ROOT_TOKEN_IDfrom.env
The default local token in .env.example is intentionally not secret.
Seed Local Secrets
sh
make openbao-initThe local seed script creates a KV v2 mount at edp/ and writes sample local credentials for:
- PostgreSQL
- MinIO
- CKAN
- Airflow
- Superset
These values are examples only. They mirror the local defaults so developers can test secret retrieval without putting real credentials in Git.
Inspect Secrets
sh
make openbao-status
make openbao-list
make openbao-read-localThe tools container uses:
BAO_ADDR=http://openbao:8200BAO_TOKEN=$OPENBAO_DEV_ROOT_TOKEN_ID
Role in EDP
OpenBao should own secrets such as:
- Database passwords
- API tokens
- OAuth client secrets
- Webhook signing secrets
- Service-account credentials
- Encryption keys and certificates
Applications should receive short-lived credentials or runtime-injected secret values instead of reading committed .env secrets. .env.example should remain a non-secret template.
Production Notes
Before production use:
- Run OpenBao outside dev mode.
- Use durable storage such as integrated Raft or a managed backend.
- Initialize and unseal with a documented break-glass process.
- Avoid long-lived root-token use after bootstrap.
- Enable audit devices.
- Configure identity-based auth such as OIDC, Kubernetes auth, AppRole, or cloud IAM auth.
- Write least-privilege policies per service.
- Define rotation ownership and recovery procedures.
For early production, SOPS plus age may be enough. OpenBao becomes more attractive when EDP needs dynamic credentials, centralized access control, audit trails, and automated rotation.
Useful Commands
sh
make openbao-up
make openbao-init
make openbao-status
make openbao-list
make openbao-read-local
make openbao-logs
make openbao-downTroubleshooting
If OpenBao does not start:
- Confirm host port
8200is free. - Check
make openbao-logs. - Confirm the image configured by
OPENBAO_IMAGEcan be pulled.
If reads fail:
- Confirm
make openbao-inithas run after the latestmake openbao-up. - Confirm
OPENBAO_DEV_ROOT_TOKEN_IDmatches the token used byopenbao-tools. - Remember that dev-mode data is in memory and is lost when the container is recreated.