Logs multi-tenant sin filtrar datos entre clientes
Operaciones necesita responder “¿qué ocurrió con el job de este cliente?” sin convertir los logs compartidos en un navegador de datos entre cuentas. El contexto de tenant ayuda a diagnosticar, dar soporte y medir, pero no garantiza aislamiento. El identificador debe proceder de una identidad confiable, los payloads sensibles deben reducirse y la búsqueda de logs necesita su propia autorización.
Publicado el 28 de septiembre de 202613 min de lecturaAislamiento, redacción y auditoría
Propaga contexto de identidad confiable
Vincula identidad, propaga contexto seguro y autoriza cada consulta
1 / AutenticarResuelve usuario y tenant desde identidad verificada.
2 / AutorizarComprueba acceso al recurso, no solo el login.
3 / PropagarAñade IDs opacos y de correlación.
4 / MinimizarElimina secretos y payload innecesario.
5 / ConsultarLimita soporte y audita las búsquedas.
Usa contexto validado, no etiquetas del cliente
No confíes en un tenant recibido por query string, header arbitrario o mensaje de log como prueba de alcance. Resuélvelo mediante la identidad autenticada y el recurso autorizado, y propaga un identificador opaco canónico. Los jobs asíncronos deben guardar esa vinculación verificada y volver a autorizar al ejecutarse.
Prefiere identificadores seudónimos. Los IDs en logs y métricas pueden revelar relaciones comerciales y tener cardinalidad alta. Separa correlación de nombres, correos y números de cuenta.
Registra decisiones y resultados, no payloads completos
Campo útil
Forma más segura
Evita
Tenant
Clave opaca de identidad confiable
Nombre de cliente o valor bruto de la solicitud
Operación
Evento normalizado y código de resultado
Cuerpo completo de request/response
Recurso
ID interno o seudónimo si hace falta
Credenciales, pagos o contenido sensible
Correlación
Trace ID y job ID con permisos
Token de sesión reutilizable
Sanitiza entradas contra log injection con saltos de línea y delimitadores. Redacta en la aplicación antes de serializar: el filtrado posterior no evita que colectores, archivos u operadores vean el flujo original. Usa campos permitidos para eventos de seguridad en vez de “registrarlo todo” como atajo de soporte.
Autoriza por separado la plataforma de logs
La autorización de la aplicación no protege automáticamente la plataforma de observabilidad. Limita quién puede buscar por tenant, separa roles de soporte y de administración y registra consultas excepcionales. Las exportaciones de cliente deben filtrarse en el servidor con la identidad autenticada, no solo en el navegador. Prueba que un usuario no pueda cambiar el tenant y leer eventos ajenos.
El acceso de emergencia debe tener motivo, duración y auditoría, no una cuenta compartida permanente. Define retención y borrado según compromisos de privacidad y obligaciones legales.
Controla cardinalidad y costes
Los IDs de tenant pueden disparar la cardinalidad al etiquetar todas las métricas. Deja el detalle en logs y trazas protegidos y usa métricas agregadas para la salud del servicio. Muestrea éxitos rutinarios, conserva eventos de seguridad según política y limita payloads para evitar inundaciones.
Prueba el aislamiento como contrato
Ejecuta dos tenants por el mismo request, cola y flujo de soporte. Intenta falsificar IDs, omitir contexto, repetir jobs y consultar o exportar eventos ajenos. Comprueba permisos y denegaciones. Un evento sintético ayuda a confirmar que paneles y alertas no exponen datos ampliamente.
En resumen
Los logs multi-tenant necesitan identidad confiable, minimización y autorización en la propia capa de observabilidad. Usa IDs opacos, registra decisiones en vez de payloads, limita consultas de soporte y prueba las fronteras de extremo a extremo. El diagnóstico debe mostrar el impacto sin convertir la actividad de un cliente en una fuga para otro.