Primeiros passos com o Vault da HashiCorp

Primeiros passos com o Vault da HashiCorp

O Vault é uma ferramenta de código aberto desenvolvida pela HashiCorp e projetada para ajudar na gestão de segredos e proteção de informações sensíveis em ambientes de computação modernos. 

Ele é especialmente útil em sistemas distribuídos e na infraestrutura de nuvem, já que oferece uma maneira segura de armazenar, acessar e distribuir senhas, chaves de API, certificados e outros dados confidenciais, garantindo que essas informações não fiquem expostas. Os principais recursos e funcionalidades do Vault incluem:

Armazenamento Seguro de Segredos: armazenar segredos de forma segura, criptografando-os e controlando o acesso a esses segredos com políticas de acesso granulares;

Geração Dinâmica de Credenciais: gerar credenciais temporárias e dinâmicas para sistemas de banco de dados, serviços na nuvem e outros, ajudando a reduzir o risco de vazamento de credenciais permanentes;

Autenticação Multi-Fator (MFA): suporte para autenticação multi-fator, melhorando a segurança no acesso aos segredos;

Controle de Acesso Baseado em Políticas: definir políticas de acesso que determinam quem pode acessar quais segredos e operações específicas que podem ser realizadas com eles;

Auditoria e Registro: registrar todas as ações realizadas no Vault, fornecendo uma trilha de auditoria completa para conformidade e monitoramento de segurança;

Integração com Ambientes Modernos: compatível com contêineres, orquestradores de contêineres, ambientes de nuvem pública e infraestruturas locais, facilitando sua adoção em ambientes diversos;

Suporte a Diversos Backends:  flexível e facilmente configurável para usar vários backends de armazenamento, como bancos de dados, serviços de nuvem e sistemas de arquivos;

Escalabilidade: escalar horizontalmente para lidar com cargas de trabalho crescentes e oferecer alta disponibilidade.

Instalação

A instalação do HashiCorp Vault é um processo que depende do seu sistema operacional e requisitos específicos. Confira, a seguir, uma visão geral dos passos para instalação em sistemas Linux, mas certifique-se de verificar a documentação oficial para obter instruções detalhadas e atualizadas, já que as versões e procedimentos podem mudar com o tempo.

Passos gerais para instalar o HashiCorp Vault em sistemas Linux:

  1. Baixar o Vault: visite a página de download do Vault em https://www.vaultproject.io/downloads.html e selecione a versão adequada para o seu sistema operacional. Geralmente, você pode usar um comando wget ou “`curl“““ para baixar o arquivo binário.

Exemplo para baixar a versão Linux de 64 bits:

wget https://releases.hashicorp.com/vault/VAULT_VERSION/vault_VAULT_VERSION_linux_amd64.zip

  1. Extrair o arquivo ZIP: use o comando unzip para extrair o arquivo ZIP que você baixou.

unzip vault_VAULT_VERSION_linux_amd64.zip

  1. Mover o executável para um diretório no PATH: mova o arquivo binário Vault para um diretório no seu PATH, a fim de executá-lo de qualquer lugar.

sudo mv vault /usr/local/bin/

  1. Verificar a instalação: verifique se o Vault foi instalado corretamente, executando o comando vault no terminal. Você deve ver a saída do Vault, indicando que ele está pronto para ser configurado.

  2. Configurar e Inicializar o Vault: antes de usar o Vault, você precisará configurá-lo e inicializá-lo. Isso envolve definir o armazenamento, autenticação e políticas. Consulte a documentação oficial para obter detalhes sobre como fazer: https://learn.hashicorp.com/vault/getting-started

  3. Usar o Vault: depois de configurar e inicializar o Vault, você pode começar a usá-lo para armazenar segredos, gerenciar políticas de acesso e muito mais. A documentação oficial é um ótimo recurso para aprender a usá-lo em detalhes.

Lembre-se de que, para ambientes de produção, é importante seguir as melhores práticas de segurança, configurando de acordo com as necessidades específicas. Certifique-se também de manter o Vault atualizado, verificando regularmente as atualizações disponíveis no site oficial.

Inicialização do Vault

Para inicializar, você pode executar o seguinte comando no terminal:

vault operator init

Isso gerará um conjunto de chaves de descriptografia e um token raiz. Anote essas informações com segurança, pois você precisará delas para desbloquear o Vault e acessar as operações de gerenciamento.

Desbloquear o Vault

