Tema 10

10. Gestión de secretos, claves, certificados y rotación segura

Las arquitecturas distribuidas dependen de material sensible para funcionar: contraseñas, tokens, claves privadas, certificados, credenciales de servicio y secretos temporales. Si ese material se expone o se administra sin disciplina, toda la postura de seguridad del sistema se debilita, incluso cuando el resto del diseño parece correcto.

Objetivo Proteger material sensible a lo largo del ciclo de vida
Enfoque Almacenamiento, acceso y rotación
Resultado Reducir impacto de fuga o compromiso

10.1 Introducción

Una aplicación distribuida suele necesitar múltiples secretos para operar: credenciales hacia bases de datos, claves para firmar tokens, certificados para TLS, tokens de acceso a APIs, secretos de terceros, material para cifrado y credenciales administrativas de plataforma. La cantidad crece a medida que el sistema gana servicios, entornos y automatización.

Ese crecimiento hace que la gestión de secretos deje de ser un detalle operativo y pase a ser un problema arquitectónico. Cuando los secretos se copian manualmente, se guardan en archivos, se comparten entre servicios o se dejan durar indefinidamente, el riesgo se acumula rápidamente.

Una estrategia madura debe cubrir todo el ciclo de vida: generación, almacenamiento, distribución, uso, rotación, revocación y auditoría.

10.2 Qué consideramos un secreto

Un secreto es cualquier dato cuya divulgación o uso indebido habilita acceso, suplantación, descifrado o control no autorizado sobre un recurso. No se limita a contraseñas.

  • Contraseñas de base de datos o de servicios.
  • API keys y tokens de integración.
  • Claves privadas para firma o cifrado.
  • Certificados y material de identidad técnica.
  • Refresh tokens o secretos de clientes OAuth.
  • Credenciales administrativas de plataformas y pipelines.
Si un dato permite actuar con privilegios o romper confidencialidad, debe tratarse como secreto aunque no tenga el nombre de "password".

10.3 Diferencia entre secreto, clave y certificado

Aunque suelen mencionarse juntos, no son exactamente lo mismo. Entender la diferencia ayuda a modelar mejor almacenamiento, rotación y responsabilidades.

Elemento Qué es Riesgo principal
Secreto Dato sensible que habilita acceso o uso privilegiado Fuga o reutilización indebida
Clave criptográfica Material usado para cifrar, descifrar o firmar Compromiso de confidencialidad o integridad
Certificado Documento que asocia identidad con una clave pública Suplantación o confianza mal delegada si se gestiona mal

10.4 Riesgos frecuentes de mala gestión

Muchos incidentes graves no requieren una vulnerabilidad sofisticada. Basta con encontrar una credencial expuesta en un repositorio, una variable de entorno mal protegida o una clave que nunca se rotó.

  • Secretos hardcodeados en el código fuente.
  • Archivos de configuración compartidos entre entornos.
  • Credenciales copiadas manualmente entre equipos.
  • Claves privadas almacenadas sin protección adecuada.
  • Certificados expirados o renovados fuera de tiempo.
  • Secretos de larga duración sin rotación ni auditoría.

10.5 Principios de una gestión sana

  • Centralización controlada: evitar que cada servicio invente su propio mecanismo.
  • Mínima exposición: entregar solo el secreto que cada componente necesita.
  • Temporalidad: preferir credenciales de vida corta cuando sea posible.
  • Rotación: asumir desde el diseño que el secreto deberá cambiarse.
  • Auditoría: registrar acceso, cambios y uso de material sensible.
  • Automatización: reducir operaciones manuales propensas a error.

10.6 Secret managers y vaults

Una práctica madura suele apoyarse en un secret manager o vault central, capaz de almacenar material sensible, controlar acceso, emitir secretos dinámicos y registrar operaciones. El objetivo no es solo guardar secretos "en otro lado", sino gestionar su ciclo de vida bajo políticas y auditoría.

Un buen gestor de secretos ayuda a:

  • Evitar almacenamiento directo en código o archivos estáticos.
  • Entregar secretos bajo identidad y política.
  • Rotar material de forma coordinada.
  • Auditar quién accedió a qué secreto y cuándo.

10.7 Inyección segura en tiempo de ejecución

Tan importante como dónde se guarda un secreto es cómo llega al proceso que lo necesita. Una mala inyección puede exponerlo en logs, variables heredadas, capas de imagen o artefactos temporales.

Algunas estrategias comunes son:

  • Inyección por variables de entorno bajo controles estrictos.
  • Montaje temporal desde un gestor de secretos.
  • Obtención dinámica al inicio o durante la ejecución mediante identidad del workload.

