Eliminar datos sensibles de los eventos
El valor sensible más seguro es aquel que nunca ingresa al canal de eventos. Cree eventos estructurados a partir de una lista de permitidos explícita en lugar de serializar una solicitud, excepción, respuesta de modelo u objeto de base de datos e intentar eliminar claves peligrosas después.
Datos a excluir por defecto
No registre claves API, contraseñas, cookies de sesión, encabezados de autorización, firmas de webhooks, detalles de pago, cuerpos de solicitud completos, cadenas de conexión de bases de datos ni solicitudes y finalizaciones sin procesar. El texto de formato libre puede contener datos personales o confidenciales incluso cuando el nombre del campo parezca inofensivo.
Prefiere identificadores internos opacos a direcciones de correo electrónico. Reemplace las excepciones sin procesar con un error_type controlado y mantenga el seguimiento de la pila completa en un sistema de diagnóstico con acceso y retención adecuados. Reemplace las URL que contengan identificadores o cadenas de consulta con plantillas de ruta estables.
Aplicar controles en el límite
Cree el objeto de evento campo por campo:
const event = {
route_template: request.routeOptions.url,
method: request.method,
status_code: response.statusCode,
latency_ms: elapsedMs,
account_id: account.internalId,
};
await telemetry.log("api_request_completed", event);
Cuando sea necesario un desinfectante reutilizable, trátelo como una defensa en profundidad. Pruebe objetos anidados, matrices, mayúsculas alternativas y tipos inesperados. Longitudes de cadena vinculadas y campos rechazados fuera del contrato. El hash no es anonimización cuando el valor original tiene un conjunto pequeño o adivinable.
Revisar y responder
Asigne un propietario a cada contrato de evento de gran volumen. Revise las filas de muestra en desarrollo antes de habilitar la emisión de producción. Revise las necesidades de retención y acceso cuando se agregue un nuevo identificador.
Si se descubren datos confidenciales, detenga la ruta de emisión, identifique las tablas y los rangos de tiempo afectados, rote cualquier secreto expuesto y utilice el flujo de trabajo de eliminación admitido cuando corresponda. Luego agregue una prueba de regresión que ejercite el constructor de eventos real.
Lea diseñar un esquema de evento para conocer las prácticas contractuales y Registro de referencia API para conocer la forma de ingestión.