您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
Ranger学习—— 基础概念
 
作者昵称:敲代码的ciery
 
  628  次浏览      50
2020-12-16
 
编辑推荐:
本文首先介绍Ranger的背景, Ranger的基本架构以及基本组件,最后介绍权限模型和实现,权限管理的流程,希望对您的学习有所帮助。
本文来自DBAplus社群,由Alice编辑、推荐。

一、背景

大数据最基本就是数据以及用于计算的资源,需要将相应的数据和资源开放给对应的用户使用,以防被窃取、被破坏造成损失,这个就涉及大数据安全。 主流的大数据安全组件Kerberos由于使用临时的用户验证机制不适用用户多的情况、Sentry只适用少部分的Hadoop生态组件应用场景少。

Apache Ranger作为标准化的访问控制层,引入统一的权限模型与管理界面,极大地简化了数据权限的管理,统一的权限管理降低了学习成本,非常易于使用。

Apache Ranger:一个用于在整个Hadoop平台上使用,用来监视和管理全面的数据安全性的框架。主要是提供一个集中式安全管理框架, 并解决授权和审计问题。

特点:集中式安全管理,可在Web UI或使用REST API管理所有与安全相关的任务;基于策略(Policy-Based)的访问权限模型 ,易于使用;支持大部分Hadoop生态组件;支持审计(审计主要是日志审计,主要记录各个组件资料的访问信息,也就是从各个组件日志中抽到相应的登录访问信息 );支持用户与LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)、Linux系统的用户同步

支持的组件:HDFS;YARN;HBase;Hive;Solr;Storm;Sqoop;Kafka;Atlas;Nifi;Knox等。其中HDFS主要是对文件访问权限进行管理,HBase对应表、列族和列的权限管理,Hive对应表的数据库、表和列的权限管理、Atlas对应类别、元数据实体、类型、输入/输出的权限管理。

优点:提供了细粒度级(例如hive列级别);基于访问策略的权限模型;权限控制插件式,统一方便的策略管理;支持审计日志,可记录各种操作的审计日志,提供统一的查询接口和界面;丰富的Hadoop生态组件支持;支持与Kerberos集成;提供REST API可供二次开发

二、基本架构

用户可通过Ranger提供的Web界面以Admin权限登录添加权限控制Service服务,在Service中添加授权的策略Policy,系统将Policy存入MySQL数据库中,并在本地完成备份,当用户去请求被授权的组件时,对应的组件plugin插件回去admin拉取policy并对应策略内容进行授权管理,符合权限允许操作否则拒绝用户请求;同时整个过程(用户登录、创建服务策略、插件授权管理)都产生审计日志,并存储在Solr中。

三、基本组件

Ranger中主要组件:Ranger Admin、Ranger UserSync、Plugin

Ranger Admin:

职责:提供对策略的增删改查操作,并提供WebUI和RestAPI接口

组成:Web UI、REST API、数据库

作用:接收UserSync进程传过来的用户、用户组信息, 并将它们保存到MySql数据库中。(这些用户信息在配置权限策略的时候需要使用,即分配策略的对象);提供创建policy的接口;提供外部REST消息的处理接口(界面上的一些CURD操作)

Ranger UserSync:

职责:定期从LDAP/Unix/File中加载用户,并同步给Ranger Admin(Ranger的用户管理并不同步,即在系统添加的用户并不能立刻同步到ranger中)

Plugin

职责:以插件的形式集成到各组件中,定期从Ranger Admin拉取策略,并根据用户访问执行策略,且定期将审计日志记录到Solr。实际上是个线程,会去读取策略的配置文件 具体的实现接口见下表

其余组件:Ranger Tagsyncs——定期从标签源(通常是Atlas),同步标签信息;Ranger KMS——Ranger Key Management Service,基于Hadoop KMS 封装的秘钥管理服务,支持HDFS静态数据加密。

四、权限模型及实现

权限模型:定义“用户-权限-资源”,其中用户使用User/group表达,User表示访问资源的用户,Group表示User所属的用户组;权限主要由(AllowACL, DenyACL)来表达(Access Control List),类似白名单&黑名单,AllowACL用来描述允许访问的情况,DenyACL用来描述拒绝访问的情况,不同的组件对应的权限不一样;资源对于不同组件对应不同,具体见下表。

权限实现:

Admin负责指定权限策略分配相应的资源给相应的用户或组,存储在MySQL中;

Plugin负责定期从Ranger Admin拉取策略并根据策略执行访问决策树完成授权管理,最后实时记录访问审计(实际安装部署plugin时通过hook方式调用各个组件服务达到权限管理 );

Plugin安装的节点根据不同的组件有所不同,具体见下表,

策略优先级:黑名单优先于白名单;黑名单排除优先于黑名单;白名单排除优先于白名单;

五、权限管理流程

以Ranger和HDFS集成为例,

1.Ranger Admin创建服务Service(相当于web服务中的service封装接口)

2.Ranger Admin通过服务Service创建策略Policy(存储于mysql数据库中)

3.HDFS Plugin(提前下载安装部署完毕的Plugin)插件拉取策略

4.HDFS Plugin插件对用户访问请求鉴权(权限类型在mysql数据库存储)

5.HDFS Plugin插件记录审计日志Audit(存储在Solr中)

6.Ranger Admin查看审计日志Audit

 
   
628 次浏览       50
相关文章

基于EA的数据库建模
数据流建模(EA指南)
“数据湖”:概念、特征、架构与案例
在线商城数据库系统设计 思路+效果
 
相关文档

Greenplum数据库基础培训
MySQL5.1性能优化方案
某电商数据中台架构实践
MySQL高扩展架构设计
相关课程

数据治理、数据架构及数据标准
MongoDB实战课程
并发、大容量、高性能数据库设计与优化
PostgreSQL数据库实战培训
最新课程计划
 
最新文章
大数据平台下的数据治理
如何设计实时数据平台(技术篇)
大数据资产管理总体框架概述
Kafka架构和原理
ELK多种架构及优劣
最新课程
大数据平台搭建与高性能计算
大数据平台架构与应用实战
大数据系统运维
大数据分析与管理
Python及数据分析
更多...   
成功案例
某通信设备企业 Python数据分析与挖掘
某银行 人工智能+Python+大数据
北京 Python及数据分析
神龙汽车 大数据技术平台-Hadoop
中国电信 大数据时代与现代企业的数据化运营实践
更多...