各种安全组件对比
常见大数据权限方案:
1、Kerberos(开源常用方案,业界比较常用的方案)
2、Apache Sentry(Cloudera 选用的方案,CDH 版本中集成,CDP 中已经换成了Ranger)
3、Apache Ranger(Hortonworks 选用的方案,HDP 发行版中集成)
kerberos:
Kerberos 是一种基于对称密钥的身份认证协议,它作为一个独立的第三方的身份认证服务,可以为其
它服务提供身份认证功能,且支持 SSO(即客户端身份认证后,可以访问多个服务如 HBase/HDFS 等)。 就是找kerberos置换token, 拿到token后就能干其他事情了。
Kerberos 协议过程主要有三个阶段:
- 第一个阶段 Client 向 KDC 申请 TGT(Ticket Granting Ticket,认购权)
- 第二个阶段 Client 通过获得的 TGT 向 KDC 申请用于访问 Service 的 Ticket
- 第三个阶段 Client 用返 回的 Ticket 访问 Service
优点:
1、服务认证,防止 broker datanode regionserver 等组件冒充加入集群
2、解决了服务端到服务端的认证,也解决了客户端到服务端的认证
缺点:
1、kerberos 为了安全性使用临时 ticket,认证信息会失效,用户多数情况下重新认证繁琐
2、kerberos 只能控制你访问或者拒绝访问一个服务,不能控制到很细的粒度,比如 HDFS 的某一个路
径,Hive 的某一个表,对用户级别上的认证并没有实现(需要配合LDAP)
总结:
Kerberos 更专注的是通用的认证解决方案,但是它对授权以及其他安全方面的管理功能并不擅长、例如细粒
度权限、审计等。往往跟 Ranger 或者 Sentry 结合使用各取所长。
Apache Sentry:
Apache Sentry 是 Hadoop 之上的基于角色的细粒度授权模块。它为在 Hadoop 集群(特别是CDH)
上运行的经过身份验证的用户和应用程序提供数据访问授权。目前 Sentry 已支持 Apache Hive,
Apache Solr,Apache Kafka,Apache Impala 和 HDFS (仅限于 Hive 表的 HDFS 数据权限同步)。
优点:
1、Sentry 支持细粒度的 HDFS 元数据访问控制,对 hive 支持列级别的访问控制
2、Sentry 通过基于角色的授权简化了管理,将访问同一数据集的不同特权级别授予多个角色
3、Sentry 提供了一个统一平台方便管理
4、Sentry 支持集成 Kerberos
缺点:
1、组件只支持 hive,hdfs,impala
2、不支持 hbase,yarn,kafka,storm 等
Sentry VS Ranger
概述
Apache Ranger 是 Hadoop 平台上操作、监控、管理数据安全的集中式安全管理框架。Ranger 的愿景是在 Apache Hadoop 生态系统中提供全面的安全性。
目前,Apache Ranger 支持以下 Apache 项目的细粒度授权和审计:
Apache Hadoop/HDFS
Apache Hadoop/YARN
Apache Hive
Apache HBase
Apache Storm
Apache Knox
Apache Solr
Apache Kafka
Apache Nifi
Ranger 通过访问控制策略提供了一套标准的授权方法,改变了 Hadoop 上各个组件各自为政分散管理权限的现状。
作为标准,Ranger 提供了集中式的组件,用于审计用户的访问行为和管理组件间的安全交互行为。
Ranger架构
工作过程
Ranger核心特性
1、集中安全管理,在中央 UI 或使用 REST API 管理所有与安全相关的任务。
2、精细授权,使用 Hadoop 组件/工具执行特定动作或操作,并通过集中管理工具进行管理。
3、标准化所支持 Hadoop 组件的授权方法。
4、增强了对不同授权方法的支持:基于角色的访问控制,基于属性的访问控制,基于 Tag 的访问控制(需结
合Atlas)等
5、在所支持的 Hadoop 组件中集中审计用户访问和管理操作(与安全相关)
6、支持和 Kerberos 的集成