Use AWS KMS to Auto-Unseal Vault
When HashiCorp Vault is initialized, it comes up in a sealed state. Sealing means encrypting Vault’s root key and locking down access to the data. Unsealing is the process of decrypting that root key to read the decryption key which decrypts the data. You can either choose to auto-unseal or manually unseal Vault. Manual unseal requires human intervention, typically more than one authorized person who has access to the unseal keys generated during the Vault initialization process. When using Auto-unseal, the keys are stored outside of the Vault, in an external KMS or HSM as specified.
In this Shortcut, you will learn how to set up automatic unsealing for your Vault instance using AWS KMS.
Prerequisites
-
An AWS account with access to create KMS keys.
-
Ensure Terraform is installed:
terraform --version
If it exists, you will see a version displayed. If not, find and use the instructions suitable for your system as available on the official HashiCorp documentation.
Create an AWS KMS Key
Create a KMS key using the Terraform code available here. Substitute your credentials - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY in the shortcut-kms.tf file:
git clone https://github.com/PJ1288/hashicorp-vault-shortcuts.git cd hashicorp-vault-shortcuts/aws-kms terraform init terraform plan terraform apply
If Terraform run is successful, you should see a KMS key in your AWS account like this:
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access