配置YARN开启Ranger权限控制

本文介绍如何将YARN集成至Ranger,以及如何配置权限。

背景信息

Ranger YARN仅支持Scheduler队列的权限控制,不支持Fair队列的权限控制。Ranger YARN队列权限控制与YARN自带的Capacity Scheduler配置共同生效。鉴权流程如下图所示。YARN

前提条件

已创建EMR-5.11.0之前版本、EMR-3.45.0之前版本,且选择了Ranger服务的集群,创建集群详情请参见创建集群

说明

EMR-5.11.0及后续版本、EMR-3.45.0及后续版本,Ranger Usersync会根据集群是否安装OpenLDAP自动对接LDAP,您可以在Ranger服务的配置页签,搜索ranger.usersync.sync.source配置项,查看当前Ranger Usersync的用户来源(unix或ldap)。

使用限制

YARN必须使用Capacity Scheduler调度器,开启ACL权限,并确保没有非必要的授权,详情请参见YARN调度器YARN高安全特性使用指南

须确认以下信息:

  • YARN服务的yarn-site.xml中已配置yarn.resourcemanager.scheduler.class=org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler

  • YARN ACL功能总开关已开启(即yarn.acl.enable=true)。

  • 在YARN服务的capacity-scheduler.xml中,确认Capacity Scheduler调度器的配置yarn.scheduler.capacity.root.acl_submit_applications= (配置值为单个空格)和yarn.scheduler.capacity.root.acl_administer_queue= hadoophadoop前有单个空格),表示所有队列默认将队列管理权限授权给hadoop组。

  • 确认除了上述root队列ACL配置外没有其他acl_submit_applications或者acl_administer_queue配置,避免YARN ACL影响Ranger鉴权预期结果。

操作步骤

  1. 进入集群服务页面。

    1. 登录E-MapReduce控制台

    2. 单击目标集群操作列的集群服务

  2. Ranger启用YARN。

    1. 集群服务页面,单击Ranger-plugin服务区域的状态

    2. 服务概述区域,打开enableYARN开关。

    3. 在弹出的对话框中,单击确定

  3. 重启YARN ResourceManager。

    1. 集群服务页面,选择more > YARN

    2. 在YARN集群服务的状态页面,单击ResourceManager操作列的重启

    3. 在弹出的对话框中,输入执行原因,单击确定

    4. 确认对话框中,单击确定

权限配置示例

Ranger启用YARN后,已默认添加好了YARN Service。您可以使用YARN Service,授予emr-user用户的队列管理权限。

  1. 进入Ranger UI页面,详情请参见Ranger概述

  2. 在Ranger UI页面,单击配置好的emr-yarn

    emr-yarn

  3. 单击右上角的Add New Policy

  4. 根据您的实际需求配置相关参数。

    create

    参数

    说明

    Policy Name

    策略名称,可以自定义。

    Queue

    队列名称。例如root.default。

    recursive

    子队列是否继承该权限。

    Select Group

    指定添加此策略的用户组。

    Select User

    指定添加此策略的用户。例如,emr-user。

    Permissions

    选择授予的权限。例如,admin-queue。

  5. 单击Add

    添加Policy后,实现对emr-user的授权。emr-user用户可以向root.default队列提交作业。

    说明 添加、删除或修改Policy后,需要等待约一分钟至授权生效。