Introducción: Por Qué la Gestión de Secretos es Crítica
Una sola API key expuesta en un repositorio público puede costar miles de euros en pocos minutos. Bots automáticos escanean constantemente GitHub en busca de credenciales subidas por error.
Qué Aprenderás en Este Artículo
- Por qué la gestión de secretos es fundamental para la seguridad
- Cómo funcionan GitHub Secrets (repositorio, entorno, organización)
- La diferencia entre variables de entorno y secretos
- Cómo gestionar la seguridad de los archivos
.env - La diferencia entre secretos runtime y build-time
- Estrategias de rotación de secretos
- Soluciones vault: HashiCorp Vault, AWS Secrets Manager, GCP Secret Manager
- Cómo prevenir el leak de secretos con git-secrets y pre-commit hooks
1. GitHub Secrets: La Base de la Gestión de Secretos
Niveles de GitHub Secrets
| Nivel | Ámbito | Caso de Uso | Quién Puede Acceder |
|---|---|---|---|
| Repository | Repositorio único | API keys específicas del proyecto | Todos los workflows del repo |
| Environment | Entorno específico | Credenciales de producción | Solo workflows con environment |
| Organization | Toda la organización | Tokens compartidos | Repositorios seleccionados |
2. Variables de Entorno vs Secretos
Variables vs Secretos
| Característica | Variables (vars) | Secrets (secrets) |
|---|---|---|
| Visibilidad en logs | Visibles en claro | Enmascarados con *** |
| Cifrado | No | Sí (Libsodium sealed box) |
| Uso típico | URLs, nombres de entorno, feature flags | Tokens, contraseñas, claves API |
3. Seguridad de los Archivos .env
Los archivos .env son cómodos para el desarrollo local pero representan un riesgo significativo si se gestionan mal.
4. Secretos Runtime vs Build-Time
Regla Fundamental para el Frontend
Nunca incluir secretos en el bundle frontend. Cualquier valor presente en los archivos
environment.ts de Angular es visible para cualquiera que abra las herramientas de desarrollador del navegador.
5. Rotación de Secretos
Plan de Rotación Recomendado
| Tipo de Secreto | Frecuencia | Motivo |
|---|---|---|
| Tokens de deploy | Cada 90 días | Acceso a recursos de producción |
| API keys de terceros | Cada 180 días | Riesgo de compromiso |
| Tokens npm/Docker Hub | Cada 90 días | Acceso a publicación de paquetes |
| Service Account JSON | Cada 365 días | Credenciales de largo plazo |
| Secreto comprometido | Inmediatamente | Emergencia de seguridad |
6. Soluciones Vault Enterprise
Soluciones Vault a Comparar
| Característica | GitHub Secrets | HashiCorp Vault | AWS Secrets Manager | GCP Secret Manager |
|---|---|---|---|---|
| Costo | Gratuito | Self-hosted o Cloud | Pay-per-use | Pay-per-use |
| Rotación automática | No | Sí | Sí | Sí |
| Audit log | Limitado | Completo | CloudTrail | Cloud Audit |
| Ideal para | Pequeños equipos | Enterprise | Ecosistema AWS | Ecosistema GCP |
7. Prevenir el Leak de Secretos
La prevención es más eficaz que la cura. Herramientas como git-secrets, pre-commit hooks con Husky, y GitHub Secret Scanning ayudan a prevenir leaks.
8. Audit Trail y Compliance
Checklist de Seguridad de Secretos
- Todos los archivos
.envestán en.gitignore - Existe un archivo
.env.examplesin valores reales - Los secretos de producción usan GitHub Environment Secrets
- El entorno de producción tiene las protection rules activas
- Los pre-commit hooks controlan los patrones de secretos
- La rotación de secretos está planificada trimestralmente
- El equipo sabe qué hacer en caso de leak
- Ningún secreto privado está presente en el código frontend
Conclusión
La gestión de secretos es un aspecto de la seguridad que no se puede descuidar.
En el próximo artículo nos concentraremos en las performance: configuraremos performance budgets y Lighthouse CI en el pipeline.







