Encrypting Sensitive Information Stored in Configuration Files
The Insight Server and Execution Worker configuration files should be encrypted to secure any sensitive values they contain, such as passwords.
You will require administrator rights on the host machine.
Configuration values can be encrypted with a configuration key, supplied to the server or worker via the environment variable
INSIGHT_CONFIGURATION_KEY. The configuration key should fulfill three requirements. It should be:
- a securely random string of suitable complexity.
- unique to each server and worker.
- stored in a file that only the service account and administrators can read.
An unencrypted configuration property in
application.properties would look like this:
insight.server.persistence.mysql.password=plain-text-password
When a configuration property is encrypted, preventing its value from being read without the configuration key, it looks like this:
insight.server.persistence.mysql.password=ENC( bQTcy1mi3dbU7jDLraaDvJ5P08TXQQkIw6lWcmKX2RpGLVeL )
The following steps describe how to encrypt these values for the server, use the same procedure with appropriate values to secure the worker.