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

E-MapReduce:HDFS 認証の有効化

最終更新日:Jan 11, 2025

Hadoop Distributed File System (HDFS) 認証が有効になっている場合、必要な権限を持つユーザーのみが HDFS にアクセスし、データの読み取りやフォルダーの作成などの操作を実行できます。このトピックでは、HDFS 認証を有効にする方法について説明します。

背景情報

Hadoop は、ユーザー ID を決定するために、次のモードを提供します。

  • シンプルモード: ユーザー ID は、HDFS に接続されているクライアントのオペレーティングシステムによって決定されます。クライアントが UNIX 系オペレーティングシステムを実行している場合、whoami コマンドを実行してログオンユーザー名を表示します。

  • Kerberos モード: クライアントのユーザー ID は、その Kerberos 資格情報によって決定されます。

    E-MapReduce (EMR) クラスタの作成時に Kerberos 認証を有効にすることができます。 Kerberos 認証の詳細については、概要 をご参照ください。

前提条件

EMR クラスタが作成されていること。詳細については、クラスタの作成 をご参照ください。

手順

説明
  • Kerberos モードでデプロイされたクラスタの場合、HDFS 権限は自動的に指定されます (umask は 027 に設定されます)。 HDFS 認証を設定して HDFS サービスを再起動する必要はありません。

  • Kerberos モードでデプロイされていないクラスタの場合、次の手順を実行して HDFS 認証を設定し、HDFS サービスを再起動する必要があります。

  1. [サービス] タブに移動します。

    1. EMR コンソールにログオンします。左側のナビゲーションペインで、EMR on ECS をクリックします。

    2. 上部のナビゲーションバーで、クラスタが存在するリージョンを選択 し、ビジネス要件に基づいてリソースグループを選択します

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

  2. [サービス] タブで、HDFS サービスを見つけ、[設定] をクリックします。

  3. [設定] タブで、ビジネス要件に基づいてパラメータを変更します。

    パラメータ

    説明

    dfs.permissions.enabled

    権限チェックを有効にするかどうかを指定します。既定値: false。

    権限チェックを有効にするかどうかを指定します。デフォルト値: false。権限チェックを有効にするには、このパラメータを true に設定します。

    dfs.datanode.data.dir.perm

    DataNode のローカルフォルダーストレージディレクトリの権限。

    fs.permissions.umask-mode

    権限マスク。これは、ファイルまたはフォルダーを作成するときに指定されるデフォルト設定です。

    dfs.namenode.acls.enabled

    アクセス制御リスト (ACL) を有効にするかどうかを指定します。デフォルト値: false。 ACL を有効にするには、このパラメータを true に設定します。その後、所有者、ユーザーグループ、およびその他のユーザーの権限を管理できます。

    ACL の設定に使用されるコマンドには、hadoop fs -getfacl [-R] <path> および hadoop fs -setfacl [-R] [-b |-k -m |-x <acl_spec> <path>] |[--set <acl_spec> <path>] が含まれます。

    dfs.permissions.superusergroup

    スーパーユーザーグループの名前。デフォルト値: hadoop。このグループのすべてのユーザーはスーパーユーザーです。

  4. 変更を保存します。

    1. ページの下部にある [保存] をクリックします。

    2. 表示されるダイアログボックスで、[実行理由] パラメータを設定し、[保存] をクリックします。

  5. HDFS サービスを再起動します。

    1. HDFS サービスページの右上隅で、[詳細] > [再起動] を選択します。

    2. 表示されるダイアログボックスで、[実行理由] パラメータを設定し、[OK] をクリックします。

    3. [確認] メッセージで、[OK] をクリックします。

      [サービス] タブの右上隅にある [操作履歴] をクリックして、タスクの進捗状況を表示できます。

  1. SSH モードでクラスタにログオンします。詳細については、クラスタへのログオン をご参照ください。

  2. 次のコマンドを実行して、作成された emrtest ユーザーに切り替えます。

    su emrtest
  3. 次のコマンドを実行して、emrtest ユーザーを使用してディレクトリを作成します。

    hadoop fs -mkdir /tmp/emrtest
  4. 次のコマンドを実行して、作成されたディレクトリの権限を表示します。

    hadoop fs -ls /tmp

    次のような情報が出力されます。

    drwxr-x--x   - emrtest hadoop          0 2022-10-21 14:08 /tmp/emrtest
    drwxr-x--x   - hadoop  hadoop          0 2022-10-21 10:06 /tmp/hadoop-yarn
    drwx-wx-wx   - hive    hadoop          0 2022-10-21 10:13 /tmp/hive
    drwxr-x--x   - hadoop  hadoop          0 2022-10-21 10:23 /tmp/kyuubi-staging
    drwxrwxrwt   - hadoop  hadoop          0 2022-10-21 10:23 /tmp/logs                                 
  5. 次のコマンドを実行して、ディレクトリの ACL を設定し、ユーザー foo に rwx 権限を付与します。

    hadoop fs -setfacl -m user:foo:rwx /tmp/emrtest
  6. 次のコマンドを実行して、ディレクトリの権限を表示します。

    hadoop fs -ls /tmp/

    次のような情報が出力されます。

    drwxrwx--x+  - emrtest hadoop          0 2022-10-21 14:08 /tmp/emrtest
    drwxr-x--x   - hadoop  hadoop          0 2022-10-21 10:06 /tmp/hadoop-yarn
    drwx-wx-wx   - hive    hadoop          0 2022-10-21 10:13 /tmp/hive
    drwxr-x--x   - hadoop  hadoop          0 2022-10-21 10:23 /tmp/kyuubi-staging
    drwxrwxrwt   - hadoop  hadoop          0 2022-10-21 10:23 /tmp/logs
    説明

    権限の後にプラス記号 (+) が続く場合、ACL が設定されています。例: drwxrwx--x+。

  7. 次のコマンドを実行して、ACL を表示します。

    hadoop fs -getfacl /tmp/emrtest

    次のような情報が出力されます。

    # file: /tmp/emrtest
    # owner: emrtest
    # group: hadoop
    user::rwx
    user:foo:rwx
    group::r-x
    mask::rwx
    other::--x