Ranger学习笔记

Ranger目标

Ranger官网描述如下:

  • 通过集中的安全管控使用UI/REST API去管理所有的相关任务。
  • 对Hadoop组件访问/操作进行细粒度授权
  • 使所有Hadoop授权标准化
  • 增强不同的授权方法,基于角色的访问控制,基于属性的访问控制。
  • 对Hadoop的所有组件集中审计用户的访问和管理操作。

Ranger常见问题

  • Ranger是向Hadoop相关组件提供了什么服务?
    集中式的安全框架管理Hadoop和相关的组件,用户可以很方便的管理用户/用户组访问资源的策略。
    可以启动审计策略和策略的分析。
    可以委托数据管理权。
  • Ranger目前支持了什么?
    Hadoop
    Hive
    Yarn
    HBase 等等
  • Ranger是如何工作的?
    1.核心是一个集中的Web应用服务器
    策略模块
    审计模块
    报告模块
    2.在服务器上插件化运行
  • Ranger有单点问题吗?
    不存在单点问题
    1.策略服务器用来提供策略,即便策略服务器关闭,插件也可以正常运行
    2.可以构建Web应用程序HA模式,使用数据库复制设置。

Ranger-Hadoop

  • Ranger如何为Hadoop提供授权?
    Ranger提供了一个插件,作为Hadoop授权方法的一部分。Ranger插件在用户请求时决定是否用户请求可以被授权,插件同时会收集请求细节用来审计。
    Ranger强制执行策略数据库的安全策略(用户资源权限)。安全策略存在策略管理器上,独立于本机的权限。
  • Ranger是不是模拟了Hadoop的unix权限
    不是,Ranger是基于策略的管理。如果权限不能覆盖,Ranger提供了一个默认特性,可以使用Hadoop本机文件权限来进行访问验证。

可以通过配置强制使用Ranger的策略进行权限管理。

  • Ranger插件需要在Datanode上执行吗?
    Ranger插件只在服务端执行。

Ranger-Hive

  • Ranger是如何进行HiveServer2授权的?
    HiveServer2的授权策略里面可以选择Ranger插件。
  • Ranger和HiveServer2的Sql Standard authorization比较如何?
    Hive具有两种授权方式,基于存储的,和基于标准SQL的。基于标准SQL授权提供库,表级别的授权。
    Ranger可以做的更好
    1.更细粒度(列级别)
    2.资源支持通配符
    3.集中管理

Ranger-Yarn

  • Ranger如何提供Yarn的授权?

yarn提供了两种权限,admin权限,和submit权限。admin权限用来设置队列容量,提交任务,kill任务等。submit权限不能进行队列管理,其他的差不多。Yarn授权插件也可以选择Ranger。

还有一些其他的组件,比如HBase,Kafka等等,大同小异。

Ranger接口

Ranger文档是在太少,只能找到这一部分。

Ranger插件安装

这部分不翻译了,直接在github地址最下面就可以找到。

安装主机信息

  • Ranger-Admin

运行Policy Admin Tool web,暴露6080

  • User Synchronization

同步该主机的用户和组信息到Ranger的Database

  • Ranger Component信息

Ranger Hive授权

以Hive授权为切入点,了解一下Ranger授权的实现。

Hive授权设计

Hive授权的目的是构造一个和RDBMS一致的权限模型。
那么Hive和RDBMS系统的区别是啥呢?
Hive和RDBMS共用了一些SQL关键字,用法也类似。但是也有许多区别

  • 松散性
    RDBMS不可以绕过权限去访问元数据,但是Hive可以。
    在这里插入图片描述
  • 操作步骤
    hive的元数据和数据是分开的,SQL权限不能一一对应到元数据的操作上。

授权需要考虑的是

  • SQL如何转换成对对象的操作
  • 对元数据的直接访问如何进行授权管理

Hive Ranger 授权实现

  • 配置项
    hive.security.authorization.manager 配置使用Ranger的Hive插件
    <property>
        <name>hive.security.authorization.manager</name>
        <value>org.apache.ranger.authorization.hive.authorizer.RangerHiveAuthorizerFactory</value>
    </property>
  • 权限转化
    把SQL权限转化为权限访问策略
# hive检查权限接口
ss.getAuthorizerV2().checkPrivileges(hiveOpType, inputsHObjs, outputHObjs, authzContextBuilder.build());

# ranger 请求,HiveOperationType 转化为对象的具体权限,对象,读权限,写权限
enum HiveOperationType {EXPLAIN,LOAD等}
enum HiveObjectType { NONE, DATABASE, TABLE, VIEW, PARTITION, INDEX, COLUMN, FUNCTION, URI, SERVICE_NAME, GLOBAL };
enum HiveAccessType { NONE, CREATE, ALTER, DROP, INDEX, LOCK, SELECT, UPDATE, USE, READ, WRITE, ALL, REPLADMIN, SERVICEADMIN, TEMPUDFADMIN };
  • 权限检查
    evaluatePolicies,最终是通过evaluatePoliciesNoAudit循环校验所有的allAccessDefs

Ranger审计模块

这一块暂时不想涉及了,在各个插件中都有审计的配置。构架应该是随插件启动收集审计日志吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值