Ranger学习(一)—— 基础概念

参考链接

1. Ranger架构分析:https://www.jianshu.com/p/d0bf6e77bb8f

2. 用户指南:https://cwiki.apache.org/confluence/display/RANGER/Apache+Ranger+0.5+-+User+Guide

3. Ranger原理:https://blog.csdn.net/qq475781638/article/details/90247153#2Apache_Sentry_48

一、背景

大数据最基本就是数据以及用于计算的资源,需要将相应的数据和资源开放给对应的用户使用,以防被窃取、被破坏造成损失,这个就涉及大数据安全。 主流的大数据安全组件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实现类
HDFS org.apache.hadoop.hdfs.server.namenode.INodeAttributeProvider org.apache.ranger.authorization.hadoop.RangerHdfsAuthorizer
HBase org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos.AccessControlService.Interface org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor
Hive org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAuthorizerFactory org.apache.ranger.authorization.hive.authorizer.RangerHiveAuthorizerFactory
Sqoop org.apache.sqoop.security.AuthorizationValidator org.apache.ranger.authorization.sqoop.authorizer.RangerSqoopAuthorizer
Solr org.apache.solr.security.AuthorizationPlugin org.apache.ranger.authorization.solr.authorizer.RangerSolrAuthorizer
Kafka kafka.security.auth.Authorizer org.apache.ranger.authorization.kafka.authorizer.RangerKafkaAuthorizer
Atlas org.apache.atlas.authorize.AtlasAuthorizer org.apache.ranger.authorization.atlas.authorizer.RangerAtlasAuthorizer

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

四、权限模型及实现

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

插件 资源 权限项
HDFS Path Read Write Execute
HBase Table,Column-family,Column Read Write Create Admin
Hive Database,Table,UDF,Column,URL Select Create Update Drop Alter Index Lock Read Write All
YARN Queue submit-app admin-queue
Solr Collection Query,Update,Others,Solr Admin
Sqoop Connector,Link,Job READ,WRITE
Kafka Topic Publish,Consume,Configure,Describe,Create,Delete,Kafka Admin
Storm Topology Submit Topology,File Upload,File Download,Kill Topology,Rebalance,Activate,Deactivate,Get Topology Conf, Get Topology,Get User Topology,Get Topology Info,Upload New Credential
Atlas Type Catagory,Type Name,Entity Type,Entity Classification,Entity ID,Atlas Service Create Type,UpdateType,Delete Type,Read Entity,Create Entity,Update Entity,Delete Entity,Read Classification,Add Classification,Update Classification,Remove Classification,Admin Export,Admin Import

权限实现:

  • Admin负责指定权限策略分配相应的资源给相应的用户或组,存储在MySQL中;
  • Plugin负责定期从Ranger Admin拉取策略并根据策略执行访问决策树完成授权管理,最后实时记录访问审计(实际安装部署plugin时通过hook方式调用各个组件服务达到权限管理 );

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

组件 安装节点
HDFS NameNode
HBase Master、RegionServer
Hive HiveServer2
Solr ALL/Cluster
YARN Resource Manager
Atlas ALL/Standalone
  • 策略优先级:黑名单优先于白名单;黑名单排除优先于黑名单;白名单排除优先于白名单;

五、权限管理流程

以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

发布了41 篇原创文章 · 获赞 9 · 访问量 9770

猜你喜欢

转载自blog.csdn.net/qq_38586378/article/details/102964847