Gestionar claves de API de forma segura
Las claves de API van en variables de entorno o gestores de secretos — nunca en código, repos o prompts. Si hay una filtración, solo importa una cosa: revocarla de inmediato.
Por qué importa esto
Una clave de API es como una tarjeta de crédito: quien la tiene puede enviar peticiones a tu cuenta. Los repos públicos se rastrean de forma automatizada en busca de estas claves — tanto por atacantes como por sistemas de protección.
Regla 1: nunca en código, repo o prompt
Las claves no van en el código fuente, ni en el repo de Git, ni en los prompts del chat. El camino estándar en local: un archivo .env con la clave — y una entrada en .gitignore, para que nunca se comitee. Anthropic recomienda expresamente justo este patrón.
Regla 2: variables de entorno y gestores de secretos
En local, tu programa lee la clave de una variable de entorno. En producción, Anthropic recomienda almacenes de secretos cifrados (los gestores de secretos de los proveedores de nube) en vez de archivos dotenv.
Regla 3: rotar y limitar
Rota las claves con regularidad (Anthropic pone como ejemplo cada 90 días), usa claves separadas para desarrollo, test y producción, y da a cada clave solo los permisos mínimos necesarios — el principio de mínimo privilegio de la guía de OWASP.
Si hay una filtración
Revócala y sustitúyela de inmediato. Borrar el commit no basta: GitHub deja claro que un secreto filtrado hay que revocarlo o rotarlo primero — el historial de Git puede llevar tiempo clonado o cacheado en otro sitio.
EJEMPLO
En vez de `apiKey = "sk-ant-..."` en el código: pon la clave en .env (.env está en .gitignore), lee `process.env.ANTHROPIC_API_KEY` en el código — y en producción usa el gestor de secretos del proveedor de nube.
🛠️ EJERCICIO — PRUÉBALO TÚ
Configura el patrón .env en un proyecto de práctica y comprueba que ninguna clave pueda llegar al repo.
- Crea un .env con una variable de prueba (SIN clave real) y añade .env a .gitignore.
- Crea un .env.example con los nombres de las variables sin valores, y comitea solo ese.
- Comprueba con `git status` que .env no aparece como archivo nuevo — y lee el valor en el código a través de la variable de entorno.
✅ AUTOEVALUACIÓN
- ☐ ¿Aparece .env en `git status`? (Si es así: revisa la entrada de .gitignore)
- ☐ ¿Hay en algún sitio del código o de un prompt una clave como string en texto plano?
- ☐ ¿Sabes dónde podrías revocar tu clave real de inmediato (consola/dashboard del proveedor)?
QUIZ RÁPIDO
Tu clave de API ha acabado por accidente en un repo público. ¿Cuál es el primer paso correcto?
FUENTES
- Centro de ayuda de Anthropic: API Key Best Practices ↗ support.claude.com
- OWASP Cheat Sheet: Secrets Management ↗ cheatsheetseries.owasp.org
- Documentación de GitHub: Removing sensitive data from a repository ↗ docs.github.com