Starrocks 集成 Ranger

最近更新时间:2025-06-20 16:25:42

我的收藏

前提条件

StarRocks 支持版本 : 3.1.9 及以后版本,Ranger 版本 2.1 及以后版本。
暂不支持 Kerberos 认证的 Ranger Server。
如果 StarRocks 与 Ranger 不在同一个集群,需确保 StarRocks 集群 Ranger 集群位于同一 VPC 内。
允许 StarRocks FE 节点可以访问 Ranger 服务的相关端口,如果显示 Connected to <ip>,则表示连接成功。
telnet <ranger-ip> <ranger-port>

使用方式

步骤一:在 Ranger Admin 上配置 StarRocks Service

1. EMR Ranger 在 StarRocks 存算分离集群中默认配置了 StarRocks Service ,因此登录 Ranger Admin 后,直接可以看到界面上已经配置了默认名称为 starorcks 的服务,可以直接使用。

2. 如果不使用系统推荐,可以点击 STARROCKS 后的加号 (+) 配置新的 StarRocks Service 信息。


参数
说明
Service Name
服务名称,必填。
Username 和 Password
登录集群的用户名密码
jdbc.url
填写 StarRocks 实例 FE 点的 IP 和端口。格式为 jdbc:mysql://<FE地址>:<fe_query_port>。其中涉及参数如下:
<FE地址>:StarRocks 实例中 FE 节点的地址,请前往资源管理查看。
<fe_query_port>:StarRocks 实例中 FE 的查询端口(默认为9030)
3. 单击 Test Connection,测试连通性。

4. 测试成功后,单击 Add
自动跳转至 Service Manager 页面,即可看到添加好的 StarRocks 服务。


步骤二:配置管理员用户的权限

如果您需要使用 Ranger 管理 StarRocks 内表的权限,请在 Ranger Admin 中为管理用户 root 和 admin 授予所有 StarRocks 权限,确保 StarRocks 的管控功能正常使用。
EMR 默认情况下已创建好以下用户并授权完成。以下以 root 用户授权为例。

1. 在 Ranger UI 页面,单击上方的 Access Manager。
2. 在 Service Manager 页面,单击创建好的 StarRocks 服务进入 Poilcy 管理页面。
3. 单击每项策略 Action 列的图标。
4. 在 Allow Conditions 区域的 admin 处添加 root 用户(系统已默认配置)。

确保 root 用户拥有对数据库、表、列等对象的完全控制权限。


步骤三:前往 StarRocks 完成集成 Ranger配置

EMR 的开箱参数已经完成了 Ranger 中 StarRocks Service 名称为 starrocks 的相关配置,建议使用系统默认配置,如需修改请参考以下内容。
配置文件名称
参数
说明
ranger-starrocks-security.xml
ranger.plugin.starrocks.service.name
Ranger 中对应的 StarRocks 服务名称。例如 starrocks。
ranger.plugin.starrocks.policy.source.impl
获取 Ranger 鉴权策略使用的类。填写为 org.apache.ranger.admin.client.RangerAdminRESTClient。
ranger.plugin.starrocks.policy.rest.url
Ranger Admin 的地址,可以通过进入 Ranger 查看 WebUI 地址。
fe.conf
access_control
用于 StarRocks 的内表鉴权方式。填写为 ranger。

步骤四:复用其他 Service 来为外表鉴权

对于 External Catalog,可以复用外部 Service(如 Hive Service)实现访问控制。StarRocks 支持对于不同的 Catalog 匹配不同的 Ranger service。用户访问外表时,会直接根据对应外表的 Service 来进行访问控制。用户权限与 Ranger 同名用户一致。
1. 复制您 Hive 集群重的的 Ranger 相关配置文件 ranger-hive-security.xmlranger-hive-audit.xml 拷贝至所有 FE 机器的 fe/conf 文件下,请确保配置文件中 Ranger 的 IP 以及端口正确。
2. 重启所有 FE。
3. 配置 Catalog。
创建 External Catalog 时,添加 PROPERTIES "ranger.plugin.hive.service.name"
CREATE EXTERNAL CATALOG hive_catalog_1 PROPERTIES (
"type" = "hive",
"hive.metastore.type" = "hive",
"hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083",
"ranger.plugin.hive.service.name" = "<ranger_hive_service_name>"
)
也可以对已有的 External Catalog 添加该属性。将已有的 Catalog 转换为通过 Ranger 鉴权
ALTER CATALOG hive_catalog_1 SET ("ranger.plugin.hive.service.name" = "<ranger_hive_service_name>");

后续操作

StarRocks 中对于 Ranger 集成的配置请前往 集群服务 > 配置管理 中进行配置。
关于如何在 Ranger 上创建权限策略来管理数据安全,请参见 Apache Ranger 官网