Vault - Habilitando, Configurando e utilizando a Interface de Usuário via web.

Como dito anteriormente, o Vault disponibiliza acesso aos dados através de Interface Gráfica, Linha de Comando ou Chamada HTTP em sua API.
Hoje iremos habilitar a interface gráfica (web) para nosso Vault server criado no post Vault 101 - Aplicando segurança na sua Infraestrutura como Código.
Caso você tenha chegado agora no blog, verifique todos os posts na TAG: IAC , com certeza você encontrará vários conteúdos interessantes por lá.
Primeiros Passos
Primeiramente iremos ligar e acessar nossa máquina Vault, bem como Destravar o cofre de segredos.
Caso não tenha a máquina ainda, a recomendação é que siga o post do vault-101.
Abra um novo terminal e ligue a máquina vault
$ cd ~/vault-101
$ vagrant up
$ vagrant ssh
Destravando o Cofre
Agora vamos destravar o cofre com 3 das 5 keys que foram geradas anteriormente através do comando vault operator unseal
Note que as keys são diferentes para cada instalação do vault, no meu caso utilizarei as mesmas do tutorial.
$ vault operator unseal -address=http://10.10.10.10:8200
Execute o comando acima 3 vezes e informe três chaves diferentes, no meu caso o comando ficou
$ vault operator unseal -address=http://10.10.10.10:8200
> F9Yo6vPumyQfuhTlTqcgkJhG3s02oeKJ6hNmkDKzItDE
$ vault operator unseal -address=http://10.10.10.10:8200
> tuRLZjNOIv2DPO+TD3P3h9Gv1QQSL8rsFhjAe5q4CheH
$ vault operator unseal -address=http://10.10.10.10:8200
> qA1TZ5J9iE2V3R6y/5DJh0i29MPTnGLsF/hvia2sOVAS
Ao final do processo deve ser exibida a mensagem informando que o cofre não está mais no estado sealed
(lacrado)

Habilitando a WEB UI
Para habilitar WEB UI (Web User Interface) precisamos editar o arquivo de configuração adicionando o campo ui = true
e então reiniciar o serviço do vault.
$ sudo vim /etc/vault.d/config.hcl
storage "mysql" {
username = "vaultuser"
password = "caiodelgado.dev"
database = "vault"
}
listener "tcp" {
address = "10.10.10.10:8200"
tls_disable = 1
}
ui = true
$ sudo systemctl restart vault
Uma vez reiniciado o vault podemos efetuar novamente o procedimento de destravar o cofre que fizemos anteriormente, mas desta vez faremos pela interface web.
Não é necessário efetuar o procedimento de destravar o cofre antes de configurar a interface web, fizemos isto apenas para mostrar a diferença dos dois modos.
Acesse o endereço http://vault.caiodelgado.example:8200 pelo navegador web, será exibida uma tela solicitando uma porção da chave para remover o selo do cofre, digite 3 das 5 chaves para efetuar o desbloqueio do cofre, e acompanhe o progresso.

Uma vez desbloqueado o cofre do Vault, será solicitado o login do usuário, podemos utilizar diversos métodos de login como:
- Token
- Username & Password
- LDAP
- Okta
- JWT
- OIDC
- Radius
- Github
Iremos escolher o médoto token e utilizar o token do usuário root, criado no tutorial vault-101.
Note que o token é diferente para cada instalação/usuário do vault do vault.
Digite o token e clique em Sign In.

Conhecendo a WEB UI
Agora que estamos com nossa WEB UI operacional, podemos explorar a mesma, um fato interessante é que o próprio vault mostra no canto direito da tela um pequeno guia para os primeiros passos.

Na barra superior do Vault, temos acesso aos secrets, métodos de acesso, políticas e ferramentas.

Também na barra superior mais para a parte direita, temos acesso ao status do servidor, linha de comando e configurações do usuário.

Secrets
No menu de secrets, podemos ter o acesso ao secret e navegar entre o mesmo, também é possível navegar e verificar o secret bem como copiar, deletar, editar e verificar seu valor como json.

Access
No menu de acesso, podemos configurar métodos de autenticação, entidades, grupos e concessões.
Em métodos de autenticação, vamos adicionar um novo método clicando em Enable new method +

Por hora criaremos através do método Username & Password, selecione e clique em Next

Clique em Enable Method.

Clique agora em View method.

Vamos criar o nosso primeiro usuário, para isto, clique em Create User +

Vamos criar o usuário user01 com a senha caiodelgado.dev , digite os dados e clique em Save

Podemos testar agora o login através da cli ou pela web ui deste novo usuário, por hora faremos via cli através da nossa máquina host
$ export VAULT_ADDR='http://vault.caiodelgado.example:8200'
$ vault login -method=userpass username=user01
> caiodelgado.dev

Policies
Através do menu Policies podemos definir politicas de acesso através de um json.

Podemos verificar a syntax através da Documentação Oficial
Tools
No menu de Tools temos diversas ferramentas que podem nos ajudar a criar, gerar dados randomicos ou até mesmo hashes.

Status
Clicando em Status podemos ver se nosso cofre está selado ou não, bem como as métricas (caso o cofre esteja destravado)

CLI
No menu de CLI podemos executar comandos pela interface WEB. O interessante deste menu é que como já estamos logados na WEB, não precisamos efetuar novamente o login via CLI.

Os comandos da web cli são um pouco diferentes dos comandos da cli , para visualizar a ajuda basta digitar vault help

User
No menu de USER podemos visualizar novamente o guia, copiar o token ou deslogar o usuário atual.

Este post é o segundo da série de posts onde utilizaremos o vault.
Nos próximos posts iremos integrar o vault com o terraform e também gerenciar credenciais da AWS de forma dinâmica.
Ficamos por aqui com esse post e nos vemos em uma próxima!