Secret Management is an enterprise-only feature and requires the enterprise Bifrost image and a PostgreSQL config store.
Connect an external secret manager so provider keys and other credentials are never stored in Bifrost’s database. Configure vault_store under config_store in config.json.
Once connected, any secret field in config.json accepts a vault.<path> reference in place of a plaintext value or env.* reference. See Secret Management for the full list of supported fields, access modes, and secret rotation.
Configuration
AWS Secrets Manager
GCP Secret Manager
HashiCorp Vault
IAM role (recommended)
Static credentials
Role assumption
Attach an IAM role to your instance, ECS task, or EKS pod. No credentials needed in config - the AWS SDK inherits the role automatically.For EKS with IRSA, annotate your service account with the role ARN and leave credentials unset. access_key_id and secret_access_key must be set together.Assume a cross-account or restricted IAM role on top of any existing credential source. AWS fields
Minimum IAM policy for read_only:Add secretsmanager:CreateSecret, secretsmanager:PutSecretValue, and secretsmanager:DeleteSecret for read_and_write.Bind a GCP service account to your GKE pod or Compute Engine instance and omit credentials - Application Default Credentials are used automatically. credentials_json accepts a JSON string (the full key file contents) or a file path on disk.GCP fields
Required IAM role: roles/secretmanager.secretAccessor for read_only. For read_and_write, also grant roles/secretmanager.secretCreator, roles/secretmanager.secretVersionAdder, and roles/secretmanager.secretDeleter.Bifrost uses the KV v2 secrets engine. Auth is resolved in order: explicit token → AppRole → ambient VAULT_TOKEN env var. Token
AppRole
Ambient token
If VAULT_TOKEN is set in the environment and no token or AppRole is configured, Bifrost inherits it automatically. Useful with Vault Agent injection. HashiCorp fields
Minimum Vault policy for read_only:Add create, update, and delete on both paths for read_and_write.
Common fields
These apply regardless of backend:
Using vault references
Once configured, any secret field accepts a vault.<path> reference:
Full example