Regresar
406

Secretos y rotación de credenciales

Actualizado: 15/09/2026

Hay una pregunta que sirve para medir la salud de un sistema mejor que casi cualquier auditoría, y se responde en diez segundos: si la clave principal de tu base de datos se filtrara ahora mismo, ¿cuánto tardarías en cambiarla?

Cuando la respuesta es un número de minutos, la gestión de secretos está resuelta. Cuando es no lo sé, o implica buscar en qué archivos está copiada y reiniciar cosas con cuidado, lo que hay no es un problema de rotación: es que rotar se volvió imposible, y por eso nunca se hace.

Por qué una credencial que no cambia acaba filtrándose

La intuición habitual es que un secreto está a salvo mientras nadie lo robe, y por tanto rotarlo es una precaución opcional. La realidad de cómo se filtran las credenciales apunta en otra dirección.

Casi nunca se filtran por un ataque. Se filtran porque alguien las pegó en un chat para ayudar a un compañero, porque quedaron en el historial de comandos de una máquina, porque aparecieron en un registro de errores, porque un desarrollador que ya no está las tenía en su portátil, o porque se subieron a un repositorio y se borraron después, cuando ya estaban en el historial.

Todas esas vías comparten algo: el tiempo juega en contra. Cuantos más meses lleve viva una credencial, más copias existen y menos gente recuerda dónde están.

Rotar no es una respuesta a que algo haya pasado. Es lo que limita cuánto vale una copia perdida, porque una credencial que caduca en noventa días convierte una filtración antigua en algo inservible.

El ciclo completo de una credencial

Ayuda pensarlo como una secuencia de fases, porque los problemas aparecen casi siempre en las que se omiten.

Cinco fases de la vida de una credencial conectadas en ciclo: se crea con el mínimo permiso, se guarda en un gestor y nunca en el repositorio, se usa leyéndola en tiempo de ejecución, se rota cada cierto tiempo y se revoca cuando deja de hacer falta, volviendo al principio
La pregunta que lo resume: si esta clave se filtrara hoy, cuánto tardarías en cambiarla.

Las dos fases que faltan en la mayoría de los proyectos son las dos últimas. Se crean credenciales, se guardan y se usan; rotarlas y revocarlas queda como una tarea pendiente que nunca sube de prioridad porque nada falla mientras no se hace.

La primera fase también merece atención: el permiso con que nace la credencial. Una clave creada con acceso total porque era lo rápido mantiene ese alcance durante años, y determina cuánto daño causa el día que se pierda.

Que rotar sea barato es el requisito previo

Ninguna política de rotación sobrevive si cada rotación es una operación delicada. Y lo es siempre que la credencial esté copiada en varios sitios.

Si la clave está escrita en el archivo de configuración de tres servicios, en el sistema de despliegue y en la máquina de alguien, cambiarla significa coordinar cinco cambios sin que ninguno se olvide. Eso se hace una vez, sale mal, y nadie lo vuelve a intentar.

La condición que lo cambia todo es que exista un solo lugar donde vive el valor, y que todos los demás lo lean de ahí en el momento de arrancar. Entonces rotar es cambiar un valor en un sitio y reiniciar.

Ese lugar puede ser un gestor de secretos dedicado, o la sección de variables de entorno de la plataforma donde se despliega. Para un proyecto pequeño, la segunda opción suele bastar, y es infinitamente mejor que tenerlo repartido.

Rotar sin cortar el servicio

La objeción práctica más común es que cambiar una credencial corta la conexión de lo que la estaba usando. Tiene solución conocida y consiste en no cambiar, sino solapar.

El patrón tiene tres pasos. Primero se crea una credencial nueva, de modo que la vieja y la nueva funcionan a la vez. Después se actualiza el sitio donde vive el valor y se reinician los servicios, que empiezan a usar la nueva. Por último, cuando se confirma que nada sigue usando la anterior, se revoca.

La mayoría de los proveedores permiten tener dos claves activas simultáneamente precisamente para esto. Cuando el servicio solo admite una, el solapamiento no es posible y conviene planificar el cambio en un momento de poco tráfico.

El paso que más se omite es el último. Una credencial antigua que se deja activa por si acaso anula todo el ejercicio: las copias viejas siguen funcionando, que era justo lo que se quería evitar.

Cómo saber que nada usa la credencial vieja

Antes de revocarla, mira los registros de acceso del proveedor y comprueba que no ha sido utilizada en los últimos días.

Si el proveedor no ofrece ese dato, revócala en un momento tranquilo y ten preparado cómo volver atrás. Es preferible un susto controlado a dejarla viva indefinidamente.

Cada cuánto, y cuáles primero

