このトピックでは、Ranger で YARN を有効化する方法と、関連する権限を設定する方法について説明します。
背景情報
YARN が Ranger と統合されている場合、Ranger を使用してスケジューラキューの権限のみを設定できます。 フェアキューの権限は設定できません。 Ranger を使用して YARN キューに設定した権限と、YARN の Capacity Scheduler 設定は同時に有効になります。次の図は認証プロセスを示しています。
前提条件
EMR V5.11.0 以前または EMR V3.45.0 以前のバージョンのクラスターが作成され、クラスターに Ranger と OpenLDAP が選択されています。 クラスターの作成方法の詳細については、「クラスターの作成」をご参照ください。
EMR V5.11.0 以降のマイナーバージョンのクラスターと EMR V3.45.0 以降のマイナーバージョンのクラスターの場合、クラスターに OpenLDAP がインストールされていれば、RangerUserSync は自動的に LDAP サーバーに接続します。 Ranger サービスページの [設定] タブで ranger.usersync.sync.source 設定項目を検索して、RangerUserSync のユーザーソース (UNIX または LDAP) を表示できます。
制限事項
Capacity Scheduler を YARN のスケジューラとして使用する必要があり、YARN のアクセス制御リスト (ACL) 機能を有効にする必要があります。 不要な権限が付与されていないことを確認する必要があります。 詳細については、「YARN スケジューラ」および「YARN の高セキュリティ機能」をご参照ください。
Ranger で YARN を有効にする前に、次の要件が満たされていることを確認してください。
YARN サービスページの [yarn-site.xml] タブで、
yarn.resourcemanager.scheduler.classパラメーターが org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler に設定されています。/* YARN サービスページの yarn-site.xml タブで、yarn.resourcemanager.scheduler.class パラメーターが org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler に設定されている。*/YARN サービスページの yarn-site.xml タブで、
yarn.acl.enableパラメーターが true に設定されています。 これは、YARN の ACL 機能が有効になっていることを示します。/* YARN サービスページの yarn-site.xml タブで、yarn.acl.enable パラメーターが true に設定されている。これは、YARN の ACL 機能が有効になっていることを示す。*/YARN サービスページの capacity-scheduler.xml タブで、
yarn.scheduler.capacity.root.acl_submit_applicationsパラメーターが単一のスペースに設定され、yarn.scheduler.capacity.root.acl_administer_queueパラメーターがhadoop(hadoop の前にスペースが追加されています)に設定されています。 これは、hadoop ユーザーグループにすべてのキューを管理する権限があることを示します。/* YARN サービスページの capacity-scheduler.xml タブで、yarn.scheduler.capacity.root.acl_submit_applications パラメーターが単一のスペースに設定され、yarn.scheduler.capacity.root.acl_administer_queue パラメーターが hadoop(hadoop の前にスペースが追加されています)に設定されている。これは、hadoop ユーザーグループにすべてのキューを管理する権限があることを示す。*/acl_submit_applicationsまたはacl_administer_queue設定項目は、ルートキュー以外のキューには設定されていません。 これにより、YARN の ACL 機能が Ranger 認証に影響を与えることを防ぎます。/* acl_submit_applications または acl_administer_queue 設定項目は、ルートキュー以外のキューには設定されていない。これにより、YARN の ACL 機能が Ranger 認証に影響を与えることを防ぐ。*/
手順
[サービス] タブに移動します。
EMR コンソール にログインします。
上部のナビゲーションバーで、クラスターが存在するリージョンを選択し、ビジネス要件に基づいてリソースグループを選択します。
EMR on ECS ページで、目的のクラスターを見つけ、[アクション] 列の [サービス] をクリックします。
Ranger で YARN を有効にします。
表示されるページの Services タブで、Status[ranger-plugin] セクションの をクリックします。
[サービス概要] タブで、[enableyarn] をオンにします。
表示されるメッセージで、[OK] をクリックします。
YARN ResourceManager を再起動します。
[サービス] タブで、
アイコンをクリックし、[YARN] を選択します。[ステータス] タブの [コンポーネント] セクションで、[resourcemanager] を見つけ、[アクション] 列の [再起動] をクリックします。
表示されるダイアログボックスで、[実行理由] パラメーターを設定し、[OK] をクリックします。
[確認] メッセージで、[OK] をクリックします。
Ranger で権限を設定する
Ranger で YARN を有効にすると、YARN サービスが Ranger の Web UI に追加されます。 YARN サービスを使用して、ユーザー emr-user にキュー管理権限を付与できます。
Ranger の Web UI にアクセスします。 詳細については、「概要」をご参照ください。
[emr-yarn] をクリックします。

表示されるページの右上隅にある [新しいポリシーを追加] をクリックします。
ビジネス要件に基づいてパラメーターを構成します。次の表でパラメーターについて説明します。

パラメーター
説明
ポリシー名
ポリシーの名前。カスタム名を指定できます。
キュー
キューの名前。例:root.default。
再帰的
子キューが権限を継承するかどうかを指定します。
グループの選択
ポリシーをアタッチするユーザーグループ。
ユーザーの選択
ポリシーをアタッチするユーザー。例:emr-user。
権限
付与する権限。例:admin-queue。
[追加] をクリックします。
ポリシーが追加されると、関連する権限がユーザー emr-user に付与されます。ユーザー emr-user は root.default キューにジョブを送信できます。
説明ポリシーを追加、削除、または変更した後、構成が有効になるまで約 1 分かかります。