Cada enfoque tiene tradeoffs, pero todos deben minimizar persistencia y exposición innecesaria.

10.8 Secretos dinámicos y credenciales efímeras

Siempre que el ecosistema lo permite, conviene preferir credenciales temporales y generadas dinámicamente en lugar de secretos estáticos de larga vida. Esto reduce la ventana de abuso y simplifica revocación frente a incidentes.

Por ejemplo:

  • Credenciales temporales para bases de datos.
  • Tokens de corta vida para acceso a APIs.
  • Certificados de identidad emitidos automáticamente para workloads.
Cuanto más corta es la vida útil de un secreto comprometido, menor es el daño potencial si se lo detecta a tiempo.

10.9 Rotación segura

Rotar un secreto significa reemplazarlo por uno nuevo sin perder control del sistema. En ambientes distribuidos esto debe pensarse desde el diseño, porque muchos componentes pueden depender del mismo material y no siempre se actualizan al mismo ritmo.

Una rotación segura requiere:

  • Inventario claro de dónde se usa cada secreto.
  • Capacidad de convivencia temporal entre valor viejo y nuevo cuando haga falta.
  • Automatización para reducir errores manuales.
  • Pruebas y monitoreo durante el cambio.

10.10 Claves criptográficas y responsabilidad

Las claves criptográficas merecen un tratamiento especial. No son solo credenciales de acceso; sostienen confidencialidad, firma digital y verificación de identidad. Su compromiso puede invalidar controles enteros del sistema.

Por eso conviene diferenciar:

  • Quién genera la clave.
  • Quién puede usarla.
  • Quién puede exportarla o rotarla.
  • Qué sistemas dependen de ella.

10.11 Certificados y ciclo de vida

Los certificados permiten asociar una identidad a una clave pública y son fundamentales para TLS, mTLS y autenticación de workloads. Su gestión requiere disciplina, porque el vencimiento o la mala emisión pueden interrumpir el sistema o habilitar suplantaciones.

En la práctica hay que controlar:

  • Emisión confiable.
  • Distribución correcta.
  • Renovación anticipada.
  • Revocación cuando corresponde.
  • Monitoreo de expiración.

10.12 Separación por entorno y por dominio

No conviene reutilizar los mismos secretos entre desarrollo, testing y producción. Tampoco entre dominios o servicios sin necesidad real. Compartir material sensible más allá de su contexto multiplica impacto cuando algo falla.

  • Cada entorno debería tener sus propios secretos.
  • Cada servicio o dominio debería recibir lo estrictamente necesario.
  • Los accesos administrativos deben mantenerse separados del plano de aplicación.

10.13 Auditoría y trazabilidad

La gestión de secretos también debe ser observable. Si no puede saberse qué identidad accedió a un secreto, cuándo se rotó o qué certificado estuvo activo en cierto período, responder incidentes se vuelve mucho más difícil.

Conviene registrar al menos:

  • Lecturas y escrituras sobre secretos sensibles.
  • Rotaciones y revocaciones.
  • Cambios de políticas de acceso.
  • Errores de emisión, expiración o validación.

10.14 Errores comunes

  • Hardcodear secretos en repositorios o imágenes de contenedor.
  • Guardar claves privadas junto a artefactos de despliegue sin protección suficiente.
  • Confiar en credenciales de larga vida porque "siempre funcionaron".
  • No planificar expiración y descubrir certificados vencidos en producción.
  • Compartir el mismo secreto entre múltiples servicios para simplificar operación.
El secreto perfecto no existe. Lo que sí existe es una gestión que reduce exposición, acorta duración y acelera recuperación cuando algo falla.

10.15 Qué debes recordar de este tema

  • Los secretos incluyen credenciales, claves, tokens y material criptográfico sensible.
  • La gestión debe cubrir almacenamiento, distribución, uso, rotación y auditoría.
  • Siempre que sea posible conviene preferir credenciales temporales y dinámicas.
  • La rotación segura debe pensarse desde el diseño, no después del incidente.
  • Compartir secretos entre servicios y entornos amplía innecesariamente el impacto de una fuga.

10.16 Conclusión

La seguridad de microservicios depende tanto de sus políticas como del material sensible que las hace posibles. Una buena gestión de secretos, claves y certificados reduce superficie de ataque, mejora trazabilidad y permite responder mejor ante compromisos o rotaciones inevitables. Sin esa disciplina, la arquitectura acumula deuda silenciosa hasta que aparece el incidente.

En el próximo tema estudiaremos cifrado en tránsito y en reposo en arquitecturas distribuidas para ver cómo proteger datos y comunicaciones más allá del manejo de identidades y secretos.