HBase ACL和Ranger权限解析

wangchao316 发表于 2021/05/25 17:59:50 2021/05/25
【摘要】 hbase集成ranger鉴权,ranger统一管控权限。

Ranger-hbase鉴权原理

基本流程

RangerAuthorizationCoprocessor实现了CoprocessorService接口,将自己注册进去,监听grantrevoke。实现了grant(),revoke()方法。在grantUpdateRangerPoliciesOnGrantRevoke = 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实现的类加载器破坏了双亲委派机制,从而将自己使用的第三方库和组件使用的第三方库隔离。

RangerHBase ACL对比:

  1. ranger中新增的allowdeny方式进行权限控制,增加了权限排除的多种组合。
  2. ranger将平台多个组件的权限控制进行集中管理,易于操作,把控。
  3. rangerDB容易成为该系统的单点,因为所有的策略更新都要访问该DB
  4. ranger权限的生效周期不如hbase自带策略及时;

操作项

Ranger

HBase ACL

权限管理

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

hbase  shell通过命令可以赋权

表级权限

支持

支持

列簇级权限

支持

支持

字段级权限

支持

支持

行级权限

不支持

支持

权限生效周期

有延迟,一般是30s

实时生效

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。