• 深入了解大数据安全组件Apache Ranger


    一、Ranger基本架构

    在这里插入图片描述

    • Ranger UserSync:定期将Unix系统或LDAP或Active Directory中的用户/组同步到RangerAdmin中。也可用作RangerAdmin的身份验证服务器,以使用linux用户/密码登陆到RangerAdmin。
    • Ranger Admin Server:用于管理安全策略、用户/组的UI门户并提供Rest Server。一般简称Ranger Admin。
    • AgentPlugin:插件是嵌入到Hadoop各个组件的轻量级java程序。插件定期从AdminServer拉取策略,存储在本地文件中。当用户访问Hadoop组件时,插件会拦截请求根据策略进行安全评估,并且定期发送数据到审计服务器做记录。
    • Ranger KMS:对hadoop KMS的策略管理和密钥管理

    二、工作过程

    整个工作过程如下:
    在这里插入图片描述

    三、Ranger核心特性

    • 集中安全管理,在中央UI或使用REST API管理所有与安全相关的任务。
    • 精细授权,使用Hadoop组件/工具执行特定动作或操作,并通过集中管理工具进行管理。
    • 标准化所支持的Hadoop组件的授权方法。
    • 增强了对不同授权方法的支持:基于角色的访问控制,基于属性的访问控制,基于Tag的访问控制。
    • 在所支持的Hadoop组件中集中审计用户访问和管理操作(与安全相关)
    • 支持和kerberos的集成

    四、大数据安全方案

    业界比较常见的大数据安全方案主要有三种:

    • Kerberos(业界比较常用的方案)
    • Apache Sentry
    • Apache Ranger

    1.Kerberos

    • Kerberos是一种基于对称密钥的身份认证协议,它作为一个独立的第三方的身份认证服务,可以为其他服务提供身份认证功能,且支持SSO(即客户端身份认证后,可以访问多个服务如HBase/HDFS)

    在这里插入图片描述

    服务作用
    KDCKerberos的服务端程序,用于验证各个模块
    Client需要访问服务的用户,KDC和Service会对用户的身份进行认证
    Service集成了Kerberos的服务,如HDFS/YARN/HBase等

    Kerberos协议过程主要有三个阶段:

    • 第一个阶段:Client向KDC申请TGT(Ticket Granting Ticket,认购权)
    • 第二个阶段:Client通过获得的TGT向KDC申请用于访问Service的Ticket
    • 第三个阶段:Client用返回的Ticket访问 Service

    优点:

    • 服务认证,防止broker datanode regionserver等组件冒充加入集群
    • 解决了服务端到服务端的认证,也解决了客户端到服务端的认证

    缺点:

    • kerberos为了安全性试验临时ticket,认证信息会失效,用户多数情况下重新认证繁琐
    • kerberos只能控制你访问或者拒绝访问一个服务,不能控制到很细的粒度,比如hdfs的某一个路径,hive的某一个表,对用户级别上的认证并没有实现(需要配合LDAP)

    总结:

    • Kerberos更专注的是通用的认证解决方案,但是对授权以及其他安全方面的管理功能并不擅长,例如细粒度权限、审计等

    2.Apache Sentry

    • Apache Sentry是Hadoop之上的基于角色的细粒度授权模块。
    • Sentry为在Hadoop集群上运行的经过身份验证的用户和应用程序提供数据访问授权。
    • 目前Sentry已经支持Apache Hive、Apache Solr、Apache Kafka、Apache Impala和HDFS。
    • Sentry是基于角色的,所以在使用Sentry时需要创建Role,然后通过Role映射到OS或者AD中的Group,然后再映射到访问Hadoop的最终用户。
    • 可以使用Sentry来限制用户对DB、TABLE、COLUMN或URI的访问,权限设定可以通过Hive或Impala的命令行接口执行Sentry相关命令来实现。

    优点:

    • Sentry支持细粒度的hdfs元数据访问控制,对hive支持列级别的访问控制
    • Sentry通过基于角色的授权简化了管理,将访问同一数据集的不同特权级别授予多个角色
    • Sentry提供了一个统一平台方便管理
    • Sentry支持集成kerberos

    缺点:

    • 组件只支持hive、hdfs、impala,不支持hbase、yarn、kafka、storm等
  • 相关阅读:
    滴滴 OrangeFS 数据湖存储关键技术揭秘!
    k8s笔记 | StatefulSet 有状态
    代码模版-实现重置按钮清空表单数据,vue+elementUI
    深入浅出的算法设计与分析技巧解读(软件设计师笔记)
    y86.第四章 Prometheus大厂监控体系及实战 -- prometheus存储(十七)
    ROS服务(Service)通信:通信模型、Hello World与拓展
    推荐一款管理系统专用低代码工具,一天开发一个系统不是梦
    sql 统计新客户
    一起Talk Android吧(第四百一十二回:Math类常用方法介绍)
    【经验分享】Ubuntu如何设置swap交换
  • 原文地址:https://blog.csdn.net/zhengzaifeidelushang/article/details/127806268