Primero el ejecutable. Como brew es mágico, tons:
brew install vault
Necesitamos un archivo de configuración. El que estoy usando ahorita en mi máquina es:
storage "file" {
path = "/experiments/vault"
}
listener "tcp" {
address = "127.0.0.1:8200"
tls_disable = true
}
disable_mlock = true
Luego, necesitamos prender el server:
vault server -config ~/vault-config.hcl
y pa que no chille por la falta de certificado:
export VAULT_ADDR=http://127.0.0.1:8200
Ya que está prendido el server, hay que inicializarlo
vault operator init
Esta madre va a generar 6 códigos. NO VAYAS A PINCHES LIMPIAR TU PANTALLA PORQUE ES UN PEDO. Los 5 primeros códigos son para destapar el vault, y si alguna vez tenemos que reiniciar el server, vas a necesitar cualesquier 3 de esas 5 llaves. La otra es el root token, así que TAMPOCO LO VAYAS A PERDER. Cuando inevitablemente la cagues y los pierdas (obvio sólo en tu entorno de dev) pues vas a tener que borrar el directorio donde se guarda todo y empezar de nuez. Ni peiper.
Aunque el server está prendido, así nomas no funciona. Necesitamos hacer un proceso de unseal
para que pueda aceptar métodos de auth. Para eso hay que correr:
vault operator unseal
3 veces, cada vez entregándole un token diferente de los 5 que nos dio.
Como esta cosa es paranoica y no mamadas, el que ya hayas prendido el server, luego lo hayas inicializado, y luego destapado, no implica que puedas escribir/leer ni vergas. Ahora necesitamos autenticarnos. Obvio no has perdido el root-token que generó esta cosa al principio, y lo vas a poder usar al hacer:
vault login
Se pueden configurar otras formas de autenticación a esta cosa, tales como:
vault auth enable github
vault write auth/github/config organization=resuelve
y con eso los usuarios con cuenta de github en la organización de resuelve van a poder hacer login haciendo:
vault login -method=github
Van a necesitar generar un personal access token que pueden generar en https://github.com/settings/tokens y tiene que tener mínimo read:org, read:user
pa que jale chido.
Uno de los usos principales de Vault es tener un key-value store ultra seguro.