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

背景信息

Ranger HDFS权限控制与HDFS ACL共同生效,且优先级低于HDFS ACL。只有在HDFS ACL权限校验被拒绝时才会校验Ranger HDFS权限。鉴权流程如下图所示。HDFS Config

前提条件

已创建集群,并选择了Ranger服务,详情请参见创建集群

HDFS集成Ranger

  1. 进入集群详情页面。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域和资源组
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
  2. Ranger启用HDFS。
    1. 在左侧导航栏单击集群服务 > RANGER
    2. 单击右侧的操作下拉菜单,选择启用HDFS
      Enable HDFS PLUGIN
    3. 执行集群操作。
      1. 执行集群操作对话框中,输入执行原因,单击确定
      2. 确认对话框,单击确定
      3. 单击右上角查看操作历史查看任务进度,等待任务完成。
  3. Ranger UI添加HDFS Service。
    1. 进入Ranger UI页面,详情请参见概述
    2. 在Ranger UI页面,单击HDFS所在行的Add图标,添加HDFS Service。
      Ranger UI
    3. 配置相关参数。
      hdfs
      参数 说明
      Service Name 固定值emr-hdfs。
      Username 固定值hadoop。
      Password 自定义。
      Namenode URL
      • 非高可用集群:hdfs://emr-header-1:9000
      • 高可用集群:hdfs://emr-header-1:8020
      Authorization Enabled 标准集群选择No;高安全集群选择Yes
      Authentication Type
      • Simple:表示标准集群。
      • Kerberos:表示高安全集群。
      dfs.datanode.kerberos.principal 标准集群时不填写;高安全集群时填写hdfs/_HOST@EMR.${id}.com
      说明 您可以登录服务器执行hostname命令,hostname中的数字即为${id}
      dfs.namenode.kerberos.principal
      dfs.secondary.namenode.kerberos.principal
      Add New Configurations
      • Name:固定值policy.download.auth.users
      • Value:固定值hdfs
    4. 单击Add
  4. 重启HDFS。
    1. 左侧导航栏单击集群服务 > HDFS
    2. 单击右上角操作下拉菜单,选择重启 All Components
    3. 执行集群操作。
      1. 执行集群操作对话框中,输入执行原因,单击确定
      2. 确认对话框,单击确定
      3. 单击右上角查看操作历史查看任务进度,等待任务完成。

权限配置示例

例如,授予test用户/user/foo路径的Write和Execute权限。

  1. 进入Ranger UI页面,详情请参见概述
  2. 在Ranger UI页面,单击配置好的emr-hdfs
    权限配置示例
  3. 单击右上角的Add New Policy
  4. 配置相关参数。
    参数 说明
    Policy Name 策略名称,可以自定义。
    Resoure Path 资源路径。
    recursive 子目录或文件是否集成权限。
    Select Group 指定添加此策略的用户组。
    Select User 指定添加此策略的用户。
    Permissions 选择授予的权限。
  5. 单击Add
    添加Policy后,实现了对test用户的授权。test用户即可访问/user/foo的HDFS路径。
    说明 添加、删除或修改Policy后,需要等待约一分钟至授权生效。