StarRocks Native <-> Ranger权限互转工具
- 支持对apache ranger中的policys,policyid进行删除
- 支持直观查看StarRocks内部权限,查看apache ranger中的policys
- 支持指定转换模型,支持内部转换、外部转换两种模式
- 内部转换指的是同一个集群,将内部的权限备份到apache ranger中,或者是apache ranger中的权限备份到集群内部来
- 外部转换指的是不同集群之间的权限相互转换,例如a集群权限属于native管控,b集群属于apache ranger管控,支持互相迁移
- 支持适应集群是否已经集成apache ranger
- 支持apache ranger自动新增用户
一、【部署apache ranger】
apache ranger部署这块不做过多介绍,参考StarRocks官方指引
关联apache ranger后,[Service Name]代表的就是StarRocks集群名称,该名称需与配置表一致。
apache ranger:
db:
二、【功能介绍 IBAC&RBAC转到APACHE RANGER】
假设现有集群sr-qa需要从IBAC&RBAC转到APACHE RANGER进行权限管控。
(1).获取sr-qa现有用户名(自行获取)
(2).获取账号现有权限指标
其中包括了App,User,AuthPlugin,Catalog,Roles,Databases,Materialized,Views,Tables,ROW_ACCESS,MASKING等指标
sranr -s sr-qa -u <用户名>
(3).将账号权限copy到apache ranger policy中
由于是[native] > [ranger],所以追加,-m native,ranger
触发code后提示转换成功
登录apache ranger进行稽核
此时这里多了两个policy
第一个policy对cn_po_home_system_dev库拥有增删改查等权限
第二个policy对表拥有查询权限
(4).支持apache ranger自动新增用户,当触发权限转移时发现apache ranger中没有改用户,那么自动生成用户
ok,既然sr-qa的所有账号权限已经从native转到ranger了,那么开启全局apache ranger
fe参数: access_control = ranger
二、【功能介绍 APACHE RANGER转到IBAC&RBAC】
操作相同,-m 指定 [ranger] > [native]: ranger,native
权限回传
三、【功能介绍 不同集群之间的权限互转】
假设现有集群sr-qa集群已经归apache apache进行接管权限,那么其中有个test1账户,需要转到sr-adhoc集群native中。
(1). 查看sr-qa集群test1账户当前权限 -u
此时sr-qa集群已经从刚才的native转变成ranger接管,并且查看账号权限信息时,也会出现相关policy id、policy name等信息。
程序:
ranger:
(2). 查看sr-adhoc集群test1账号当前权限
空白。
(3). 克隆 -s -t -u -r
(4). 对比两端 -s -t -u
(5). 验证sr-adhoc集群native权限
已经从apache ranger中拉取并克隆到native
四、【功能介绍 管理apache ranger policy】
假设目前sr-qa(ranger)权限已经转移到sr-adhoc(native),需要删除某个policy权限。
-id 直观看到apache ranger的policy json
-id -d 直接删除该policy(代表权限回收) 删除293 id后,将不再显示该库级别权限
apache ranger上也只会存在表级别权限,库级别已经被删除
该工具对于以往对比,新增元数据库的自动生成,当程序第一次运行时,会自动生成程序元数据表,引导填写。详细查看yaml配置文件。