Impala目前在新版本3.4中提供了Sentry和Ranger的2种权限管控,我们这里分别介绍一下最新的使用,这里跟2.12.0的版本有所不同。
在impala-2.12.0版本中,我们可以通过如下配置来指定sentry文件:
-server_name=hive-cluster1
-authorization_policy_file=/user/impala/policy.cfg
-authorization_policy_provider_class=org.apache.sentry.provider.file.LocalGroupResourceAuthorizationProvider
这样,即使没有Sentry服务,我们也可以进行权限的管理操作。但是在3.4版本中authorization_policy_file配置项被移除了,所以我们没办法直接配置hdfs上的Sentry文件作为权限管理了。因此需要通过配置sentry-site.xml来进行权限控制,关于最新版本的Sentry配置可以参考:Impala权限管理Impala权限管理Impala权限管理 。由于我们内部都是使用的Ranger服务,关于Sentry服务的配置,就不多做介绍。下面主要来讲一下Ranger服务的配置。
社区相关JIRA:IMPALA-7916
Impala在新版本中提供了对Ranger的支持,我们可以通过直接配置Ranger的信息,来进行权限的管控。目前,我们可以直接使用测试的集群进行ranger的配置,具体信息参考:如何配置带Ranger的Impala集群如何配置带Ranger的Impala集群如何配置带Ranger的Impala集群 Ranger服务起来之后,我们就可以通过hostname:6080来进行访问,登陆用户和密码默认是admin/admin,具体的Ranger配置位于:$RANGER_HOME/ews/webapp/WEB-INF/classes/conf/ranger-admin-site.xml。相关页面如下:
我看可以看到,有一个名为test_impala的service,这个service里面配置了具体的各个用户以及对应的policy,这里主要就是admin用户。这里的test_impala对应的就是ranger-hive-security.xml中的如下配置项:
<property>
<name>ranger.plugin.hive.service.name</name>
<value>test_impala</value>
<description>
Name of the Ranger service containing policies.
</description>
</property>
配置完成之后,我们就可以使用文档里面的命令重启impala测试集群,然后进行测试:
./bin/start-impala-cluster.py \
--impalad_args="--server-name=server1 --ranger_service_type=hive --ranger_app_id=impala --authorization_provider=ranger" \
--catalogd_args="--server-name=server1 --ranger_service_type=hive --ranger_app_id=impala --authorization_provider=ranger"
关于上面各个参数的释义如下:
我们使用$IMPALA_HOME/shell/build/impala-shell-4.0.0-SNAPSHOT/impala-shell -u hive命令连接到测试进行,然后创建database,会提示没有权限,如下所示:
[localhost:21000] default> create database ranger_test;
Query: create database ranger_test
ERROR: AuthorizationException: User 'hive' does not have privileges to execute 'CREATE' on: ranger_test
这是由于测试的配置里面默认没有hive用户,因此我们需要在ranger里面新建一个hive的User,然后将hive加入all-database这个policy,如下所示:
配置完成之后,我们再执行上述的SQL发现可以执行成功:
[localhost:21000] default> create database ranger_test;
Query: create database ranger_test
+----------------------------+
| summary |
+----------------------------+
| Database has been created. |
+----------------------------+
Fetched 1 row(s) in 0.38s
需要注意的是,配置ranger的文件ranger-hive-security.xml和ranger-hive-audit.xml位于$IMPALA_HOME/fe/src/test/resources/,依赖组件的这些xml配置都是通过执行bin/create-test-configuration.sh脚本自动生成的。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有