Infraestructura, nube y DevOps · Avanzado

Gestionar secretos y claves

En una línea: Un secreto en el repositorio de código es un secreto filtrado, aunque el repositorio sea privado y aunque lo borraras después.

Dónde guardarlos

En un almacén de secretos gestionado que inyecta valores en tiempo de ejecución, con permisos por servicio y por entorno, y con registro de acceso. Las variables de entorno son un mecanismo de transporte, no un lugar de almacenamiento.

Rotación periódica

Cada secreto necesita un proceso de rotación que se pueda ejecutar en minutos. Hace falta cuando alguien se va, ante una filtración sospechada, y de forma rutinaria. Si la rotación exige tiempo de caída, no se hará cuando haga falta.

Soporta dos claves activas en paralelo durante un tiempo breve, para que la rotación sea fluida.

Prevenir una filtración de antemano

Un escáner de secretos en el proceso de construcción y un gancho antes de guardar un cambio, para que un secreto sea bloqueado antes de entrar en el historial. Si ya entró: da por hecho que se filtró, rota de inmediato, y solo entonces limpia el historial.

En profundidad

Separa los secretos por entorno de forma absoluta. Una clave de producción accesible desde un entorno de desarrollo anula el sentido de la separación, y así ocurren la mayoría de las filtraciones internas: no con malicia, sino con un script apuntado por error a la dirección equivocada.