JindoFS は、ブロックストレージモードで UNIX 権限と Ranger 権限という 2 つのファイルシステム権限モデルをサポートしています。
背景情報
ブロックストレージモードでは、次の 2 種類のファイルシステム権限がサポートされています:
- UNIX 権限:ファイルには 777 権限が割り当てられます。
- Ranger 権限:パスのワイルドカードなどの詳細設定をサポートしています。
ユーザー権限は Apache Ranger で設定します。JindoFS プラグインを有効にすると、JindoFS と他のコンポーネントの権限を一元管理できます。
UNIX 権限の有効化
- SmartData サービスに移動します。
- EMR コンソールにログインします。
- 上部のナビゲーションバーで、必要に応じてリージョンとリソースグループを選択します。
- [クラスター] タブをクリックします。
- [クラスター] ページで、対象のクラスターを見つけ、[操作] 列の [詳細] をクリックします。
- 左側のナビゲーションウィンドウで、 を選択します。
- EMR コンソールにログインします。
- bigboot サービスの設定ページに移動します。
- [設定] タブをクリックします。
- bigboot をクリックします。
- Custom Configuration をクリックします。 Add Configuration Item ダイアログボックスで、[キー]jfs.namespaces.<namespace>.permission.method を、[値]unix を設定し、次に OK をクリックします。
- 設定を保存します。
- 右上隅の [保存] をクリックします。
- [確認] ダイアログボックスで、変更理由を入力し、[設定の自動更新] を有効にします。
- [OK] をクリックします。
- コンポーネントを再起動します。
- 右上隅の を選択します。
- 再起動の理由を入力し、[OK] をクリックします。
ファイルシステムの権限を有効にすると、HDFS と同じ方法で権限を管理できます。次のコマンドがサポートされています。hadoop fs -chmod 777 jfs://{namespace_name}/dir1/file1 hadoop fs -chown john:staff jfs://{namespace_name}/dir1/file1ユーザーにファイルの権限がない場合、次のようなエラーメッセージが返されます。[root@emr-header-1 ~]# hadoop fs -ls jfs://test/user/ ls: java.security.AccessControlException: Permission denied. Server Exception
Ranger 権限の有効化
- Ranger を使用するように JindoFS を設定します。
- [bigboot] タブで、Custom Configuration をクリックします。
- Add Configuration Item ダイアログボックスで、[キー]jfs.namespaces.<namespace>.permission.method に、[値]ranger に設定します。
- 設定を保存します。
- 右上隅で、Save をクリックします。
- 変更する ダイアログボックスで、理由を入力し、[自動更新設定] を有効にします。
- OK をクリックします。
- コンポーネントを再起動します。
- 右上隅の を選択します。
- 理由を入力し、OK をクリックします。
- Ranger を設定します。
- Ranger UI に移動します。
詳細については、「概要」をご参照ください。
- Ranger UI で HDFS サービスを追加します。
Service Manager ページで、HDFS パネルの右上隅にある + アイコンをクリックして、HDFS サービスを作成します。
- 次のパラメーターを設定します。
パラメーター 説明 サービス名 サービス名。 jfs-{namespace_name}のフォーマットを使用します。ユーザー名 カスタムのユーザー名。 パスワード カスタムのパスワード。 Namenode URL jfs://{namespace_name} を入力します。 認証の有効化 デフォルト値の No のままにします。 認証タイプ デフォルト値の Simple のままにします。 dfs.datanode.kerberos.principal 空のままにします。 dfs.namenode.kerberos.principal dfs.secondary.namenode.kerberos.principal 新しい設定の追加 - [追加] をクリックします。
- Ranger UI に移動します。
LDAP ユーザーグループでの Ranger 権限の有効化
Ranger UserSync を使用して LDAP サーバーからユーザーグループ情報を同期する場合、JindoFS の設定も更新する必要があります。この変更により、JindoFS は LDAP からユーザーグループ情報を取得し、ユーザーのグループメンバーシップに基づいて Ranger の権限を検証できるようになります。
- [bigboot] タブで、Custom Configuration をクリックします。
- [設定項目の追加] ダイアログボックスで、次のパラメーターを追加して LDAP を設定し、[OK] をクリックします。
パラメーター 例 hadoop.security.group.mapping org.apache.hadoop.security.CompositeGroupsMappinghadoop.security.group.mapping.providers shell4services,ad4usershadoop.security.group.mapping.providers.combined truehadoop.security.group.mapping.provider.shell4services org.apache.hadoop.security.ShellBasedUnixGroupsMappinghadoop.security.group.mapping.provider.ad4users org.apache.hadoop.security.LdapGroupsMappinghadoop.security.group.mapping.ldap.url ldap://emr-header-1:10389hadoop.security.group.mapping.ldap.search.filter.user (&(objectClass=person)(uid={0}))hadoop.security.group.mapping.ldap.search.filter.group (objectClass=groupOfNames)hadoop.security.group.mapping.ldap.base o=emr説明 これらの設定項目は、オープンソースの HDFS の対応する項目と一致している必要があります。 - 設定を保存します。
- 右上隅の [保存] をクリックします。
- [確認] ダイアログボックスで、理由を入力し、[設定の自動更新] を有効にします。
- [OK] をクリックします。
- 関連するすべてのコンポーネントを再起動します。
- 右上隅の を選択します。
- 再起動の理由を入力し、[OK] をクリックします。
- SSH 経由で emr-header-1 ノードにログインし、Ranger UserSync を設定して、LDAP オプションを有効にします。
詳細については、「Ranger UserSync と LDAP サーバーの統合」をご参照ください。