Ranger简介
Apache Ranger是一个Hadoop平台上的全方位数据安全管理框架,它可以为整个Hadoop生态系统提供全面的安全管理。
1)允许用户使用UI或REST API对所有和安全相关的任务进行集中化的管理
2)允许用户使用一个管理工具对操作Hadoop体系中的组件和工具的行为进行细粒度的授权
3)支持Hadoop体系中各个组件的授权认证标准
4)增强了对不同业务场景需求的授权方法支持,例如基于角色的授权或基于属性的授权
5)支持对Hadoop组件所有涉及安全的审计行为的集中化管理
Ranger架构
Ranager的核心是Web应用程序,也称为RangerAdmin模块,此模块由管理策略,审计日志和报告等三部分组成。
管理员角色的用户可以通过RangerAdmin提供的web界面或REST APIS来定制安全策略。这些策略会由Ranger提供的轻量级的针对不同Hadoop体系中组件的插件来执行。插件会在Hadoop的不同组件的核心进程启动后,启动对应的插件进程来进行安全管理!
Ranger部署
环境说明
Hadoop及Hive等需开启用户认证功能
创建系统用户和Kerberos主体
创建ranger系统用户
检查HTTP主体是否正常
创建rangeradmin主体
创建rangerlookup主体(同步组件的元数据信息)
创建rangerusersync主体(同步系统用户信息)
安装RangerAdmin
在MySQL数据库中创建Ranger存储数据的数据库和Ranger用户
修改配置文件install.properties
执行安装脚本
修改配置文件ranger-admin-site.xml
启动RangerAdmin
以ranger用户启动
登录Ranger
安装 RangerUsersync
修改配置文件install.properties
执行安装脚本
修改配置文件ranger-ugsync-site.xml
启动RangerUsersync
以ranger用户启动
安装Ranger Hive-plugin
修改配置文件install.properties
启用Ranger Hive-plugin
hive用户重启Hiveserver2
注意:Ranger Hive-plugin只能对使用jdbc方式访问hive的请求进行权限管理,hive-cli并不受限制
在ranger admin上配置hive插件
授予hive用户在Ranger中的Admin角色
配置Hive插件
保存Hive Manager
使用Ranger对Hive进行权限管理
默认的访问策略:rangerlookup用户拥有对所有库、表和函数的访问权限,故理论上其余用户是不能访问任何Hive资源的
赋予用户对gmall数据库的访问权限:Add New Policy
Ranger授权模型
Ranger所采用的权限管理模型可归类为RBAC(Role-Based Access Control )基于角色的访问控制。基础的RBAC模型共包含三个实体,分别是用户(user)、角色(role)和权限(permission)。用户需划分为某个角色,权限的授予对象也是角色,例如用户张三为管理角色,那他就拥有了管理员角色的所有权限。
Ranger的权限管理模型比基础的RBAC模型要更加灵活,以下是Ranger的权限管理模型。