Como armazenar dados confidenciais no Linux com o Vault

O HashiCorp Vault armazena segredos estáticos em um mecanismo de segredos chave/valor (KV) e permite que usuários autorizados os recuperem por meio de sua interface web ou linha de comando (CLI). Este guia demonstra o fluxo de trabalho em uma máquina Linux local. Ele utiliza o mecanismo de segredos KV v2 e o modo de desenvolvimento do Vault, que é intencionalmente inseguro, mantém os dados apenas na memória e os exclui ao ser interrompido. Utilize um valor fictício aqui; não insira uma senha real, chave de API ou credencial privada. Para dados confidenciais persistentes, implante o Vault no modo não-desenvolvimento com armazenamento durável e controles de acesso adequados.

Instale o Vault no Debian ou Ubuntu

Use o repositório de pacotes oficial da HashiCorp em vez de um link de download antigo e vinculado a uma versão específica. Os comandos abaixo adicionam a chave de assinatura e o repositório apt, e então instalam o Vault. Se você usa RHEL, Fedora ou Amazon Linux, escolha as instruções de instalação correspondentes na página oficial de instalação do Vault .

sudo apt update && sudo apt install -y wget gpg
wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vault
Terminal do Ubuntu mostrando o Vault instalado a partir do repositório apt oficial da HashiCorp.

Confirme se a CLI está no seu PATH:

vault --version
Terminal do Ubuntu com o comando `vault --version` pronto para verificar a CLI do Vault instalada.

Inicie um servidor de demonstração local.

Mantenha este processo aberto em uma janela de terminal enquanto segue o tutorial. Associe-o ao endereço de loopback para que seja acessível apenas a partir do seu próprio computador:

vault server -dev -dev-listen-address=127.0.0.1:8200
Servidor de desenvolvimento Vault vinculado a 127.0.0.1:8200 com armazenamento em memória.

