Actualizado

Cómo compartir archivos .env sin subirlos a Git

Por

La forma más segura de compartir archivos .env es mediante enlaces cifrados que se autodestruyen, no por mensajes directos de Slack, correo electrónico o commits de Git. Herramientas como Vaulted cifran tus variables de entorno en el navegador usando AES-256-GCM antes de enviar nada, y el enlace se elimina automáticamente tras visualizarse.

Según el informe State of Secrets Sprawl 2025 de GitGuardian, en 2024 se filtraron 23,8 millones de secretos en repositorios públicos de GitHub, un aumento interanual del 25 %. Y los propios datos de GitHub muestran 39 millones de secretos detectados en la plataforma durante 2024. Muchos de ellos son contenidos de archivos .env subidos por accidente.

El problema de compartir archivos .env

Los archivos de entorno son especialmente peligrosos porque concentran en un solo lugar todos los secretos que tu aplicación necesita: URLs de bases de datos, claves de API, secretos de firma y tokens de terceros. Una sola filtración de .env puede comprometer todos los servicios externos a los que se conecta tu aplicación.

Formas habituales en que los equipos comparten archivos .env, y por qué fallan:

  • Mensajes directos de Slack/Discord — Se pueden buscar, se respaldan y persisten tras la baja de un empleado
  • Correo electrónico — Se almacena en texto plano en los servidores de correo y a menudo se reenvía sin querer
  • Commits de Git — Incluso en repos privados, los secretos en el historial son casi imposibles de eliminar por completo
  • Unidades compartidas — Sin caducidad, sin control de acceso, sin registro de auditoría
  • Notas de 1Password/Bitwarden — Requieren que ambas partes tengan cuentas en la misma bóveda

Un enfoque mejor: enlaces cifrados que se autodestruyen

En lugar de enviar el contenido del archivo directamente, cífralo primero y comparte un enlace que se autodestruya tras visualizarse.

Desde el navegador

  1. Ve a vaulted.fyi
  2. Pega el contenido de tu archivo .env
  3. Establece un límite de vistas (1 vista para un único destinatario) y una caducidad
  4. Envía el enlace generado a tu compañero de equipo

El contenido se cifra con AES-256-GCM en tu navegador antes de enviar nada. La clave de descifrado vive únicamente en el fragmento de la URL: el servidor nunca ve tu texto plano.

Desde la terminal

Si prefieres la línea de comandos, la CLI de Vaulted hace lo mismo:

# 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"

La CLI usa el mismo cifrado que la aplicación web: mismo algoritmo, misma arquitectura de conocimiento cero, mismos enlaces que se autodestruyen. El resultado es una única URL que puedes pegar en Slack o donde sea, y caduca después de que el destinatario la visualice.

¿Y los gestores de secretos?

Herramientas como Doppler, Infisical y AWS Secrets Manager son excelentes para entornos de producción donde las aplicaciones consumen los secretos. Pero resuelven un problema distinto: gestionan secretos que los servicios leen de forma programática.

El problema de compartir .env tiene que ver con la entrega de persona a persona: incorporar a un nuevo desarrollador, compartir una configuración de staging con un colaborador externo o distribuir credenciales actualizadas tras una rotación. Esa entrega debe ser rápida, segura y no requerir ninguna configuración por parte del destinatario.

Buenas prácticas para la higiene de archivos .env

  1. Nunca subas archivos .env a Git — Añade .env* a .gitignore desde el primer día
  2. Rota las credenciales tras compartirlas — Trata cada vez que compartes como una posible exposición
  3. Usa enlaces con límite de vistas — Una vista por destinatario, caducidad corta
  4. Añade una frase de contraseña a las configuraciones de producción — Comparte la frase de contraseña por un canal aparte
  5. Documenta qué variables se necesitan — Mantén un .env.example con valores vacíos en tu repo

Deja de pegar variables de entorno en Slack. Compártelas de forma segura con Vaulted, desde tu navegador o tu terminal.


Relacionado