MTG KMS BYOK Tool Application configuration

Configuration file

The application config is done inside an application.properties file. This file can be placed in the same directory where the tool is started. If not the full path to the file must be set via the commandline option --spring.config.location.

Parameters in configuration files are always case-sensitive!

In case of Command byok no application.properties file is needed, all parameters are set via command line.

The application configuration consists of the following parts

Connecting to the KMS-Server

kmip.server-url=http://localhost:8080/kms-server/kmip (1)
kmip.truststore-file=truststore.p12 (2)
kmip.truststore-password=changeit (3)
1 The address of the KMS server
2 The truststore file for the TLS connections
3 The truststore password for the TLS connections

Definitions of the Azure Key Vaults

All following values come from the Azure Key Vault and app registration details in the Azure portal.

config.vaults.<vault-name>.url=https://<vault-name>.vault.azure.net (1)
config.vaults.<vault-name>.tenant-id=00000000-0000-0000-0000-000000000000 (2)
config.vaults.<vault-name>.client-id=00000000-0000-0000-0000-000000000000 (3)
config.vaults.<vault-name>.client-secret=00000000-0000-0000-0000-000000000000 (4)
config.vaults.<vault-name>.kek-name=<kek-name> (5)
1 The url for the Azure Key Vault
2 The Azure tenant id for accessing the Azure key vault
3 The Azure client id for accessing the Azure key vault
4 The Azure client secret for accessing the Azure key vault
5 The name of the Azure key, used as kek
Each key vault configuration needs an individual name. In general, this should be the Azure name of the Azure Key Vault.

Definitions of rekey policies

Each policy configuration must have an individual name.
config.policies.<policy-name>.renewal-interval=P1Y (1)
config.policies.<policy-name>.validity-period=P2Y (2)
1 The period, after which a renewal should be made.
2 The validity period for the new key(s).
Values must be in ISO-8601 period format. The minimum period which can be configured is one day.

Definitions of the MTG KMS tenants/keys

This section configures the tenant specific kms clients for accessing the MTG KMS and the tenant specific keys for the rekey and import tasks.

config.tenants[0].default-vault=vaultA (1)
config.tenants[0].default-policy=policyA (2)
config.tenants[0].kms-client.username=sdsadasdasdsdsad (3)
config.tenants[0].kms-client.password=sff545ffflj (4)
config.tenants[0].kms-client.keystore-file=keystore.p12 (5)
config.tenants[0].kms-client.keystore-password=<password> (6)
config.tenants[0].keys[0].uuid=00000000-0000-0000-0000-000000000000 (7)
config.tenants[0].keys[1].uuid=00000000-0000-0000-0000-000000000000 (8)
config.tenants[0].keys[1].vault=vaultB (9)
config.tenants[0].keys[1].policy=policyB (10)
1 The name of the Azure key vault, which should be used if not otherwise configure. (In this example, we assume there is an Azure key vault with the name vaultA configured, which is the <vault-name> at Definitions of the Azure Key Vaults)
2 The name of the rekey policy, which should be used if not otherwise configured. (In this example, we assume there is a rekey policy with the name policyA configured, which is the <policy-name> at Definitions of rekey policies)
3 The username of the kms client configured for the tenant.
4 The password of the kms client configured for the tenant.
5 The keystore file for the TLS client authentication.
6 The keystore password for the TLS client authentication.
7 The uuid of an MTG KMS private key which will use the default values for the Azure key vault and the rekey policy.
8 The uuid of an MTG KMS key private which will override the default values.
9 For each key, the Azure key vault to use can be overridden. For this key the Azure key vault vaultB will be used (we assume there is an Azure key vault with the name vaultB configured, which is the <vault-name> at Definitions of the Azure Key Vaults).
10 For each key, the policy to use can be overridden. For this key, the rekey policy policyB will be used (we assume, there is a rekey policy with the name policyB configured, which is the <policy-name> at Definitions of rekey policies).
Which parts of the KMS client must be configured (username/password or keystore) depends on the configuration in the MTG KMS.

Proxy (optional)

# configure this, if a proxy is necessary to connect to Azure
azure-client.http-proxy.url=http://<address>:<port>

Logging

Logging to stdout can be controlled by the --verbose options. If there is need for more (e.g., logging to a file) the logging can be further configured by adding a logback.xml configuration file in the application directory (See logback).

The full path to the logback.xml configuration file must be set via the commandline option --logging.config=logback.xml