すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:DLF-Auth

最終更新日:Jun 21, 2026

DLF-Auth は Data Lake Formation (DLF) のコンポーネントです。DLF のデータ権限機能を有効にし、データベース、テーブル、列、関数にきめ細かいアクセス制御を提供します。これにより、データレイクのデータ権限を統合的に管理できます。このトピックでは、DLF-Auth の権限を有効にする方法について説明します。

背景情報

Data Lake Formation (DLF) は、クラウドでデータレイクを迅速に構築するためのフルマネージドサービスです。データレイクに、統合された権限管理とメタデータ管理を提供します。詳細については、「Product Introduction」をご参照ください。DLF-EMR

前提条件

OpenLDAP サービスが選択された E-MapReduce クラスターがあること。詳細については、「Create a cluster」をご参照ください。

説明

「ソフトウェア構成」ページでは、Metadata のデフォルト値は DLF 統合メタデータ です。

制限事項

  • Data Lake Formation (DLF) の権限管理は、Resource Access Management (RAM) ユーザーにのみ対応しています。EMR コンソールのユーザー管理ページでユーザーを追加できます。

  • Data Lake Formation (DLF) のデータ権限管理機能に対応するリージョンについては、「Supported regions and endpoints」をご参照ください。

  • DLF-Auth で Hive または Spark を有効にした場合、Ranger で有効化または無効化することはできません。逆も同様です。

  • 次の表に、DLF-Auth が対応する EMR バージョンとコンピューティングエンジンを示します。

    EMR メジャーバージョン

    Hive

    Spark

    Presto

    Impala

    EMR 3.x

    EMR 3.39.0 以前

    非対応

    非対応

    非対応

    非対応

    EMR-3.40.0

    対応

    対応

    対応

    非対応

    EMR 3.41.0 ~ EMR 3.43.1

    対応

    対応

    非対応

    非対応

    EMR 3.44.0 以降

    対応

    対応

    対応

    対応

    EMR 5.x

    EMR 5.5.0 以前

    非対応

    非対応

    非対応

    非対応

    EMR 5.6.0

    対応

    対応

    対応

    非対応

    EMR 5.7.0 ~ EMR 5.9.1

    対応

    対応

    非対応

    非対応

    EMR 5.10.0 以降

    対応

    対応

    対応

    対応

操作手順

次の手順に従って DLF-Auth を有効にし、データレイクにフルマネージドの統合権限管理を実装します。

手順 1:Hive アクセスコントロールの有効化

  1. DLF-Auth ページに移動します。

    1. EMR on ECS にログインします。

    2. 上部メニューで、必要に応じてリージョンとリソースグループを選択します。

    3. [EMR on ECS] ページで、管理したいクラスターを探し、[操作] 列の Services をクリックします。

    4. Services ページで、DLF-Auth サービスセクションの Status をクリックします。

  2. Hive アクセスコントロールを有効にします。

    1. DLF-Auth サービスページで、[enableHive] スイッチをオンにします。

    2. 表示されるダイアログボックスで、OK をクリックします。

  3. HiveServer を再起動します。

    1. Services ページで、[Hive] サービスをクリックします。

    2. Hive サービスページで、[HiveServer] を見つけ、アクション列で 再起動 をクリックします。

    3. 表示されるダイアログボックスで、Execution Reason を入力し、OK をクリックします。

    4. Confirm ダイアログボックスで、OK をクリックします。

手順 2:RAM ユーザーの追加

ユーザー管理機能を使用してユーザーを追加します。

  1. ユーザー管理ページに移動します。

    1. EMR on ECS にログインします。

    2. 上部メニューで、必要に応じてリージョンとリソースグループを選択します。

    3. EMR on ECS ページで、管理したいクラスターを探し、操作列の Services をクリックします。

    4. Users タブをクリックします。

  2. Users ページで、Add User をクリックします。

  3. Add User ダイアログボックスで、Username ドロップダウンリストから既存の RAM ユーザーを EMR ユーザー名として選択し、PasswordConfirm Password フィールドにパスワードを入力します。

  4. OK をクリックします。

