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
Como garantir que seu site esteja sempre online com ferramentas de monitoramento
Meu site está fora?!?!?! É inegável que hoje o termo Monitoramento é uma palavra presente em todas as organizações e a tecnologia cada vez mais está inserida no dia a
Descubra como a Cloud Computing está revolucionando o mundo da tecnologia
A famosa “Cloud Computing”, a ideia de que todos os tipos de tecnologias podem ser entregues totalmente pela Internet está crescendo cada vez mais e mudando tudo! Isso afeta nossas
Conheça o Mundo DevOps: Entrevista com Diego Fernando da Propzmedia
No último dia 3 de setembro aconteceu a prova beta test na sede da 4Linux em SP. Foram mais de 150 inscritos que fizeram a prova de seleção na plataforma