StarRocks Native <-> Apache Ranger权限互转工具

StarRocks Native <-> Ranger权限互转工具

  1. 支持对apache ranger中的policys,policyid进行删除
  2. 支持直观查看StarRocks内部权限,查看apache ranger中的policys
  3. 支持指定转换模型,支持内部转换、外部转换两种模式
    1. 内部转换指的是同一个集群,将内部的权限备份到apache ranger中,或者是apache ranger中的权限备份到集群内部来
    2. 外部转换指的是不同集群之间的权限相互转换,例如a集群权限属于native管控,b集群属于apache ranger管控,支持互相迁移
  4. 支持适应集群是否已经集成apache ranger
  5. 支持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配置文件。

@https://github.com/chengkenli/srAccessNative2Ranger