Atualizado

Como compartilhar arquivos .env sem fazer commit no Git

Por

A forma mais segura de compartilhar arquivos .env é por meio de links cifrados e autodestrutivos, não por mensagens diretas do Slack, e-mail ou commits do Git. Ferramentas como o Vaulted cifram suas variáveis de ambiente no navegador usando AES-256-GCM antes de enviar qualquer coisa, e o link se exclui automaticamente após a visualização.

Segundo o relatório State of Secrets Sprawl 2025 da GitGuardian, em 2024 vazaram 23,8 milhões de segredos em repositórios públicos do GitHub, um aumento de 25% em relação ao ano anterior. E os próprios dados do GitHub mostram 39 milhões de segredos detectados na plataforma durante 2024. Muitos deles são conteúdos de arquivos .env enviados por acidente.

O problema de compartilhar arquivos .env

Os arquivos de ambiente são especialmente perigosos porque concentram em um só lugar todos os segredos de que sua aplicação precisa: URLs de bancos de dados, chaves de API, segredos de assinatura e tokens de terceiros. Um único vazamento de .env pode comprometer todos os serviços externos aos quais sua aplicação se conecta.

Formas comuns pelas quais as equipes compartilham arquivos .env — e por que falham:

  • Mensagens diretas do Slack/Discord — São pesquisáveis, têm backup e persistem após o desligamento de um funcionário
  • E-mail — Armazenado em texto plano nos servidores de e-mail e muitas vezes encaminhado sem querer
  • Commits do Git — Mesmo em repositórios privados, os segredos no histórico são quase impossíveis de remover por completo
  • Unidades compartilhadas — Sem expiração, sem controle de acesso, sem registro de auditoria
  • Notas do 1Password/Bitwarden — Exigem que ambas as partes tenham contas no mesmo cofre

Uma abordagem melhor: links cifrados e autodestrutivos

Em vez de enviar o conteúdo do arquivo diretamente, cifre-o primeiro e compartilhe um link que se autodestrói após a visualização.

Pelo navegador

  1. Acesse vaulted.fyi
  2. Cole o conteúdo do seu arquivo .env
  3. Defina um limite de visualizações (1 visualização para um único destinatário) e uma expiração
  4. Envie o link gerado para seu colega de equipe

O conteúdo é cifrado com AES-256-GCM no seu navegador antes de enviar qualquer coisa. A chave de descriptografia vive apenas no fragmento da URL — o servidor nunca vê o seu texto plano.

Pelo terminal

Se você prefere a linha de comando, a CLI do Vaulted faz a mesma coisa:

# Pipe directly from the file
cat .env.production | npx vaulted-cli --views 1

# Or pass the file path
npx vaulted-cli --file .env.local --views 1 --expires 1h

# Add a passphrase for extra security
cat .env | npx vaulted-cli -v 1 -e 24h -p "ask-me-on-call"

A CLI usa a mesma criptografia que a aplicação web — mesmo algoritmo, mesma arquitetura de conhecimento zero, mesmos links autodestrutivos. O resultado é uma única URL que você pode colar no Slack ou onde quiser, e ela expira depois que o destinatário a visualiza.

E os gerenciadores de segredos?

Ferramentas como Doppler, Infisical e AWS Secrets Manager são ótimas para ambientes de produção em que as aplicações consomem os segredos. Mas elas resolvem um problema diferente: gerenciam segredos que os serviços leem de forma programática.

O problema de compartilhar .env tem a ver com a entrega de pessoa para pessoa: fazer o onboarding de um novo desenvolvedor, compartilhar uma configuração de staging com um prestador de serviços ou distribuir credenciais atualizadas após uma rotação. Essa entrega precisa ser rápida, segura e não exigir nenhuma configuração por parte do destinatário.

Boas práticas para a higiene de arquivos .env

  1. Nunca faça commit de arquivos .env no Git — Adicione .env* ao .gitignore desde o primeiro dia
  2. Rotacione as credenciais após compartilhá-las — Trate cada compartilhamento como uma possível exposição
  3. Use links com limite de visualizações — Uma visualização por destinatário, expiração curta
  4. Adicione uma passphrase às configurações de produção — Compartilhe a passphrase por um canal separado
  5. Documente quais variáveis são necessárias — Mantenha um .env.example com valores vazios no seu repositório

Pare de colar variáveis de ambiente no Slack. Compartilhe-as com segurança usando o Vaulted — do seu navegador ou do seu terminal.


Relacionado