Quick Installation of Vault and Consul
Apr 01, 18I would like to cover a quick and simple setup of Consul and Vault for learning purpose. These steps short circuit a real world advanced setup options.
Download the proper package for you OS and the architecture from
Download Consul https://www.consul.io/downloads.html Download Vault https://www.vaultproject.io/downloads.html
Consul Setup - write a shell or batch file with following command E.g. consul_start.bat with following content
Consul Startup command
consul agent -ui -server -data-dir mydata -advertise 127.0.0.1 -bootstrap-expect 1
Vault Setup - write a shell or batch file with following command E.g. consul_start.bat with following content
consul_start.bat
> vault server -config=vault-example.hcl
vault-example.hcl content
backend "consul" {
address="127.0.0.1:8500"
path="vault"
}
listener "tcp" {
address = "127.0.0.1:8200"
tls_disable = 1
}
disable_mlock = true
Initialize Vault
vault operator init
Error initializing: Put https://127.0.0.1:8200/v1/sys/init: http: server gave HTTP response to HTTPS client [0m The default address of the client uses https. Just set the -address parameter or set the VAULT_ADDRESS env var and you’ll be good to go.
Set Vault Address
set VAULT_ADDR=http://127.0.0.1:8200 vault operator init -key-shares=5 -key-threshold=2
-key-threshold - This defines the number of keys required to unseal vault -key-shares - This defines number of keys that should be generated during initialization
Sample Output
[0;0mUnseal Key 1: 45MbjNghzYmFjaagC5Fcx4qj5E2jOl5ZWYByFctXV+T3 [0m [0;0mUnseal Key 2: Z/TffCSL0mUw4NbMbHpf0dEjGge5iSZja6C7dEoY1AP1 [0m [0;0mUnseal Key 3: C5YvqiPS20VgtiPPDuqgEwsAt6+qPE0+qO7P8zyqCEJf [0m [0;0mUnseal Key 4: WLazf5dhHIQUSnOLLi5z29WFaLwD9ap9XASKbgHXXuc0 [0m [0;0mUnseal Key 5: O1fgO9aT38klIVemz6q5WCXlpQaFS4jjxByaACco9Ga4 [0m [0;0m [0m [0;0mInitial Root Token: 4360d91f-cf9d-a33f-45ca-2bdc699caef1 [0m
Make a note of at least two Unseal keys and your root keys unseal is a one time process as long as your backend does not change.
Now, let us unseal by running this command twice, provide atleast two unique unseal key from the init operation
Unseal Vault Command
vault operator unseal
Unseal Key (will be hidden):
Login, by making use of Root token that was generated during init process
Vault Login Command
vault login
Now , let us run commands to store and retrieve key/value sercrets
Vault Command to encrypt and decrypt
vault.exe write secret/my-app/s3password value=s3qwqwq vault.exe read secret/my-app/s3password
You may also login from the UI and navigate to view the stored key/values http://localhost:8500/ui/