深入了解大数据安全组件Apache Ranger
Posted 勇敢羊羊在飞奔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入了解大数据安全组件Apache Ranger相关的知识,希望对你有一定的参考价值。
深入了解大数据安全组件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)
服务 | 作用 |
---|---|
KDC | Kerberos的服务端程序,用于验证各个模块 |
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等
以上是关于深入了解大数据安全组件Apache Ranger的主要内容,如果未能解决你的问题,请参考以下文章