HBase ACL和Ranger权限解析

网友投稿 777 2022-05-30

Ranger-hbase鉴权原理

基本流程

RangerAuthorizationCoprocessor实现了CoprocessorService接口,将自己注册进去,监听grant、revoke。实现了grant(),和revoke()方法。在grant中UpdateRangerPoliciesOnGrantRevoke = true将要更新自己的配置。默认值为true,代表了hbase grant操作会同步更新ranger中的权限。会将所有的鉴权操作,放在AuthorizationSession中,其中有缓存权限信息。

PolicyRefresher会同步ranger权限配置,默认是30s更新一次。

RangerPolicyEngineImpl#isAccessAllowed中会从RangerPolicyRepository中查找该资源的所有Policy,遍历执行RangerDefaultPolicyEvaluator#evaluatePolicyItems,来进行评估是否有权限访问。遍历过程中如果发现了匹配的规则,决定了deny还是allow,遍历就会break。每一次的遍历先从denyEvaluators里查找匹配的deny权限,如果没有找到,就从allowEvaluators里查找匹配的allow权限。

pollingIntervalMs = RangerConfiguration.getInstance().getLong(propertyPrefix + ".policy.pollIntervalMs", 30 * 1000);

类加载器

Rangers实现了自己的类加载器,用于解决jar版本冲突。

RangerPluginClassLoader,根据指定目录加载class文件,并且保存在内存中,使ranger的相关进程都可以共享。Ranger实现的类加载器破坏了双亲委派机制,从而将自己使用的第三方库和组件使用的第三方库隔离。

Ranger和HBase ACL对比:

ranger中新增的allow,deny方式进行权限控制,增加了权限排除的多种组合。

ranger将平台多个组件的权限控制进行集中管理,易于操作,把控。

ranger的DB容易成为该系统的单点,因为所有的策略更新都要访问该DB;

ranger权限的生效周期不如hbase自带策略及时;

操作项

Ranger

HBase ACL

权限管理

需要在ranger管理界面上配置用户,表的权限

在hbase  shell通过命令可以赋权

表级权限

支持

支持

列簇级权限

支持

支持

字段级权限

支持

支持

行级权限

HBase ACL和Ranger权限解析

不支持

支持

权限生效周期

有延迟,一般是30s

实时生效

EI企业智能 FusionInsight HBase

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【云小课】基础服务第53课 不了解带宽计费规则?看这里!
下一篇:程序员之路:MySQL存储引擎
相关文章