
1. Node Configuration
Each node runs an almost identicalvault.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:4. Joining Additional Nodes
4.1 Join vault-2
On vault-2, point to vault-1’s API:4.2 Join vault-3
Repeat on vault-3:5. Leadership Management
Current peers and roles:6. Automated Cluster Joining
Instead of manualraft 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.