Skip to main content
In this walkthrough, you’ll configure three Vault Enterprise nodes on AWS to form a highly available (HA) Raft cluster with AWS KMS auto-unseal. We’ll cover node setup, initialization, joining new nodes, leadership management, and automated cluster joining.
Three overlapping terminal windows with command prompts against a backdrop of tech logos

1. Node Configuration

Each node runs an almost identical vault.hcl. The only differences are the node_id, api_addr, and cluster_addr.
Disabling TLS (tls_disable = true) is only recommended for demos. In production, always enable TLS for listener and cluster communication.
Nodes vault-2 and vault-3 use the same configuration, updating only node_id, api_addr, and cluster_addr.

2. Checking Initial Status

Before initialization, each node is sealed and uninitialized:

3. Initialize Vault on vault-1

On vault-1, run:
Since AWS KMS auto-unseal is enabled, Vault unseals automatically. Verify:
Authenticate and list the single Raft peer:

4. Joining Additional Nodes

4.1 Join vault-2

On vault-2, point to vault-1’s API:
Back on vault-1, confirm two-node membership:

4.2 Join vault-3

Repeat on vault-3:
Verify all three peers:
Log in with the root token on vault-3 to confirm shared auth:

5. Leadership Management

Current peers and roles:
To step down a leader (e.g., for maintenance):
After a new election:

6. Automated Cluster Joining

Instead of manual raft join, add a retry_join block under storage "raft" for auto-join on startup. Example for vault-2:
You can also leverage cloud auto-join (e.g., AWS tags, Azure resource groups) for dynamic discovery. See Vault Auto-Join for details.

With these steps, you have a resilient, three-node Vault Raft cluster featuring AWS KMS auto-unseal, HA failover, and automated node joins.

References

Watch Video