¿Qué tecnologías usarías para anonimizar datos en temas de Kafka y por qué?

La anonimización debe realizarse lo más arriba posible, por lo que si pudiera, lo haría en la fuente, antes de que los datos lleguen a Kafka. Siempre un enfoque más escalable y seguro / compatible: nunca tendrá información PII en su clúster kafka de esta manera.

Si esa no es una opción, simplemente lo haría en la ingesta: generalmente configuro algún tipo de API controlada frente a Kafka, y es trivial soltar campos antes de enviar mensajes a un tema.

Si los datos deben terminar en Kafka, dado que la anonimización suele ser una simple operación map () para eliminar campos, puede usar un SMT Kafka. Usar spark / flink / streams parece una exageración bastante seria para una operación tan simple. Por supuesto, si desea enriquecer los datos de maneras interesantes o hacer un trabajo de transmisión real con ellos, entonces ciertamente sería interesante hacer el procesamiento de la transmisión.

La mejor práctica es nunca poner datos confidenciales sin procesar en ningún tema. Los datos de Kafka se almacenan sin cifrar dentro del sistema de archivos local y están sujetos a compromiso. También es fundamental tener en cuenta que la seguridad está deshabilitada de forma predeterminada en Kafka.

El mecanismo específico que usa para ejecutar el código para anonimizar datos no importa mucho, excepto que tiene que lidiar con los problemas estándar:

  • ¿Cómo manejas las llaves?
  • ¿Cómo autentica al usuario que ejecuta la transformación?
  • ¿estás * seguro * de que el estado del programa intermedio que contiene materia prima no segura no se almacena en el sistema de archivos?
  • ¿Has examinado tu enmascaramiento para ver si hace lo que quieres? ¿Es un enmascaramiento constante? ¿Sujeto a anonimización?
  • ¿Ha considerado las directivas de privacidad europeas como el derecho a ser olvidado y el RGPD?

Para hacer esto bien, necesita algo más que una publicación en Quora. Probablemente necesite contratar algunos expertos para que lo ayuden y probablemente necesite una auditoría real de su sistema para ayudarlo a identificar dónde se equivocó (y lo hizo de alguna manera, lo más probable).

Para el anonimato de datos en Kafka, recomendaría el cifrado

Eche un vistazo a la seguridad de Kafka a través de la publicación de blog de cifrado de datos. Describe cómo puede lograr el anonimato y el cumplimiento de las regulaciones recientes.

La idea central es cifrar los datos lo antes posible (incluso antes de que lleguen a Kafka) y descifrarlos lo más tarde posible

es decir, incluso podría almacenar datos anónimos de Kafka en su sistema de persistencia (es decir, Cassandra) y, mediante los certificados correspondientes, permitir que solo aplicaciones específicas (es decir, facturación) lo anonimicen.

Usaría las nuevas Transformaciones de mensaje único (SMT) de Kafka Connect porque se puede hacer con un código personalizado cero y se ejecuta en un punto de entrada para que los datos no anonimizados potencialmente nunca persistan en absoluto en un tema de Kafka.