Conhecendo a ferramente Vault Hashicorp
Data: 03/05/22
Autores:
- João Batista da Silva Junior (Assessor)
- Michel Farias Ferreira (Assessor)
1. Objetivo
Realizar um estudo para conhecer melhor a ferramenta Vault Hashicorp e como ela pode ser melhor aplicada na SETIC.
2. Introdução
Com a necessidade de sempre melhorar a segurança do ambiente e das aplicações, se faz necessário encontrar uma ferramenta para guardar os segredos, tokens e ao mesmo tempo gerar valores aleatórios para acessos. Dessa forma foi sugerido pela liderança técnica o estudo da ferramenta vault que possivelmente trará uma segurança maior para o ambiente.
3. Desenvolvimento
3.1 O QUE É VAULT
O Vault é uma ferramenta de gerenciamento de segredos projetada especificamente para controlar o acesso a credenciais confidenciais em um ambiente de baixa confiança. Ele pode ser usado para armazenar valores sensíveis e, ao mesmo tempo, gerar dinamicamente acesso para serviços/aplicativos específicos em leasing.
A proposta inicial do estudo será em conhecer melhor a ferramente através da documentação, vídeos e até mesmo teste de instalação que será realizado localmente e no Openshift
3.2 TESTE DO VAULT LOCALMENTE
Para entender melhor a ferramenta e sua configuração foi realizada a implantação do container no docker desktop do vault server e cliente localmente em imagem linux
Foram necessário criar três arquivos dentro de uma pasta denominada docker-vault
-
Dockerfile
-
docker-compose.yml
-
run.sh
Segue os exemplos abaixo:
Primeiro foi criado um docker-compose.yml
Para detalhar esse arquivo docker-compose.yml, temos dois contêineres sendo compostos além de uma rede local.
- Servidor de cofre
-
Usa a imagem do cofre mais recente
-
expõe a porta 8200
-
Define a variável de ambiente VAULT_ADDR conforme recomendado na inicialização do servidor e define a variável de ambiente VAULT_DEV_ROOT_TOKEN_ID para inicializar o token raíz a ser usado pelo contêiner do cliente de cofre.
-
Configura o cap_add IPC_LOCK para permitir que o vault bloqueie a memória.
-
Adicione o servidor de cofre à rede local.
- Cliente de cofre
-
Builds de um Dockerfile no mesmo diretório. Isso será detalhado a seguir.
-
Define a variável de ambiente VAULT_ADDR para se comunicar com o servidor do vault.
-
Adicione o cliente do vault à rede local.
- Crie uma rede local para execução do vault-client e vault-server.
- Depois foi criado um Dockerfile com permissão no root (USER 0)
O Dockerfile acima criará um contêiner a partir da imagem do Ubuntu 20.04 e instalará as dependências necessárias para executar como um cliente de cofre. O Dockerfile então instrui um COPY e CMD de run.sh, detalhado abaixo.
O run.sh é o script que está sendo executado como cliente do vault.
No mesmo diretório dos três arquivos criados acima, execute o script docker-compose.
docker-compose up
Ao completar o build docker-compose up, o código da saída deve ser (0)
Duas imagens foram criadas
Um container com dois serviços (server e cliente)
Dessa forma a aplicação ficou disponível localmente na url: http://localhost:8200/
O Teste local foi importante para entender a configuração da ferramenta e a maneira como ela funciona e fica disponível.
A partir dessa etapa passamos para a análise de como a ferramenta Vault Hashicorp deveria ser configurada on premise em alta disponibilidade no ambiente da SETIC.
3.3 VAULT DISPONÍVEL NO OPENSHIFT
A instalação segue o mesmo princípio do Vault local, configurando containers em Docker. Utilizando o mesmo docker-compose como modelo, possuindo dois DeploymentConfigs, o vault-server e vault-client.
As configurações de variáveis do vault-server são:
As configurações de variáveis do vault-cliente ficaram definidas como:
Foi definido um volume persistente para o armazenamento redundante
4. Conclusão
Tal estudo baseia-se nas informações documentais da aplicação e também nos testes de instalação da ferramenta que foram realizados.
Está sendo realizado teste para validar se a implementação precisa de alguma configuração atual.
Inicialmente a ferramenta está disponível para testes pelo time e a liderança técnica, novos Cards para configuração do SSH e LDAP estão sendo criados para realizar a configuração no Vault.
Nenhum comentário