Rangerを通じたユーザー別 HDFSアクセス権限管理

Prev Next

VPC環境で利用できます。

Apache Rangerでビックデータのエコシステムに関するセキュリティルールを実現できます。Rangerプロジェクトは、すべての Hadoopアプリケーションに統一した方式でセキュリティガイドラインを定義して適用するのに役立ちます。

本ガイドでは、Rangerのユーザーベースアクセス権限管理機能を使用して、ユーザーごとにアクセス可能な HDFSディレクトリを指定する方法について説明します。

参考

Rangerのユーザーベースアクセス権限管理機能を利用するには、Ranger Pluginの有効化が事前に必要です。
Ranger Pluginの有効化方法については、Ranger Pluginによるアクセス制御設定ガイドをご参照ください。

Rangerアーキテクチャのサマリー

image

  • クライアント側がリソースにアクセスする際、Rangerが間で Policyに基づいてアクセス制御機能を実行します。
  • HDFS以外の Hive、HBaseなどのコンポーネントのリソースもアクセス制御が可能です。

Hueを用いた User作成

  1. Hue Web UIにアクセスします。
    • Hueの使用についての内容は、Hue を使用するガイドをご参照ください。
  2. 画面左下のプロファイルにカーソルを合わせ、 [ユーザー管理] をクリックします。
    cloudhadoop-vpc-23-hue1
  3. 画面右上の [ユーザー追加] ボタンをクリックした後、ユーザー名とパスワードを入力して新しいユーザーを作成します。
    cloudhadoop-vpc-23-hue2
  • ユーザーが正常に作成された場合、管理ユーザーページで作成されたユーザーを確認できます。
  • さらに、画面左側のメニューバーのファイルメニューをクリックすると、/user パスでユーザー名が付いたディレクトリを確認できます。

Ranger User作成

  1. Ranger UIにアクセスし、画面上部の Settings > [Users/Groups/Roles] ボタンをクリックします。
  2. Groups > [Add New Group] ボタンをクリックした後、グループを作成します。
  3. Rangerユーザーを追加するには、画面上部の [Users] タブをクリックした後、 [Add New User] ボタンをクリックします。
    • User Name項目に Hueで作成したユーザー名と同じユーザーを作成します。
    • Passwordと First Name項目は自由に設定できます。
    • Select Role項目で管理者(Admin)と一般ユーザー(User)のどちらかを選択できます。
    • Group項目では、事前に作成したグループを選択します。
      cloudhadoop-vpc-23-user
  4. ユーザーの作成が完了すると、Ranger UIでユーザーリストを以下のように確認できます。
    cloudhadoop-vpc-23-user1

Ranger Policy作成

  1. Policyを設定するには、画面上部の Access Manager > Resource Based Policiesをクリックします。
  2. [HDFS] タブにある [{クラスタ名}_hadoop] サービスをクリックします。
    cloudhadoop-vpc-23-policy
  3. 画面右側の [Add New Policy] ボタンをクリックします。
    cloudhadoop-vpc-23-policy1
注意

[HDFS] タブの右側にある [+] ボタンは、Policy作成ではなく Service作成ボタンです。Policyを作成するには、 [+] ボタンではなく [{クラスタ名}_hadoop] サービスをクリックし、サービス内部で Policyを作成してください。

Resource設定

  • Create Policy > Policy Detailsで Policyの名前と管理対象リソースを設定できます。
    cloudhadoop-vpc-23-policy2
  • [Resource Path] 項目にアクセスを制御したい HDFSディレクトリの Pathを入力します。
  • [recursive] オプションは、サブディレクトリを含むかどうかを示します。

Condition作成

  • Ranger Policyを別途作成していなくても、Hueから HDFSへのアクセスが可能です。
参考

Ranger Conditionが設定されていない場合、HDFSと YARNは独自の ACLを通じてユーザーアクセス管理を行います。そのため、Ranger Conditionが存在しなくても Hueから HDFSへのアクセスが可能です。ただし、その他のコンポーネントは、Ranger Pluginが有効化されていても Ranger Conditionが設定されていない場合、アクセスが制限されます。

  • Ranger Policyの Conditionには、アクセス許可のための Allow Conditionと、アクセス制限のための Deny Conditionの2種類が存在します。
  • HDFSは Conditionが存在しなくても既にアクセスが可能なため、Ranger Policyを作成して Deny Conditionを事前にに設定することで HDFSへのアクセス制限が可能になります。
参考

Ranger Policyは Deny Condition、Deny Conditionの例外、Allow Condition、Allow Conditionの例外の順でアクセス権限を確認します。

  • Deny Condtions項目の [Select User] をクリックし、アクセスを制限するユーザーをすべて選択します。
  • 特定のユーザーのみアクセスを許可するように設定するには、 [Exclude from Deny Conditions] タブ下の [Select User] 項目をクリックして例外ユーザーを指定できます。
  • [Permissions] で権限を設定します。
  • Conditionの作成が完了したら、画面下部の [Add] ボタンをクリックして Policyを作成します。
    cloudhadoop-vpc-23-policy3
  • アクセス制限が正常に設定されている場合、Hueでアクセス制限が適用された HDFSディレクトリにアクセスすると、画面右上に警告ポップアップメッセージが表示されます。
  • 以下の例は、「user-2」ユーザーとしてログイン後、/user/user-1 ディレクトリにアクセスしようとした際の画面です。アクセスが制限され、警告ポップアップメッセージが表示されたことを確認できます。
    cloudhadoop-vpc-23-policy4

Ranger Audit確認

  • アクセスが制限された原因は、Ranger UIを通じて正確に把握できます。
  • 画面上部の [Audit] タブをクリックします。
    cloudhadoop-vpc-23-policy5
  • アクセスリストで Rangerによってアクセスが制限されたディレクトリを確認できます。
  • HDFSの独自の ACLではなく Rangerによって制限されたリソースは、Access Enforcerタブに hadoop-aclではなく ranger-aclが表示されています。