HDFS和Yarn接入Rager的鉴权流程
背景:
HDFS:
HDFS通过ACL控制文件访问权限,不能够提供更加复杂的权限规则。
ACL的控制没有可视化的界面操作,不便于用户权限管理,没有统一的权限管理框架。
Ranger的UI界面操作简单。
Yarn:
Yarn原来是通过Manager的租户管理界面新建Yarn的队列,然后可以通过将队列绑定给特定的用户来实现权限控制。
另外Ranger对所有的访问提供了审计的能力,可以将操作日志计入ES中。
Ranger的鉴权方式:
Ranger的鉴权主要采用的是黑白名单的方式,更加详细的鉴权流程如下流程图所示:
通过上面的流程图可以看出Ranger的鉴权采用黑名单优先的策略,整体优先级遵循如下规则:
黑名单排除 > 黑名单 > 白名单排除 > 白名单
上图中说明了几个问题,首先是鉴权的优先级的问题,其次是权限的拒绝允许或者下放的问题,拒绝允许很好理解,当访问的用户匹配到黑名单并且没有被黑名单排除排除掉的话就会拒绝访问,允许访问是首先黑名单没有匹配到,或者黑名单匹配到但是又被黑名单排除排除掉,其次是白名单允许并且白名单排除没有排除,那么将允许访问。
当策略没有,或者上面描述的允许和拒绝访问之外的情况都会进入到决策下放。决策下放之后就会采用原有的鉴权方式。
鉴权角色:
HDFS通过NameNode来进行访问鉴权;
Yarn通过ResourcesManager来进行访问鉴权。
启用流程:
基于上述的流程,HDFS和Yarn以插件的方式接入了Ranger的鉴权流程。
在FI8.0的产品中,安全集群默认会使用Ranger鉴权,而非安全模式不会使用Ranger鉴权,需要手动在界面进行启用Ranger鉴权的操作,手动启用Ranger鉴权会替换相应组件的鉴权类为Ranger实现的鉴权类。
整个的启用规则如下:
再调用enable脚本启用Ranger的时候,首先会去生成相关的配置文件,根据配置文件创建相应的RangerService。
RangerService创建成功之后就可以通过界面操作来创建一系列想要的权限规则。
策略的更新:
在Ranger的界面上配置玩策略之后,HDFS和Yarn的Ranger插件会定时去拉取策略,整个的鉴权流程就会在组检侧完成而非通过网络再去Ranger鉴权。
- 点赞
- 收藏
- 关注作者
评论(0)