No todas las credenciales merecen el mismo trato, y aplicar la misma frecuencia a todas es la forma más segura de no rotar ninguna.

  • Las que dan acceso amplio a datos o a infraestructura. La clave de la base de datos, la del proveedor de nube, la del sistema de pagos. Son las que justifican el esfuerzo de un calendario.
  • Las que han estado en manos de alguien que se fue. Aquí la rotación no es periódica sino inmediata, y suele olvidarse porque nadie lleva la cuenta de qué conocía cada persona.
  • Las de servicios externos con costo asociado. Una clave filtrada de un servicio que se cobra por uso produce una factura antes que un incidente de datos.
  • Las de vida corta por diseño. Tokens de sesión y similares, que ya caducan solos y no necesitan política adicional.

Para un proyecto pequeño, una revisión anual de las del primer grupo, más la rotación inmediata cuando alguien deja el equipo, cubre la mayor parte del riesgo real sin convertirse en una carga.

Credenciales distintas para entornos distintos

Hay una decisión que parece de comodidad y que en realidad determina el alcance de casi cualquier error: si desarrollo y producción comparten credenciales.

Cuando se comparten, la máquina de un desarrollador tiene acceso a los datos reales de los clientes. Eso convierte cualquier descuido corriente, un portátil robado, un script de prueba mal apuntado, una dependencia comprometida en el entorno local, en un incidente sobre datos de producción.

También hace imposible una práctica que ahorra muchos sustos: poder experimentar sin miedo. Si borrar una tabla por error en desarrollo borra la de verdad, el equipo trabaja con una prudencia que frena todo.

La separación correcta son credenciales propias por entorno, con permisos distintos: las de desarrollo apuntando a datos de prueba y las de producción restringidas a lo que la aplicación necesita. Cuesta un rato configurarlo una vez.

Y conviene que los datos de prueba no sean una copia literal de producción. Es una práctica muy extendida y significa repartir datos personales reales por las máquinas del equipo, con las implicaciones legales que eso tiene. Enmascarar los campos identificativos al generar la copia resuelve el problema sin perder realismo.

Las credenciales que no son de personas

Buena parte de los accesos de un sistema no pertenecen a nadie: son de procesos automáticos, integraciones y trabajos programados. Y precisamente por no tener dueño, son las que peor se gestionan.

Nadie las echa de menos cuando dejan de usarse, nadie revisa sus permisos y nadie sabe qué pasaría si se retiraran. Con el tiempo se acumulan credenciales activas cuya función exacta ya no recuerda nadie, y eso paraliza cualquier intento de limpieza, porque quitar una es arriesgarse a romper algo desconocido.

La medida que evita llegar ahí es anotar, en el momento de crear cada una, para qué sirve y quién es responsable de ella. Dos líneas en un documento compartido bastan, y es la diferencia entre poder hacer limpieza algún día o no.

Cuando la plataforma lo permite, conviene además usar identidades gestionadas en lugar de claves: el proveedor concede el acceso al servicio directamente, sin que exista ningún valor secreto que copiar, filtrar u olvidar. Es la única forma de gestión de secretos que no falla, porque no hay secreto que gestionar.

Cuando una credencial ya se filtró

Si el secreto ya está expuesto, el orden importa, porque el error más común es empezar por limpiar en vez de por cortar.

Lo primero es revocar, no borrar el rastro. Mientras la credencial siga siendo válida, quitarla del sitio donde apareció no sirve de nada: quien la copió la tiene igual. Revocar primero es lo único que cierra la puerta.

Después conviene mirar si se usó. Los registros de acceso del proveedor dicen desde dónde y cuándo, y esa información decide si esto fue un susto o un incidente que hay que tratar como tal.

Solo entonces tiene sentido limpiar el lugar donde quedó expuesta, sabiendo que si fue un repositorio, borrar el archivo no la quita del historial y hace falta reescribirlo o, más realista, dar la credencial por perdida definitivamente.

Y el paso que cierra el asunto es preguntarse cómo llegó ahí, porque casi siempre la respuesta apunta a algo estructural: no había dónde guardarla, el despliegue obligaba a escribirla en un archivo, o nadie sabía que ese archivo se subía.

Qué se le escapa a una IA con esto

Pedir ayuda para conectar con un servicio externo produce código correcto que, casi siempre, incorpora la clave directamente en el archivo o la lee de una variable sin decir nada más. Funciona, y deja el secreto en el sitio equivocado.

Hay además un riesgo particular de este flujo de trabajo: al pegar código en una conversación para pedir ayuda, es fácil incluir la credencial real sin darse cuenta. Cualquier secreto que haya pasado por ahí debe considerarse expuesto y rotarse, igual que si hubiera acabado en un repositorio.

Las frases que cambian la respuesta son pedir que la credencial se lea en tiempo de ejecución desde un único lugar, y preguntar explícitamente qué habría que hacer para cambiarla después. Si la respuesta a lo segundo implica tocar varios sitios, el diseño ya tiene el problema que impide rotar.

Conviene además pedir que el código falle claramente si la credencial no está, en lugar de continuar con un valor vacío. Un sistema que arranca sin su clave y falla más tarde, de forma confusa, es el que acaba llevando a alguien a escribirla a mano en un archivo para salir del paso.


Guía de referencia principiante