Encryption (Key Management)
monetr supports encrypting secrets before they are stored in PostgreSQL. Other data may support encryption in the future but at the moment only Plaid credentials are encrypted.
To that end, monetr supports a few different providers. An outline of the configuration for key management:
If you are using the plaintext provider (which is the default), no additional options needs to be provided for the key
management configuration.
Plaintext
When plaintext is specified as the provider, monetr will not encrypt any secrets and all items in the secrets table
will be stored in plain text. This is fine for self hosted deployments or development environments.
AWS KMS Configuration
The AWS KMS will encrypt secrets using AWS's key management API. There is also an option to run a local version of AWS KMS for the local development environment for monetr.
OpenBao Transit Configuration
OpenBao is a self-hostable option for encryption. OpenBao keeps track of the encryption keys themselves while monetr leverages the Transit secrets engine to encrypt and decrypt data.
When running inside Kubernetes, monetr can use the kubernetes authentication method to access OpenBao. When this is
configured, monetr will automatically renew its OpenBao credentials a few moments before they expire. Other
authentication methods may require a non-expiring token such as the root token.
Vault Transit Configuration
The Vault Transit KMS provider is being deprecated in an upcoming monetr release. If you are currently using the Vault Transit KMS provider then please follow the Migration Guide as soon as possible to avoid future problems.
Hashicorp Vault is a self-hostable option for encryption. Vault keeps track of the encryption keys themselves while monetr leverages the Transit secrets engine to encrypt and decrypt data.
When running inside Kubernetes, monetr can use the kubernetes authentication method to access Vault. When this is
configured, monetr will automatically renew its Vault credentials a few moments before they expire. Other authentication
methods may require a non-expiring token such as the root token.