Introduce integration with external Hashicorp Vault KMS#1031
Merged
Conversation
b0c1bc8 to
e9906cc
Compare
This was referenced May 16, 2026
…olume
Two bugs in the local KMS path:
1. lvol_controller called kms.create_data_encryption_keys() before
lvol.write_to_db(), so LocalKMS could not find the LVol in FDB.
Fixed by moving the KMS call to after write_to_db(), with cleanup
(lvol.remove()) on failure.
2. LocalKMS.import_data_encryption_keys() set crypto_key1/key2 on the
in-memory LVol object but never persisted them. Fixed by calling
write_to_db() after updating the keys.
the policy fix: the webappapi-policy was missing transit/encrypt/*, which is needed by import_data_encryption_keys it is used when cloning a volume (copying source keys to the clone's KV entry) and when a user provides explicit keys at volume creation.
boddumanohar
approved these changes
May 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This introduces an integration to an external KMS (Hashicorp Vault/openbao) for storing decryption keys.
The configuration is cluster-specific, an attribute
hashicorpVaultSettingsis introduced that at the moment only stores thebase_urlthe KMS is reachable with. The communication is done viaTLS, and authentication is done using client certificates. For this reason, mTLS needs to be used when using the external KMS.On the vault, a cert logins need to be enabled, a policy for the API container placed, and linked to the certificates the API presents.
To keep the implementation clean, the access to keys is managed through a common interface, that, depending on the presence of the KMS configuration either stores the secrets in the FDB, as is the status-quo, or offloads them to the KMS.