Azure Key Vault Encryption
Protect Secrets Manager connection details with Azure Key Vault Keys

Keeper Secrets Manager integrates with Azure Key Vault in order to provide encryption for Keeper Secrets Manager configuration files. With this integration, you can protect connection details on your machine while taking advantage of Keeper's zero-knowledge encryption of all your secret credentials.
Features
Encrypt and Decrypt your Keeper Secrets Manager configuration files with Azure Key Vault.
Protect against unauthorized access to your Secrets Manager connections.
Requires only minor changes to code for immediate protection. Works with all Keeper Secrets Manager SDK functionality.
supports RSA Asymmetric keys from Azure.
Prerequisites
Support the Java/Kotlin Secrets Manager SDK.
Requires Azure packages:
azure-identityandazure-keyvault-keys.Works with just RSA key types with
WrapKeyandUnWrapKeypermissions.
Supports the JavaScript Secrets Manager SDK
Requires Azure packages
@azure/identity,@azure/keyvault-keysWorks with just RSA key types with
WrapKeyandUnWrapKeypermissions.
Supports the Python Secrets Manager SDK
Requires package azure-identity azure-keyvault-keys
Works with just RSA key types with
WrapKeyandUnWrapKeypermissions.
Supports the .Net Secrets Manager SDK
Supports dotnet version
net9.0Requires Azure packages:
Azure.IdentityandAzure.Security.KeyVault.KeysWorks with just RSA key types with
WrapKeyandUnWrapKeypermissions.
Supports the GoLang Secrets Manager SDK
Requires Azure packages:
azcore,azidentityandazkeys.Works with just RSA key types with
WrapKeyandUnWrapKeypermissions.
Setup
1. Install Module
Setting up project using Gradle or Maven
Gradle
Maven
The Secrets Manager Azure Key Vault module can be installed using npm
The Secrets Manager Storage module can be installed using pip:
The Secrets Manager KSM modules are located in the Keeper Secrets Manager storage module which can be installed using dotnet
The Secrets Manager azure KSM module Integration can be installed using
2. Configure Azure Key Vault Connection
Ensure that you have an Azure Key Vault instance available, The following param needed to connect azure key vault
AZURE_TENANT_ID: The Microsoft Entra tenant (directory) ID.
AZURE_CLIENT_ID: The client (application) ID of an App Registration in the tenant.
AZURE_CLIENT_SECRET: A client secret that was generated for the App Registration.
You will need an Azure App directory App to use the Azure Key Vault integration.
3. Add Azure Key Vault Storage to Your Code
Once azure connection has been configured, You can fetch the Key to encrypt / decrypt KSM configurations using azure key and you need to tell the Secrets Manager SDK to utilize the key vault as storage.
Using Azure Key Vault Integration
Once setup, the Secrets Manager Azure Key Vault integration supports all Secrets Manager SDK functionality. Your code will need to be able to access the Azure Keys in order to manage the encryption and decryption of the KSM configuration file. Using Specified Connection credentials
To do this, create AzureKeyValueStorage instance and use this in SecretManagerOptions constructor.
The AzureKeyValueStorage will require the name of the Secrets Manager configuration file with azure_key_id , azure_keyvault_URL and configuration.
To do this, use AzureKeyValueStorage as your Secrets Manager storage in the SecretsManager constructor.
The storage will require an Azure Key ID, as well as the name of the Secrets Manager configuration file which will be encrypted by Azure Key Vault.
To do this, use AzureKeyValueStorage as your Secrets Manager storage in the SecretsManager constructor as config along with a token.
The storage will require a Azure Key ID, as well as the location of the Secrets Manager configuration file which will be encrypted by Azure-KSM Integration and Azure session configuration as shown below.
To do this, use AzureKeyValueStorage as your Secrets Manager storage in the SecretsManager constructor.
The storage will require an Azure Key ID, as well as the name of the Secrets Manager configuration file which will be encrypted by Azure Key Vault. Optionally AzureSessionConfig can be provided. If credentials are not provided the default credentials are used.
To do this, use NewAzureKeyValueStorage as your Secrets Manager storage in the SecretsManager constructor.
The NewAzureKeyVaultStorage requires the following parameters to encrypt the KSM configuration using Azure Key Vault:
ksmConfigFileName : The file name of KSM configuration.
keyURL: Azure Key URL
Additional Options
Change Key
We can change key that is used for encrypting the KSM configuration, examples below show the code needed to use it
Decrypt Config
We can decrypt the config if current implementation is to be migrated onto a different cloud or if you want your raw credentials back. The function accepts a boolean which when set to true will save the decrypted configuration to file and if it is false, will just return decrypted configuration. This function accepts a boolean, when set to true will save the decrypted configuration to file and when set to false will return decrypted configuration.
You're ready to use the KSM integration 👍
Last updated
Was this helpful?

