Apache Ranger及Hive权限控制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache Ranger及Hive权限控制相关的知识,希望对你有一定的参考价值。
参考技术A Apache Ranger提供一个集中式安全管理框架, 并解决授权和审计。它可以对Hadoop生态的组件如HDFS、Yarn、Hive、Hbase等进行细粒度的数据访问控制。通过操作Ranger控制台,管理员可以轻松的通过配置策略来控制用户访问权限。本文章介绍Ranger与Hive集成过程,与使用方法
登陆RangerAdmin: http://l-node1.data.beta.cn0:6080
点击 hivebeta 开始Hive权限控制
根据我们刚才的配置,hive用户拥有all权限
点击 Add New Policy 给rangeruser1用户授予ranger_test_db.t_user.* select权限
添加一个Masking Policy
Select Masking Option里面填Mask的选项,默认有: 显示前4位、显示后4位、哈希、Null值、日期类型仅显示年等。我们这里使用Custom自定义,
其实就是写Select子句 可以根据逻辑自己实现,也可使用UDF。本例中我们使用 concat(substr(phone,1,7),'****') 将手机号的后四位屏蔽掉
添加一个Row Level Filter Policy
Row Level Filter里面填Filter的过滤规则,其实就是写Where子句。本例中我们使用 name <> 'hanze' 将 name为'hanze'的用户过滤掉
上图的Policy,实现了这样的场景:
产品组(product)可以访问带"TAG"标签的资源; 但实习生(intern)不靠谱 实习生没有访问权限; 但因实习生中的 meizi 表现突出 给他赋予访问权限
Apache Ranger Installation
Apache Ranger User Guide
Hortonworks HDP doc
HDFS + Ranger
Ranger PPT
Ranger + Atlas PPT
HDFSYarnHive…MRS中使用Ranger实现权限管理全栈式实践
摘要:Ranger为组件提供基于PBAC的鉴权插件,供组件服务端运行,目前支持Ranger鉴权的组件有HDFS、Yarn、Hive、HBase、Kafka、Storm和Spark2x,后续会支持更多组件。
本文分享自华为云社区《MRS中使用Ranger实现权限管理全栈式实践》,作者:啊喔YeYe 。
前置工作
- 开通MRS 普通集群。免费试用30天
- 安装集群客户端,并了解如何使用
Ranger与各组件关系
Ranger为组件提供基于PBAC的鉴权插件,供组件服务端运行,目前支持Ranger鉴权的组件有HDFS、Yarn、Hive、HBase、Kafka、Storm和Spark2x,后续会支持更多组件。
Ranger集成hdfs权限管控最佳实践
步骤1:进入集群中的hdfs组件,选择右上角的“更多”选项中的启用ranger鉴权
步骤2:进入hdfs组件的实例选项中勾选所有选项后,再点“更多”按钮中的“重启实例”按钮,重启hdfs的所有实例
步骤3:进入mrs集群的ranger组件的首页后,点击rangeradmin进入ranger组件的管理页面
步骤4:在ranger的Service Manager中应会生成hdfs service name。此时点击hdfs servicename就会进入ranger配置权限管控hdfs的添加、删除、更新、查看策略的界面(可以添加、删除、更新、查看ranger权限管控hdfs的权限-策略)
步骤5:点击“Add New Policy”按钮 ,新建一条ranger权限管控hdfs的策略
步骤6:ranger权限管控hdfs的验证
1、进入集群客户端,切换用户:su - omm
2、执行 hdfs dfs –ls /user
命令如果ranger权限管控hdfs的策略生效,此时应是omm用户不能查看到hadoop集群中的/user中的内容,会提示权限拒绝
Ranger集成Yarn权限管控最佳实践
步骤1:进入集群中的yarn组件,选择右上角的“更多”选项中的启用ranger鉴权
步骤2:在yarn组件中配置->全部配置中搜索acl 后,把yarn.acl.enable = false
更改为yarn.acl.enable = true
进入yarn组件的实例选项中勾选所有选项后,再点“更多”按钮中的“重启实例”按钮,重启yarn的所有实例
步骤3:进入mrs集群的ranger组件的首页后,点击rangeradmin进入ranger组件的管理页面
步骤4:点击yarn service就会进入ranger配置权限管控yarn的添加、删除、更新、查看策略的界面(可以添加、删除、更新、查看ranger权限管控yarn的策略)
步骤5:点击“Add New Policy”按钮 ,新建一条ranger权限管控yarn的策略
步骤6:ranger权限管控yarn的验证
进入集群客户端,切换用户su - omm
执行
hadoop jar /tmp/hadoop-mapreduce-examples-3.1.1-hw-ei-310013.jar pi -Dmapreduce.job.queuename="root.launcher-job" 10 10
Ranger集成hive权限管控最佳实践
步骤1:进入集群中的hive组件,选择右上角的“更多”选项中的启用ranger鉴权
步骤2:进入hive组件的实例选项中勾选所有选项后,再点“更多”按钮中的“重启实例”按钮,重启hive的所有实例
步骤3:进入mrs集群的ranger组件的首页后,点击rangeradmin进入ranger组件的管理页面
步骤4:点击hive service name就会进入ranger配置权限管控hive的添加、删除、更新、查看策略的界面
步骤5:点击“Add New Policy”按钮 ,新建一条ranger权限管控hive的策略
步骤6:ranger权限管控hive的验证
进入集群客户端beeline -n test04 -p password
输入 select * from default.user_info;
后会提示test04用户会没有查询default库下user_info的权限
Ranger集成HBase权限管控最佳实践
步骤1:进入集群中的HBase组件,选择右上角的“更多”选项中的启用ranger鉴权。
步骤2:进入HBase组件的实例选项中勾选所有选项后,再点“更多”按钮中的“重启实例”按钮,重启HBase的所有实例
步骤3:进入mrs集群的ranger组件的首页后,点击rangeradmin进入ranger组件的管理页面
步骤4:点击进入ranger配置权限管控HBase的添加、删除、更新、查看策略的界面(可以添加、删除、更新、查看ranger权限管控HBase的策略)
步骤5:点击“Add New Policy”按钮 ,新建一条ranger权限管控HBase的策略
步骤6:ranger权限管控HBase的验证
进入集群客户端,切换用户su - test03
,再输入 hbase shell 进入hbase的终端 ,再执行查看表test03表的命令:scan test03
执行 scan ‘test03’ 命令如果ranger权限管控hbase的策略生效,此时应是test03用户不能查看到hbase表test03的内容不能创建表,会提示权限拒绝。
Ranger集成spark权限管控最佳实践
步骤1:进入集群中的spark组件,选择右上角的“更多”选项中的启用ranger鉴权。
步骤2:进入spark组件的实例选项中勾选所有选项后,再点“更多”按钮中的“重启实例”按钮,重启spark的所有实例
步骤3:进入mrs集群的ranger组件的首页后,点击rangeradmin进入ranger组件的管理页面
步骤4:因为spark是基于hive的,在ranger的ServiceManager页面中进入Hadoop sql hive版块中应会产生hadoop sql hive 版块。此时点击hadoop sql hive版块就会进入ranger配置权限管控spark的添加、删除、更新、查看策略的界面(可以添加、删除、更新、查看ranger权限管控spark的策略)
步骤5:点击“Add New Policy”按钮 ,新建一条ranger权限管控spark的策略
步骤6:ranger权限管控spark的验证
进入集群客户端,切换用户:su - omm
切换到omm用户后执行spark-sql 后进入spark sql的命令终端环境中 命令如果ranger权限管控spark的策略生效,此时应是omm用户不能查看到default库中表user_info中的数据的,会提示权限拒绝。
以上是关于Apache Ranger及Hive权限控制的主要内容,如果未能解决你的问题,请参考以下文章