前提条件
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.xml 和 ranger-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 集成的配置请前往 集群服务 > 配置管理 中进行配置。