手順 3:権限の検証

重要

RAM ユーザーに AliyunDLFDssFullAccess 権限が付与されているか、AdministratorAccess が付与されている場合、その RAM ユーザーはすべてのきめ細かい DLF リソースへのアクセス権限を持ちます。この場合、データ権限を付与する必要はありません。

  1. 新しい権限を付与する前に、現在のユーザーの権限を検証します。

    1. Secure Shell (SSH) プロトコルを使用してクラスターにログインします。詳細については、「Log on to a cluster」をご参照ください。

    2. 次のコマンドを実行して HiveServer2 にアクセスします。

      beeline -u jdbc:hive2://master-1-1:10000 -n <user> -p <password>
      説明

      <user><password> は、「手順 2:RAM ユーザーの追加」で設定したユーザー名とパスワードを表します。

    3. 既存テーブルの情報を表示します。

      たとえば、テストテーブルの情報を表示するには、次のコマンドを実行します。testdb.test は実際の情報に置き換えてください。

      select * from testdb.test;

      現在のユーザーには必要な権限がないため、クエリは失敗し、権限エラーが返されます。

      0: jdbc:hive2://xxx:10000> select * from testdb.test;
      22/07/07 19:03:32 [main]: WARN conf.HiveConf: HiveConf of name hive.metastore.delta.compatible.mode.enabled does not e
      xist
      Error: Error while compiling statement: FAILED: HiveAccessControlException Permission denied: user [dlf-test] does not
       have [SELECT] privilege on [database=testdb/table=test/*]. Permission denied: DLF checkPermission failed. message=[Ac
      tion: CHECK_PERMISSIONS ErrorCode: NoPermission Message: Authorization Failed [4019], You have NO privilege 'Select' o
      n {acs:dlf:cn-hangzhou:xxx:metastore/catalogs/xxx/databases/testdb/tables/test}. Deny as def
      ault for Resource.  Context ID:dd198392-9b30-4899-9b32-61e1a993bd55.    --->Tips: Principal:acs:ram::xxx:
      user/dlf-test Not pass by dlf permission check. RequestId: C4EC27BE-31ED-5A4B-AD40-2C8EF60359C0] (state=42000,code=400
      00)
  2. RAM ユーザーに権限を追加します。

    1. Data Lake Formation コンソールにログインします。

    2. 左側のナビゲーションペインで、Data Permission > Grant Permissions を選択します。

    3. Grant Permissions ページで、Add Authorization をクリックします。

    4. Add Authorization ページで、以下のパラメーターを設定します。

      パラメーター

      説明

      [Principal]

      [Principal Type]

      デフォルトは RAM ユーザーです。

      [Choose Principal]

      Choose Principal ドロップダウンリストから、ステップ 2: RAM ユーザーの追加 で追加したユーザーを選択します。

      [Resources]

      [Authorization Method]

      デフォルトはリソースベースの権限付与です。

      [リソースタイプ]

      適切なオプションを選択します。

      この例では、メタデータテーブルを選択します。

      [Permission]

      [Data Permission]

      この例では、[選択] を使用します。

      [Permissions]

    5. OK をクリックします。

  3. 新しい権限を付与した後に、現在のユーザーの権限を検証します。

    ステップ 1 のサブステップ a の手順に従って、テーブル情報を再度表示します。必要な権限が付与されたため、クエリはテーブル情報を返すようになりました。

(オプション) 手順 4:Hive LDAP 認証の有効化

DLF-Auth 権限を有効にする場合は、Hive LDAP 認証も有効にすることを推奨します。これにより、Hive に接続するユーザーは、スクリプトを実行する前に LDAP によって認証されます。

  1. クラスターサービスページに移動します。

    1. EMR on ECS にログインします。

    2. 上部メニューで、必要に応じてリージョンとリソースグループを選択します。

    3. [EMR on ECS] ページで、管理する クラスターを見つけ、「操作」列の Services をクリックします。

  2. LDAP 認証を有効にします。

    1. [サービス] タブで、Hive セクションの [ステータス] をクリックします。

    2. enableLDAP スイッチをオンにします。

      • EMR V5.11.1 以降および EMR V3.45.1 以降の場合

        1. [サービス概要] セクションで、[enableLDAP] スイッチをオンにします。

        2. ダイアログボックスで、決定 をクリックします。

      • EMR V5.11.0 以前および EMR V3.45.0 以前の場合

        1. Components セクションで [HiveServer] を見つけ、[アクション] 列で more > [enableLDAP] を選択します。

        2. 表示されるダイアログボックスで、Execution Reason フィールドに実行理由を入力し、決定 をクリックします。

        3. [確認] ダイアログボックスで、決定 をクリックします。

    3. HiveServer を再起動します。

      1. [コンポーネントリスト] セクションで、[HiveServer] の [アクション] 列にある [再起動] をクリックします。

      2. 表示されるダイアログボックスで、[実行理由] フィールドに理由を入力し、[OK] をクリックします。

      3. [確認] ダイアログボックスで、[OK] をクリックします。

よくある質問

Q:複数のカタログを使用する場合、DLF-Auth に個別の Catalog ID を設定するにはどうすればよいですか。

A: 次の手順に従って、DLF-Auth に個別の Catalog ID を設定できます。

説明

このバージョンは Presto に対応していないため、Presto のコンピューティングエンジンを設定する必要はありません。

  1. DLF-Auth ページに移動します。

    1. EMR on ECS にログインします。

    2. 上部メニューで、必要に応じてリージョンとリソースグループを選択します。

    3. [EMR on ECS] ページで、管理するクラスターを見つけ、[アクション] 列の [サービス] をクリックします。

    4. Services ページで、DLF-AUTH サービスセクションの Configure をクリックします。

  2. Hive コンピューティングエンジンを設定します。

    必要に応じて Hive コンピューティングエンジンを設定できます。

    1. Hive コンピューティングエンジンの設定項目を追加します。

      1. [dlf-hive-security.xml] タブをクリックします。

      2. Add Configuration Item をクリックします。

      3. 「キー」に dlf.catalog.id を、「値」にお使いのクラスターに関連付けられている DLF カタログ ID を設定します。

        Hive サービスページの Configure タブで dlf.catalog.id パラメーターの値を表示できます。この値が DLF カタログ ID です。

      4. OK をクリックします。

      5. 表示されるダイアログボックスで、Execution Reason を入力し、Save をクリックします。

    2. HiveServer サービスを再起動します。

      1. Hive サービスページのStatus タブに移動します。

      2. Components セクションで HiveServer を探し、アクション列の 再起動 をクリックします。

      3. 表示されるダイアログボックスで、Execution Reason を入力し、OK をクリックします。

      4. Confirm ダイアログボックスで、OK をクリックします。

  3. Spark コンピューティングエンジンを設定します。

    必要に応じて Spark コンピューティングエンジンを設定できます。

    1. Spark コンピューティングエンジンの設定項目を追加します。

      1. [dlf-spark-security.xml] タブをクリックします。

      2. Add Configuration Item をクリックします。

      3. キーを dlf.catalog.id に設定し、値をクラスターに関連付けられている DLF カタログ ID に設定します。

        Spark サービスページの「設定」タブで DLF カタログ ID を確認できます。ID は、[dlf.catalog.id] パラメーターの値です。

      4. OK をクリックします。

      5. 表示されるダイアログボックスで、Execution Reason を入力し、Save をクリックします。

    2. Spark Thrift Server サービスを再起動します。

      1. Spark サービスページのStatusタブに移動します。

      2. Components セクションで、Spark Thrift Server を見つけ、[操作] 列の 再起動 をクリックします。

      3. 表示されるダイアログボックスで、Execution Reason を入力し、OK をクリックします。

      4. Confirm ダイアログボックスで、OK をクリックします。