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:
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
Extrair o arquivo ZIP: use o comando unzip para extrair o arquivo ZIP que você baixou.
unzip vault_VAULT_VERSION_linux_amd64.zip
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/
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.
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
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.
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
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.
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.
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.
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
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!
About author
Você pode gostar também
Guia Completo: Como Utilizar o Ansible Galaxy para Otimizar seu Trabalho
Durante minhas aventuras como SysAdmin, eu me deparei com a fantástica ferramenta chamada Ansible. Eu me empolguei tanto com a ferramenta que acabei criando um projeto chamado warudo, agora já não
Descubra o pfSense: a solução opensource de firewall mais popular do mundo
Entre as soluções opensource, pfSense é a mais popular do mundo, devido a sua robustez, gestão simplificada e uma grande lista de recursos. O pfSense é a solução mais adequada
Guia completo para instalar e configurar o Nextcloud em seu sistema
O que é Nextcloud? O Nextcloud é uma aplicação OpenSource (Código Aberto) para armazenamento de arquivos/pastas entre grupos e usuários em nuvem, sendo acessível tanto por um navegador ou client