Comment Apache Ranger et Chuck Norris contribuent à sécuriser Hadoop

Le projet de sécurité Hadoop appelé Ranger aurait été nommé en hommage à Chuck Norris dans son rôle de «Walker, Texas Ranger». Le projet a ses racines dans XA Secure, qui a été acquis par Hortonworks, puis renommé Argus avant de s'installer à l'Apache Software Foundation en tant que Ranger.

Lorsque Hadoop a commencé, il s'agissait d'un ensemble de pièces faiblement couplées principalement utilisées dans le back-end des grandes sociétés Internet comme Yahoo. Ces pièces ont été emballées dans des distributions et commercialisées sous le nom de Hadoop par MapR, Cloudera et Hortonworks.

Une telle architecture fragmentaire n'est pas inhabituelle dans le monde de l'open source ou même dans le vaste monde des logiciels commerciaux. Cela entraîne cependant des problèmes de sécurité. Certains liront cela comme «ce n'est pas sûr», mais ce n'est pas nécessairement le cas - bien que cela puisse être. Le problème est plutôt de savoir comment authentifier les utilisateurs auprès de toutes les parties de ce système de pièces - et une fois que vous les authentifiez, comment les autorisez-vous à ne faire que ce que vous voulez dire pour leur permettre de faire?

Chaque partie de Hadoop a sa propre authentification LDAP et Kerberos, ainsi que ses propres moyens et règles d'autorisation (et dans la plupart des cas des implémentations totalement séparées de la même chose). Cela signifie que vous pouvez configurer Kerberos ou LDAP pour chaque partie individuelle, puis définir ces règles dans chaque configuration distincte. Apache Ranger fournit un plug-in à chacune de ces parties de Hadoop et un référentiel d'authentification commun, ainsi que vous permet de définir des politiques dans un emplacement centralisé.

Ranger est clairement un projet sponsorisé par Hortonworks (par opposition à Cloudera ou MapR ou maintenant Databricks). Vous pouvez le dire en partie par la façon dont il est écorché (vert) et en partie à cause de ce qu'il prend en charge. À l'heure actuelle, Ranger prend en charge ce qui suit:

  • HDFS
  • Ruche
  • Tempête
  • HBase
  • Knox
  • FIL
  • Kafka
  • Solr

À l'exception de HDFS et HBase, qui sont pris en charge dans le cadre du cœur de Hadoop et Solr, ce sont quelques-uns des projets les plus «Hortonworksy». Dans un déploiement moderne, vous verrez probablement d'autres composants, tels que Spark ou éventuellement Impala (de Cloudera). Néanmoins, Ranger est une excellente chose.

Comment fonctionne Ranger

Dans Ranger, pour chaque composant, vous travaillez avec un référentiel. Ces référentiels sont basés sur un plug-in ou un agent sous-jacent qui fonctionne avec ce composant.

Un ensemble de politiques est associé à chacun de ces référentiels, qui sont associés à la ressource que vous protégez (une table, un dossier ou une colonne) et à un groupe (comme les administrateurs) et à ce qu'ils sont autorisés à faire avec cette chose (lire , écrivez, etc.). Vous donnez un nom à chaque stratégie - dites: "Seul le grp_nixon peut lire la table apac_china." 

Une interface graphique avec une vue centrale de qui est autorisé à faire ce qui apporte la simplicité bien nécessaire à l'écosystème Hadoop, mais ce n'est pas tout ce que Ranger propose. Il fournit également une journalisation d'audit. Bien que cela ne puisse pas supplanter tous les journaux d'audit des applications dont vous pourriez avoir besoin, si vous avez simplement besoin de savoir qui a accédé à quoi sur HDFS ou quelles politiques ont été appliquées où, c'est probablement exactement ce dont vous avez besoin.

De plus, Ranger peut fournir des services de gestion de clés afin de fonctionner avec le nouveau TDE de HDFS (cryptage transparent des données). Donc, si vous avez besoin d'un cryptage de bout en bout et d'une manière propre de gérer les clés qui lui sont associées, Ranger n'est pas un mauvais point de départ.

Ranger regarde devant

Je pense que le plus grand espoir pour Ranger vient de son extensibilité. Vous pouvez créer vos propres plug-ins pour les zones qui ne sont pas couvertes.

Si vous espériez que c'était la fin de l'histoire sur la sécurité Hadoop, malheureusement, Cloudera a son propre projet Apache appelé Sentry (que MapR semble également prendre en charge) qui couvre à peu près le même domaine. Pour être juste, Sentry a été le premier, puis Hortonworks a acquis XA Secure. Cela dit, la documentation de Sentry est pratiquement inexistante, la couverture est plus limitée et le site Web du projet est en mauvais état (bien que l'activité sur GitHub ait récemment repris).

La sécurité Hadoop a parcouru un long chemin. Ranger donne un moyen assez complet, bien que toujours un peu incomplet, de gérer l'écosystème. Les lacunes qui persistent sont principalement dues à la concurrence des fournisseurs dans le monde du Big Data. Ceux-ci peuvent être remplis via l'extensibilité du projet, mais ce serait bien de voir plus de collaboration et de communauté dans le monde Apache.