ApacheRangerとChuckNorrisがHadoopの保護にどのように役立つか

レンジャーと呼ばれるHadoopセキュリティプロジェクトは、チャックノリスの「炎のテキサスレンジャー」の役割に敬意を表して名付けられたと思われます。このプロジェクトのルーツは、Hortonworksによって買収されたXA Secureにあり、その後Argusに名前が変更されてから、Apache SoftwareFoundationにRangerとして定着しました。

Hadoopが始まったとき、それは主にYahooのような大手インターネット企業のバックエンドで使用されていた疎結合パーツのセットでした。これらのパーツはディストリビューションにラップされ、MapR、Cloudera、HortonworksなどによってHadoopとして販売されました。

このような断片的なアーキテクチャは、オープンソースの世界でも、商用ソフトウェアの広い世界でも珍しいことではありません。ただし、セキュリティ上の問題が発生します。これを「安全ではない」と読む人もいますが、必ずしもそうとは限りません。問題は、このパーツシステムのすべてのパーツに対してユーザーをどのように認証するかということです。ユーザーを認証したら、ユーザーに許可することだけを許可する方法を教えてください。

Hadoopの各部分には、独自のLDAP認証とKerberos認証、および独自の承認手段とルールがあります(ほとんどの場合、同じものの完全に別個の実装です)。つまり、KerberosまたはLDAPを個々の部分に構成し、それらのルールをそれぞれの個別の構成で定義することができます。Apache Rangerが行うことは、Hadoopのこれらの各部分へのプラグインと共通の認証リポジトリを提供することです。また、一元化された場所でポリシーを定義できるようにします。

Rangerは明らかにHortonworksが後援するプロジェクトです(ClouderaやMapR、または現在のDatabricksとは対照的です)。これは、一部はスキン(緑色)の方法で、一部はサポートされているためにわかります。現在、レンジャーは以下をサポートしています。

  • HDFS
  • ハイブ
  • HBase
  • ノックス
  • カフカ
  • Solr

HadoopとSolrのコアの一部としてサポートされているHDFSとHBaseを除いて、これらはより「Hortonworksy」プロジェクトの一部です。最新のデプロイメントでは、SparkやおそらくImpala(Clouderaから)などの他のコンポーネントが表示される可能性があります。それにもかかわらず、レンジャーは素晴らしいことです。

レンジャーのしくみ

Rangerでは、コンポーネントごとにリポジトリを操作します。これらのリポジトリは、そのコンポーネントで動作する基盤となるプラグインまたはエージェントに基づいています。

これらの各リポジトリに関連付けられているのは、保護しているリソース(テーブル、フォルダ、または列)とグループ(管理者など)に関連付けられている一連のポリシーと、それらがそのことで実行できること(読み取り、書き込みなど)。各ポリシーに名前を付けます。たとえば、「grp_nixonのみがapac_chinaテーブルを読み取ることができます」と言います。 

Hadoopエコシステムに必要なシンプルさをもたらすものを誰が実行できるかを一元的に表示するGUIですが、Rangerが提供するのはそれだけではありません。また、監査ログも提供します。これは、必要なすべてのアプリケーション監査ログに取って代わることはできませんが、HDFSで誰が何にアクセスしたか、またはどのポリシーがどこで適用されたかを知る必要がある場合は、おそらくまさに必要なものです。

さらに、Rangerは、HDFSの新しいTDE(透過データ暗号化)と連携するためにキー管理サービスを提供できます。したがって、エンドツーエンドの暗号化とそれに関連付けられたキーを管理するためのクリーンな方法が必要な場合、レンジャーは開始するのに悪い場所ではありません。

レンジャーは先を見据えています

レンジャーの最大の希望は、その拡張性にあると思います。カバーされていない領域用に独自のプラグインを作成できます。

これでHadoopセキュリティの話が終わりだと思っていたのなら、残念ながら、ClouderaにはSentryと呼ばれる独自のApacheプロジェクト(MapRもサポートしているようです)があり、ほぼ同じ領域をカバーしています。公平を期すために、Sentryが最初で、次にHortonworksがXASecureを買収しました。とは言うものの、Sentryのドキュメントは事実上存在せず、カバレッジはより制限されており、プロジェクトのWebサイトは荒廃しています(GitHubでのアクティビティは最近取り上げられましたが)。

Hadoopのセキュリティは長い道のりを歩んできました。レンジャーは、生態系を管理するためのかなり包括的な方法を提供しますが、それでも少し不完全です。持続する穴は、主にビッグデータの世界全体でのベンダーの競争によるものです。これらはプロジェクトの拡張性によって埋めることができますが、Apacheの世界でより多くのコラボレーションとコミュニティが見られるといいでしょう。