更新时间:2022-12-14 GMT+08:00

配置YARN严格权限控制

配置场景

在安全模式的多租户场景下,一个集群可以支持多个用户使用以及支持多个用户任务提交、运行,用户之间是不可见,需要有一个权限控制机制,使用户的任务信息不被其他用户获取。

例如,用户A提交的应用正在运行,此时用户B登录系统并查看应用列表,用户B不应该访问到A用户的应用信息。

配置描述

  • 查看Yarn服务配置参数

    参考修改集群服务配置参数进入Yarn服务参数“全部配置”界面,在搜索框中输入表1中参数名称。

    表1 参数描述

    参数

    描述

    默认值

    yarn.acl.enable

    Yarn权限控制启用开关。

    true

    yarn.webapp.filter-entity-list-by-user

    严格视图启用开关,开启后,登录用户只能查看该用户有权限查看的内容。当要开启该功能时,同时需要设置参数“yarn.acl.enable”为true。

    true

  • 查看Mapreduce服务配置参数
    参考修改集群服务配置参数进入Mapreduce服务参数“全部配置”界面,在搜索框中输入表2中参数名称。
    表2 参数描述

    参数

    描述

    默认值

    mapreduce.cluster.acls.enabled

    MR JobHistoryServer权限控制启用开关。该参数为客户端参数,当JobHistoryServer服务端开启权限控制之后该参数生效。

    true

    yarn.webapp.filter-entity-list-by-user

    MR JobHistoryServer严格视图启用开关,开启后,登录用户只能查看该用户有权限查看的内容。该参数为JobHistoryServer的服务端参数,表示JHS开启了权限控制,但是否要对某一个特定的Application进行控制,是由客户端参数:“mapreduce.cluster.acls.enabled”决定。

    true

    以上配置会影响restful API和shell命令结果,即以上配置开启后,restful API调用和shell命令运行所返回的内容只包含调用用户有权查看的信息。

    当yarn.acl.enable或mapreduce.cluster.acls.enabled设置为false时,即关闭Yarn或Mapreduce的权限校验功能。此时任何用户都可以在Yarn或MapReduce上提交任务和查看任务信息,存在安全风险,请谨慎使用。