Use as chaves de descriptografia geradas durante a inicialização para desbloquear o Vault. Você precisará de um mínimo de três chaves para desbloqueá-lo.

vault operator unseal

O comando acima solicitará que você insira uma das chaves de descriptografia geradas durante a inicialização. Repita o processo até que esteja totalmente desbloqueado.

Autenticar-se no Vault

Após desbloquear o Vault, você pode usar o token raiz gerado durante a inicialização para autenticar-se:

vault login <seu-token-raiz>

O token raiz é poderoso e deve ser usado com cautela. Recomenda-se criar políticas e tokens personalizados para o acesso de usuários e aplicativos, em vez de usar o token raiz para operações normais.

Exemplo prático

Após a instalação, inicialização e desbloqueio do Vault, vamos realizar um exemplo prático como uma chave SSH.

  1. Configurar o Secrets Engine SSH

Primeiro, você precisa configurar o Secrets Engine SSH. Use o seguinte comando para habilitar o Secrets Engine SSH:

vault secrets enable ssh

  1. Configurar uma Role SSH:

Uma “role SSH” define como as chaves SSH serão geradas e associadas a usuários ou servidores. Vamos criar uma role SSH simples, chamada “my-ssh-role”, que permite acesso a um usuário chamado “my-user”:

vault write ssh/roles/my-ssh-role \

  key_type=rsa \

  default_user=my-user \

  ttl=30m

Neste exemplo, estamos configurando a role para usar chaves RSA e definindo um usuário padrão “my-user”. A chave pública SSH gerada terá uma duração de vida (TTL) de 30 minutos.

  1. Gerar uma Chave SSH:

Agora, é possívelgerar uma chave SSH usando a role que configuramos:

vault read -field=public_key ssh/sign/my-ssh-role

Isso gerará uma chave pública SSH, e você pode armazenar essa chave onde for necessário.

  1. Configurar Políticas de Acesso:

Da mesma forma que no exemplo anterior, é importante configurar políticas de acesso para controlar quem pode acessar as chaves SSH. Você pode criar uma política que permite a leitura das chaves SSH, semelhante ao exemplo anterior.

  1. Criar Token com Base na Política:

Crie um token para sua aplicação com base na política que permite o acesso às chaves SSH:

vault token create -policy=my-ssh-policy

  1. Acesso à Chave SSH com o Token da Aplicação:

Sua aplicação pode usar esse token para acessar a chave SSH:

vault read -field=public_key ssh/sign/my-ssh-role -token=<seu-token-de-aplicação>

Dessa forma, a aplicação pode recuperar a chave SSH gerada e usá-la para autenticação em servidores ou sistemas remotos.

Lembre-se de que o Vault oferece recursos avançados para o gerenciamento de chaves SSH, como a capacidade de rotacionar chaves automaticamente e personalizar políticas e configurações de acordo com suas necessidades específicas. Consulte a documentação oficial do HashiCorp Vault para obter mais detalhes: https://www.vaultproject.io/docs/

Se você gostou deste conteúdo, não deixe de acompanhar o blog. No próximo artigo, vamos explicar como usar esse secret por um servidor remoto. Compartilhe com sua rede!

Anterior Automatização de ambientes com Rundeck
Próxima Dicas de Tuning para Maximizar o Desempenho do seu PostgreSQL

About author

Emerson Silva
Emerson Silva 9 posts

Desenvolvedor de Infraestrutura e Monitoramento, atua como Analista de Infraestrutura na 4Linux, entusiasta DevOps e apaixonado por software livre

View all posts by this author →

Você pode gostar também

DevOps

DataOps: A solução para otimizar o ciclo de vida dos dados

Grandes empresas tendem a se concentrar em tecnologias de Big Data usadas para construir aplicações inovadoras. Algumas dessas empresas são obcecadas por Kakfa, Hadoop, Spark e Kubernetes, mas falham em

Infraestrutura TI

Descubra como o Zabbix automatiza o monitoramento de recursos

Descoberta de baixo nível, ou Low-level discovery (LLD), é um processo que automatiza o registro e monitoramento de recursos pelo Zabbix, ele pode fazer a identificação de métricas em sistemas

Monitoramento TI

Guia prático para atualizar o Zabbix 4.0 LTS para a 5.0 LTS

Assim como muitas ferramentas Open Source, o Zabbix vem aprimorando seus recursos através de um ciclo contínuo de desenvolvimento sempre tentando atender as necessidades de clientes e da própria comunidade,