大数据平台安全策略(Kerberos,Sentry,Ranger)

近些年来大数据所用到的的安全方案主要有如下三种

  • Kerberos(业界常用的服务认证)
  • Sentry(Cloudera选用的方案,cdh版本集成)
  • Ranger(Hortonworks选用的方案,hdp发行版集成)

Kerberos

Kerberos只能控制你是否能访问服务,不能控制到很细的粒度
比如说,它可以控制你访问hive与否,但是对于hive的表没有用户级别的权限控制没有实现(需要集成LDAP一起使用才行)

kerberos的主要构成部分为Client,KDC,Service

构成 作用
KDC Kerberos的服务端程序,用来验证各个模块
Client 需要访问服务的用户,KDC与Service会对用户的身份进行验证
Service 集成了Kerberos的服务,如Hbase,Hdfs,Hive等

Kerberos协议过程

  • Client向KDC申请TGT
  • Client通过获得的TGT向KDC申请用于访问的Service的Ticket
  • Client用KDC返回的Ticket访问Service

可以用游乐园的思想来类比:

将KDC比作游乐园,Client比作游客,Service比作游乐园的各种活动项目
首先游客(Client)进入游乐园(KDC)需要游乐园的门票(TGT),玩耍各类项目需要对应项目的票据(ticket),比如玩耍摩天轮(Hbase)需要摩天轮的专属票据(ticket)

优点:

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

缺点

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

Apache Sentry

Apache Sentry是Cloudera公司发布的一个Hadoop安全开源组件,它提供了细粒度级、基于角色的授权.

优点:

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

缺点:

  • 组件只支持hive,hdfs,impala 不支持hbase,yarn,kafka,storm等

Apache Ranger

Apache Ranger是Hortonworks公司发布的一个Hadoop安全开源组件

优点:

  • 提供了细粒度级(hive列级别)
  • 基于访问策略的权限模型
  • 权限控制插件式,统一方便的策略管理
  • 支持审计日志,可以记录各种操作的审计日志,提供统一的查询接口和界面
  • 丰富的组件支持(HDFS,HBASE,HIVE,YARN,KAFKA,STORM)
  • 支持和kerberos的集成
  • 提供了Rest接口供二次开发

选择Ranger的原因
多组件支持(HDFS,HBASE,HIVE,YARN,KAFKA,STORM),基本覆盖我们现有技术栈的组件
支持审计日志,可以很好的查找到哪个用户在哪台机器上提交的任务明细,方便问题排查反馈
拥有自己的用户体系,可以去除kerberos用户体系,方便和其他系统集成,同时提供各类接口可以调用

发布了15 篇原创文章 · 获赞 28 · 访问量 1140

猜你喜欢

转载自blog.csdn.net/qq_37865420/article/details/104245127