O Vault inicializa e desbloqueia este servidor de desenvolvimento automaticamente. Sua saída de inicialização inclui um token raiz; você precisará dele para acessar a interface do usuário. Este token possui amplos privilégios administrativos, portanto, mantenha-o em sua máquina local e nunca o compartilhe. O modo de desenvolvimento também utiliza configurações padrão inseguras e armazenamento em memória. A HashiCorp afirma explicitamente que ele se destina à experimentação, não à produção. A interface do usuário está disponível em [ http://127.0.0.1:8200/uiendereço da interface do usuário]. A demonstração utiliza HTTP simples na porta de loopback; nunca exponha esta porta a uma rede.

Para um exemplo reproduzível, crie uma montagem KV v2 separada chamada linux-kv. Em um segundo terminal, defina o endereço do servidor e habilite a montagem uma vez enquanto esta demonstração estiver ativa:

export VAULT_ADDR='http://127.0.0.1:8200'
vault secrets enable -path=linux-kv kv-v2

Isso evita depender do nome de montagem padrão, que pode variar entre as configurações de exemplo. Uma montagem KV v2 grava segredos nas versões. A documentação de configuração do KV v2 do Vault descreve o comando de montagem e o fluxo de trabalho da interface do usuário.

Página de login local do Vault em 127.0.0.1:8200/ui com um campo de token e botão Entrar.

Salve um segredo de teste na interface web do Vault.

  1. Abra http://127.0.0.1:8200/uino seu navegador. Insira o token raiz exibido no terminal do servidor e faça login. A interface do usuário do Vault está habilitada por padrão no modo de desenvolvimento; consulte a documentação oficial da interface do usuário .
  2. Selecione Segredos , abra a linux-kv/montagem e escolha a opção para criar um segredo. A página de mecanismos deve identificar essa montagem como Chave/Valor versão 2.
Página dos mecanismos de segredos do Vault mostrando a montagem de chave/valor linux-kv/ na versão 2.
  1. Para o caminho secreto, insira linux-demo. Nos campos de chave/valor, insira api_keycomo chave e test-valuecomo valor. Clique em Salvar . Estas são strings de exemplo, não credenciais.
Crie um formulário secreto no Vault em linux-kv/ para o caminho linux-demo, chave api_key e valor de exemplo test-value.

O ponto de montagem e o caminho, juntos, identificam este registro como linux-kv/linux-demo. Use nomes de caminho e chave neutros: os nomes podem aparecer em listagens ou metadados, portanto, não inclua senhas ou outras informações confidenciais neles. Para registros de chave/valor reutilizáveis ​​comuns, use KV. O mecanismo Cubbyhole do Vault é limitado a um token individual e é destruído quando esse token expira.

Escreva e recupere o segredo com a CLI (linha de comando).

O servidor de desenvolvimento autentica automaticamente a CLI do Vault local. Em outro terminal, defina o endereço, se necessário, e use a sintaxe de montagem explícita abaixo:

export VAULT_ADDR='http://127.0.0.1:8200'
vault kv put -mount=linux-kv linux-demo api_key=test-value
vault kv get -mount=linux-kv linux-demo
Terminal do Ubuntu usando a sintaxe -mount=linux-kv para escrever e recuperar um segredo KV v2 de exemplo.

O getcomando imprime o valor, por isso o exemplo usa apenas um marcador. Uma chave de valor v2 putgrava uma nova versão e substitui os dados atuais do segredo; inclua todos os campos que você deseja manter. Evite inserir credenciais reais diretamente em comandos do shell, onde elas podem permanecer no histórico do shell ou serem visíveis para inspeção de processos locais. Use uma identidade sem privilégios de root e uma política de ACL com escopo restrito para usuários ou aplicativos reais.

Interrompa a demonstração e prepare o Vault para dados reais.

Volte ao terminal que executa o servidor e pressione Ctrl+C . A demonstração será interrompida e os segredos e o token armazenados na memória serão perdidos. Iniciá-la novamente criará uma nova instância; os registros anteriores não serão restaurados.

No terminal do Ubuntu, após pressionar Ctrl+C, é exibido o aviso de que o servidor de desenvolvimento do Vault foi interrompido e seus dados temporários estão sendo controlados.

Para manter segredos realmente confidenciais, configure um servidor Vault (não de desenvolvimento) com um backend de armazenamento durável. A HashiCorp recomenda o Integrated Storage para muitas implementações autogerenciadas; a documentação do Raft explica seus recursos de persistência e backup/restauração. O backend de sistema de arquivos é outra opção suportada para uso durável em um único servidor, mas não oferece alta disponibilidade.

Uma implementação real também requer TLS para conexões de clientes, autenticação de produção, políticas de privilégio mínimo, inicialização protegida e material de desbloqueio, acesso restrito ao sistema de arquivos e backups testados. O Vault criptografa os dados armazenados em repouso, mas o servidor, seus tokens e seus backups ainda precisam de proteção. Siga as instruções de aviso do HashiCorp para o modo de desenvolvimento e as orientações para implementação em produção antes de armazenar credenciais das quais você depende.

Deixar um comentário

Como jogar Hearts of Iron IV no Linux com o Steam

Como jogar Hearts of Iron IV no Linux com o Steam

Instale a versão nativa para Linux do Hearts of Iron IV pelo Steam e, em seguida, use o Proton como alternativa caso o jogo não inicie.

Como jogar Total War: THREE KINGDOMS no Linux com o Steam

Como jogar Total War: THREE KINGDOMS no Linux com o Steam

Configure o Steam na sua distribuição Linux, instale a edição nativa para Linux de Total War: THREE KINGDOMS e solucione problemas comuns de inicialização.

Como personalizar o gerenciador de janelas Enlightenment no Linux

Como personalizar o gerenciador de janelas Enlightenment no Linux

Aprenda a personalizar o Enlightenment no Linux editando o conteúdo da barra de tarefas, papéis de parede, gadgets da área de trabalho, temas e áreas de trabalho virtuais, com notas sobre as diferenças nos menus e arquivos .edj.

Como instalar a versão mais recente do Kali Linux em um PC

Como instalar a versão mais recente do Kali Linux em um PC

Aprenda como instalar a versão mais recente do Kali Linux: baixe e verifique a imagem ISO atual, crie um instalador USB e configure um computador com inicialização única de forma segura.

Como armazenar dados confidenciais no Linux com o Vault

Como armazenar dados confidenciais no Linux com o Vault

Aprenda a instalar o HashiCorp Vault, salvar e recuperar um segredo de exemplo com seu mecanismo KV v2 e entender qual configuração é segura para credenciais reais.

Como instalar o Celluloid no Linux com Flatpak ou seu gerenciador de pacotes

Como instalar o Celluloid no Linux com Flatpak ou seu gerenciador de pacotes

Instale o Celluloid no Linux a partir do Flathub com o Flatpak, ou use um pacote nativo quando sua distribuição fornecer um. Aprenda como iniciar, atualizar e remover o programa.

Como jogar Undertale no Linux com o Steam

Como jogar Undertale no Linux com o Steam

Undertale possui uma versão nativa para Linux no Steam. Aprenda como instalar o Steam, baixar o jogo, executá-lo e, caso a versão nativa apresente problemas, tente usar o Proton.

Faça anotações no Linux com o Paper: use e faça backup do aplicativo.

Faça anotações no Linux com o Paper: use e faça backup do aplicativo.

O Paper não está mais disponível no Flathub nem é desenvolvido ativamente. Aprenda como verificar uma instalação existente do Linux, escrever notas em Markdown e fazer backup delas.

Como instalar o BlackArch Linux: Guia para USB e Desktop

Como instalar o BlackArch Linux: Guia para USB e Desktop

Aprenda como baixar a ISO correta do BlackArch, verificá-la, criar um USB inicializável e instalar o BlackArch Linux com segurança usando o instalador Slim.

Como acessar um Raspberry Pi com o TeamViewer a partir do Linux

Como acessar um Raspberry Pi com o TeamViewer a partir do Linux

Instale o TeamViewer Host no Raspberry Pi OS, vincule o dispositivo à sua conta e conecte-se a partir de um computador Linux com as orientações e dicas de solução de problemas do pacote ARM atual.