Skip to content

Latest commit

 

History

History
49 lines (35 loc) · 1.72 KB

README.md

File metadata and controls

49 lines (35 loc) · 1.72 KB

Vault Unseal

❔ Why

HashiCorp Vault provides a few options for auto-unsealing clusters:

Cloud KMS (AWS, Azure, GCP, and others) (cloud only)
Hardware Security Modules with PKCS11 (enterprise only)
Transit Engine via Vault (requires another vault cluster)
Potentially others

However, depending on your deployment conditions and use-cases of Vault, some of the above may not be feasible (cost, network connectivity, complexity). This may lead you to want to roll your own unseal functionality, however, it's not easy to do in a relatively secure manner.

So, what do we need to solve? We want to auto-unseal a vault cluster, by providing the necessary unseal tokens when we find vault is sealed. We also want to make sure we're sending notifications when this happens, so if vault was unsealed unintentionally (not patching, upgrades, etc), possibly related to crashing or malicious intent, a human can investigate at a later time (not 3am in the morning).

✔️ Solution

This repository provides a simple solution to the above problem. It is a small GO application that runs in the same K8s cluster as Vault. It watches the Vault status and if it finds that Vault is sealed, it will attempt to unseal it using the provided unseal keys.

💻 Installation

We recommend using the provided helm chart to install the application. The helm chart can be found in the helm folder of this repository.

📝 Configuration

The application will take a configuration file as input. The configuration file should be in JSON format and should contain the following fields:

{
  "unseal_keys": [
    "key1",
    "key2",
    "key3"
  ]
}

⚠️ Security

We are bringing encryption to the configuration file in the future.