* `mount` is the mount point on the Vault server where the key provider should store the keys
* `mount` is the mount point on the Vault server where the key provider should store the keys
* `secret_token` is an access token with read and write access to the above mount point
* `secret_token` is an access token with read and write access to the above mount point
* [optional] `ca_path` is the path of the CA file used for SSL verification
* **[optional]**`ca_path` is the path of the CA file used for SSL verification
All parameters can be either strings, or JSON objects [referencing remote parameters](how-to/external-parameters.md).
All parameters can be either strings, or JSON objects [referencing remote parameters](how-to/external-parameters.md).
**Never specify the secret token directly, use a remote parameter instead.**
!!! important
Never specify the secret token directly, use a remote parameter instead.
#### Adding or modifying KMIP providers
#### Adding or modifying KMIP providers
@ -155,7 +180,8 @@ where:
* `client-certificate` is the path to the client certificate.
* `client-certificate` is the path to the client certificate.
* `client-key` is the path to the client key.
* `client-key` is the path to the client key.
The specified access parameters require permission to read and write keys at the server.
!!! note
The specified access parameters require permission to read and write keys at the server.
All parameters can be either strings, or JSON objects [referencing remote parameters](how-to/external-parameters.md).
All parameters can be either strings, or JSON objects [referencing remote parameters](how-to/external-parameters.md).
@ -165,20 +191,35 @@ This provider manages database keys using a local keyfile.
This function is intended for development or quick testing, and stores the keys unencrypted in the specified data file.
This function is intended for development or quick testing, and stores the keys unencrypted in the specified data file.
**It is not recommended for production.**
!!! important
Local keyfile providers are **not recommended** for production environments, they lack the security and manageability of external key management systems.
* `provider-name` is the name of the provider. You can specify any name, it's for you to identify the provider.
* `provider-name` is the name of the provider. You can specify any name, it's for you to identify the provider.
* `/path/to/the/key/provider/data.file` is the path to the key provider file.
* `/path/to/the/key/provider/data.file` is the path to the key provider file.
All parameters can be either strings, or JSON objects [referencing remote parameters](how-to/external-parameters.md).
!!! note
All parameters can be either strings, or JSON objects [referencing remote parameters](how-to/external-parameters.md).
### Delete a provider
### Delete a provider
@ -206,7 +248,8 @@ These functions list the details of all key providers for the current database o
* `pg_tde_list_all_database_key_providers()`
* `pg_tde_list_all_database_key_providers()`
* `pg_tde_list_all_global_key_providers()`
* `pg_tde_list_all_global_key_providers()`
**All configuration values include possibly sensitive values, such as passwords. Never specify these directly, use the remote configuration option instead.**
!!! important
All configuration values include possibly sensitive values, such as passwords. **Never** specify these directly, use the remote configuration option instead.
## Principal key management
## Principal key management
@ -219,7 +262,11 @@ Princial keys are stored on key providers by the name specified in this function
Creates or rotates the principal key for the current database using the specified database key provider and key name.
Creates or rotates the principal key for the current database using the specified database key provider and key name.
Creates or rotates the global principal key using the specified global key provider and the key name. This key is used for global settings like WAL encryption.
Creates or rotates the global principal key using the specified global key provider and the key name. This key is used for global settings like WAL encryption.