Apache Sentry:加强的细粒度的基于角色的授权系统

微信公众号:深广大数据Club

关注可了解更多大数据的相关资讯。问题或建议,请公众号留言;

如果你觉得深广大数据Club对你有帮助,欢迎赞赏[1]

Apache Sentry介绍

Apache Sentry是Cloudera公司发布的一个Hadoop开源组件,截止目前还是Apache的孵化项目,它提供了细粒度级、基于角色的授权以及多租户的管理模式。Sentry当前可以和Hive/Hcatalog、Apache Solr 和Cloudera Impala集成,未来会扩展到其他的Hadoop组件,例如HDFS和HBase。

Apache Sentry组件

Sentry Server:Sentry RPC服务器管理授权元数据。它支持安全检索和操作元数据的界面;

Data Engine:这是一个数据处理应用程序,如Hive或Impala,需要授权访问数据或元数据资源。数据引擎加载Sentry插件,拦截所有访问资源的客户端请求并将其路由到Sentry插件进行验证;

Sentry Plugin:Sentry插件在数据引擎中运行。它提供了操作存储在Sentry服务器中的授权元数据的接口,并包括授权策略引擎,该引擎使用从服务器检索的授权元数据来评估访问请求。

关键概念:

身份验证 - 验证凭据以可靠地识别用户

授权 - 限制用户对给定资源的访问权限

用户 - 由基础认证系统识别的个人

组 - 由身份验证系统维护的一组用户

权限 - 允许访问对象的指令或规则

角色 - 一组特权; 用于组合多个访问规则的模板

授权 模型 - 定义要受授权规则约束的对象以及允许的操作粒度。例如,在SQL模型中,对象可以是数据库或表,操作也可以 SELECT,INSERT,CREATE 等等。对于搜索模型,对象是索引,集合和文档; 访问模式是查询,更新等。

Apache Sentry 特性

用户身份和组映射:Sentry依靠底层身份验证系统(如Kerberos或LDAP)来识别用户。它还使用Hadoop中配置的组映射机制来确保Sentry看到与Hadoop生态系统的其他组件相同的组映射。

基于角色的访问控制:基于角色的访问控制(RBAC)是一种强大的机制,用于管理典型企业中大量用户和数据对象的授权。添加或删除新数据对象,用户一直加入,移动或离开组织。RBAC使管理更容易。

统一授权:Sentry的另一个重要方面是统一授权。访问控制规则一旦定义,就可以跨多个数据访问工具工作。

Apache Sentry与Apache Range对比

Sentry:RBAC(role-based acess control)基于角色的管理,比如Cloudera用的是Sentry,华为的FusionInsight也采用类似的机制。

即:通过创建角色,将每个组件的权限授予给此角色。然后在用户中添加此角色,即用户具备此角色访问组件的权限(组也类似)

Ranger: PBAC(policy-based acess control)基于策略的管理,比如Hortonworks用的Ranger

即:每个组件可以添加服务Service如Hive,然后添加自定义策略(如访问粒度Database,Table,Column),再添加组或用户访问权限(Select,Create,Drop等)

Sentry与Hadoop 生态系统集成

如上所示,Apache Sentry使用多个Hadoop组件。您的核心是Sentry Server,它存储授权元数据,并为工具提供API,以便安全地检索和修改此元数据。

请注意,Sentry服务器仅支持元数据。实际的授权决策由在Hive或Impala等数据处理应用程序中运行的策略引擎做出。每个组件都加载Sentry插件,其中包括用于处理Sentry服务的服务客户端和用于验证授权请求的策略引擎。

Sentry+Hive

具有细粒度授权的SQL模型

DB对象 - 数据库,表和列

DB操作 - SELECT,INSERT,CREATE,ALTER,..

支持托管和外部表

通过URI级别权限对外部路径规范进行特殊处理

通过SQL进行授权管理

授予,撤销,创建/放弃角色等

Sentry+Impala

使用与Hive相同的SQL模型

细粒度授权

DB对象 - 数据库,表,列

DB操作 - SELECT,INSERT,CREATE,ALTER,..

支持托管和外部表

通过URI级别权限对外部路径规范进行特殊处理

Impala引擎缓存特权元数据以加快访问速度

Sentry + Metadata

实施与元数据访问相同的策略

防止未经授权的架构更改

隐藏未经授权用户的元数据

适用于所有Metastore RPC客户端

带有Hcatalog的Apache Pig

Hadoop工作

第三方应用程序

Sentry HDFS ACL Sync

用于非SQL客户端的HDFS ACL sycn

将Sentry权限应用为HDFS ACL

需要启用HDFS扩展ACL

Namenode维护特权缓存

目前仅支持Hive数据

为非SQL客户端启用相同的文件访问粒度

Sentry+Solr

细粒度的授权

Collection

Documents

Index

支持对资源的查询和更新访问

除了以上Sentry和大数据组件的集成外,还有与sqoop、kafka等大数据组件的集成,关于Sentry与kafka的集成将会在接下来的分享中给出。

赞赏

如果你觉得到深广大数据Club对你有帮助,欢迎赞赏,有你的支持,我们一定会越来越好!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180808G0NIF000?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励