To enable TDE using a key management system, you need to set "spec.fepChildCrVal.customPgParams" and "spec.fepChildCrVal.sysTde".
The fepChildCrVal.customPgParams section must define the following parameters:
Add the 'tde_kms' library to the list of libraries in shared_preload_libraries.
Example)
spec:
fep:
…
fepChildCrVal:
…
customPgParams:
shared_preload_libraries='pgx_datamasking,pg_prewarm,pg_stat_statements,tde_kms'Do not remove 'tde_kms' library from 'shared_preload_libraries' list after cluster creation.
Add a sysTde section under spec.fepChildCrVal to define the parameters required to connect to your key management system. Under sysTde there are two parameters defined:
tdeType
tdek
sysTde itself is an optional parameter (if sysTde is not defined, use a file-based keystore). However, if sysTde is defined by the user, sysTde.tdeType must also be defined.
If configuring TDE with a key management system, set sysTde.tdeType to "tdek".
Example)
sysTde:
tdeType: tdekIf you set sysTde.tdeType to "tdek", you must also define sysTde.tdek.
Define the connection information of the key management system in sysTde.tdek.kmsDefinition. Based on the information defined here, the operator creates the key management system connection information file used by Fujitsu Enterprise Postgres.
Information for multiple key management systems can be defined in kmsDefinition. For type, specify the type of key management system (either kmip, awskms, or azurekeyvault).
Example)
sysTde:
tdeType: tdek
tdek:
targetKmsName: kms_conninfo1
kmsDefinition:
- name: kms_conninfo1
type: kmip
...Refer to the Reference for details of each parameter.
Specify the name of the Secret or ConfigMap created in "4.13.1 Registration of Authentication Information" in the corresponding parameter under kmsDefinition. If type is awskms, profile specifies the name of the profile to use from the profile in the AWS client interface configuration file.
Example)
spec:
fep:
…
fepChildCrVal:
…
sysTde:
tdeType: tdek
tdek:
targetKmsName: kms_conninfo1
targetKeyId: xxxyyyzzz
kmsDefinition:
- name: kms_conninfo1
type: kmip
address: xxx.xxx.xxx.xxx
port: 100
authMethod: cert
sslpassphrase: ssl-password
cert:
certificateName: kmip-cert
caName: kmip-cacert
sslcrlName: kmip-crlSpecify one of the key management system names defined in kmsDefinition in sysTde.tdek.targetKmsName as the name of the key management system to use as the keystore. sysTde.tdek.targetKeyId specifies the key ID of the encryption key within that key management system to use as the master encryption key.