Seguridad, aislamiento y fortalecimiento de Hadoop

7

Esta es una pregunta de varias partes, que realmente vuelve a la pregunta principal:

  

Cómo proteger mejor los datos en un Hadoop ( wikipedia ) cluster.

(Versión actual, distribución de rama principal de vainilla, aunque estoy abierto a escuchar acerca de otros). Después de mucho buscar e investigar, no se me ha ocurrido mucho ...

Mi escenario es un proveedor de servicios, que hospeda y procesa grandes cantidades de datos de varios grandes clientes corporativos (multi-tenancy). Estos clientes no acceden al Hadoop directamente, sino solo a través de la aplicación SaaS. Sin embargo, estos clientes suelen ser competidores directos y, a menudo, bastante paranoicos (justificadamente, ya que cada uno probablemente estaría contento con el espionaje corporativo en contra de los demás ...).

Mi reacción anterior a la vieja escuela es implementar instancias individuales y aisladas para cada cliente. Sin embargo, esto no es práctico ni permite aprovechar los beneficios y capacidades de Hadoop.
Además, me cuesta creer que con todos los grandes usuarios de Hadoop, no haya buenas soluciones para estos problemas ...

En particular, estoy viendo estos problemas:

  • Limitar el acceso a los usuarios específicos en uso por cada aplicación (usuario de la aplicación por cliente)
  • Encriptación
  • Aislamiento entre clientes, es decir, no permite que un cliente vea a otro.
  • Endurecimiento general recomendaciones

Me las arreglé para encontrar algunas instrucciones, pero no he podido verificar que estas sean buenas , o si hay mejores soluciones.

  • autorización de nivel de servicio
  • Aislamiento de la red / sistema, para evitar que cualquier persona, excepto la aplicación, tenga acceso directo
  • Permisos de archivo / carpeta, por usuario de la aplicación (es decir, cliente).
    Problemas que he encontrado con este enfoque:
    • Los permisos solo se aplican en el NameNode; El acceso directo a DataNodes todavía proporcionaría acceso.
    • La autenticación es un poco "dudosa", al menos hasta que se agregue en el soporte de Kerberos (después de eso, tendremos que ver la implementación ...)
    • Me parece que esto no proporciona suficiente aislamiento entre los clientes.
  • HDFS Federation / Namespaces
    Esto podría proporcionar un mejor aislamiento de los privilegios, sin mencionar los servidores separados y el ancho de banda asignado por cliente (para evitar que uno intente hacer DoS a través del único punto de falla de NameNode). Pero no he encontrado ninguna información real sobre el uso de la leyenda real, o cómo resiste el mal uso.
    Además, esto no resuelve el problema de la autenticación suave (¿lo hace?) Y el acceso directo al bloque DataNode (¿lo hace?)
  • Para el cifrado de datos, estoy dividido entre el cifrado HDFS (una clave simple y simétrica compartida entre TODOS los nodos) o el cifrado a nivel de la aplicación (y la clave (o claves, digamos una por cliente) aún debe ser distribuida a cada nodo de tarea para los trabajos de MapReduce).
pregunta AviD 16.02.2012 - 17:41
fuente

1 respuesta

2

Realmente depende de de quién está intentando proteger sus datos.

He configurado clústeres de Hadoop que usan eCryptfs en cada nodo, para garantizar que los datos se puedan compartir de forma transparente entre los nodos, pero también que todos los datos están encriptados antes de ser escritos en el disco. Esto proporciona un nivel medible de privacidad y protección, si está tratando de evitar que los datos sean vulnerables al robo físico de discos o al almacenamiento remoto en red de máquinas virtuales subyacentes en un entorno de nube.

Revelación completa: soy uno de los autores y el mantenedor actual de Utilidades del espacio de usuario de eCryptfs.

    
respondido por el Dustin Kirkland 17.02.2012 - 04:26
fuente

Lea otras preguntas en las etiquetas