Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon What are the steps to enable the Key Management secrets engine in Vault
    HashiCorp Vault Key Management secrets engine enable Key Management create cryptographic key configure KMS provider Azure Key Vault key distribution


What are the steps to enable the Key Management secrets engine in Vault


here are the key steps to enable the Key Management secrets engine in HashiCorp Vault:

1. Enable the Key Management Secrets Engine:

bash
   vault secrets enable keymgmt
   

This enables the Key Management secrets engine at the default `/keymgmt` path. You can enable it at a different path by using the `-path` argument.

2. Create a Cryptographic Key:

bash
   vault write -f keymgmt/key/example-key type="rsa-2048"
   

This creates a new RSA-2048 cryptographic key named "example-key" in the Key Management secrets engine.

3. Configure a KMS Provider:

bash
   vault write keymgmt/kms/example-kms \
     provider="azurekeyvault" \
     key_collection="keyvault-name" \
     credentials=client_id="a0454cd1-e28e-405e-bc50-7477fa8a00b7" \
     credentials=client_secret="eR%HizuCVEpAKgeaUEx" \
     credentials=tenant_id="cd4bf224-d114-4f96-9bbc-b8f45751c43f"
   

This configures a new KMS provider for Azure Key Vault, specifying the necessary credentials.

4. Distribute the Key to the KMS Provider:

bash
   vault write keymgmt/kms/example-kms/key/example-key \
     purpose="encrypt,decrypt" \
     protection="hsm"
   

This distributes a copy of the "example-key" to the Azure Key Vault KMS provider, setting the purpose and protection level.

The key steps are:
1. Enable the Key Management secrets engine
2. Create a cryptographic key
3. Configure a KMS provider
4. Distribute the key to the KMS provider

This allows you to centrally manage cryptographic keys in Vault and distribute them to supported KMS providers like Azure Key Vault for secure storage and usage.

Citations:
[1] https://github.com/hashicorp/vault/blob/main/website/content/api-docs/secret/key-management/index.mdx
[2] https://developer.hashicorp.com/vault/docs/secrets/key-management
[3] https://developer.hashicorp.com/vault/api-docs/secret/key-management
[4] https://adfinis.com/en/blog/how-to-manage-secret-keys-with-hashicorp-vault/
[5] https://docs.platform.sh/add-services/vault.html