本文分享自华为云社区《【平滑上云】Apache Sentry->Ranger平滑升级方案-云社区-华为云》,作者: 啊喔YeYe。
背景介绍
文章插图
【详解Apache Sentry->Ranger平滑升级方案】CDH是Apache Hadoop和相关项目的最完整、最受测试和最流行的发行版,常常是许多客户建设IDC大数据平台中的首选 。早期CDH版本只提供sentry的权限管理方案,后期新版本提供ranger作为替换方案,而CDH只有商业版本提供sentry升级ranger的服务,开源社区版并未提供这样的能力 。本文主要探讨如何平滑解决sentry到ranger升级过程中的权限迁移问题 。
Sentry权限介绍
Sentry是典型的RABC权限管理系统,通过用户-用户组-角色关联,最终通过role来进行赋权,一般只用于表级授权,存在三种权限类型:select/insert/all(*) 。
sentry关键表分析
文章插图
- sentry_role: 角色列表
- sentry_group;用户组列表
- sentry_role_group_map;角色、用户映射关系表
- sentry_db_privilege: 表权限信息表
- sentry_role_db_privilege_map: 权限、角色映射关系表
举例
表bi_plus.data_xy_b_error_event赋予了XX用户select权限,数据模型如下:
文章插图
Sentry->Ranger方案分解
Ranger基于策略policy的PBAC赋权策略,面向资源授权 。转换sentry策略我们先需要解决用户、用户组、角色同步问题 。
整体迁移策略
文章插图
用户同步方案
Sentry不存在用户,一般来自于外部OpenLdap 。Ranger本身支持外部LDAP同步,在华为云MRS 中通过配置usersync实例与LDPA对接即可实现
用户组同步方案
Sentry用户组如果来源于外部Ldap,参考用户同步方案同步用户组即可 。如果没有外部LDAP,通过读取表sentry_group获取用户组插入Ranger中即可实现 。
角色同步方案
角色同步稍比用户、用户组同步复杂需要自行开发工具支持 。角色同步时要关联用户、用户组,因此需要先完成用户、用户组同步后再进行角色同步 。
策略同步
- 分析sentry中hive表权限,对应每张表生成对应一条ranger策略,例如:库表:default.student生成策略名:default_student 。
- 根据表权限类型,分解为:select、all(*)、insert对相关角色&用户&用户组进行分组,生成为ranger中策略的Condition内容
样例
表bi_plus.data_xy_b_error_event在sentry中实际只有对部分角色用户进行了select授权
文章插图
对应生成的ranger策略为: bi_plus_data_xy_b_error_event
文章插图
FAQ
- Sentry本身不存储用户信息,实际多个客户案例来看一般一个用户对应一个用户组且名称相同,我们基于这个策略进行同步 。
- Ranger用户组、用户不区分大小写而sentry中如果存在大小写差异的用户组会导致同步失败,这种情况建议改造或者下线其中不规范的用户组命名 。
使用华为云大数据产品→大数据迁移上云解决方案_IDC上云_CDH上云_云上资源迁移-华为云,提供端到端迁移方案与技术支持 。
推荐阅读
- 详解指数的概念 手机指数怎么大出来的
- 详解移动广告平台推广 移动增值业务是什么
- 详解回民节日对照表 回族有什么节日风俗
- 详解膨胀螺栓的长度 膨胀螺栓尺寸规格表标准
- 详解lead过去式和过去分词 lead过去式形式
- 详解ct的计量单位 ct是什么单位名称
- 详解探路者徒步鞋价格 探路者户外鞋怎么样
- 常用压敏电阻型号 压敏电阻参数详解
- 详解spread的用法与搭配 spread过去式怎么写
- 详解红米性价比最高的手机 红米手机对比评测