Maio 3, 2020

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

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)

Vault Sealed: False

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.

http://vault.caiodelgado.example:8200

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.

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.

Vault WEB UI

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

Barra Superior (parte esquerda)

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.

Barra Superior (parte direita)

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.

vault/secrets/blog/caiodelgado

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 +

Access/Enable new method +

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

Username & Password.

Clique em Enable Method.

Enable Method

Clique agora em View method.

View method

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

Create user +

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

Create user

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
vault login

Policies

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

Vault/Policies
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.

Vault/Tools

Status

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

Vault/Status

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.

WEB CLI

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

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!