您的位置:首页 > 运维架构

Hadoop Sentry 学习

2016-04-24 14:56 323 查看

什么是Sentry?

Sentry 是Cloudera 公司发布的一个Hadoop开源组件,它提供细粒度基于角色的安全控制

Sentry下的数据访问和授权

通过引进Sentry,Hadoop目前可在以下方面满足企业和政府用户的RBAC(role-based acess control)需求:

安全授权:Sentry可以控制数据访问,并对已通过验证的用户提供数据访问特权。

细粒度访问控制:Sentry支持细粒度的Hadoop数据和元数据访问控制。在Hive和Impala中Sentry的最初发行版本中,Sentry在服务器、数据库、表和视图范围提供了不同特权级别的访问控制,包括查找、插入等——允许管理员使用视图限制对行或列的访问。管理员也可以通过Sentry和带选择语句的视图或UDF,根据需要在文件内屏蔽数据。

基于角色的管理:Sentry通过基于角色的授权简化了管理,你可以轻易将访问同一数据集的不同特权级别授予多个组。例如,对于某特定数据集,你可以分配给反欺诈小组查看所有列的特权,给分析师查看非敏感或非PII(personally identifiable information)列的权限,给数据接收流插入新数据到HDFS的权限。

多租户管理:Sentry允许为委派给不同管理员的不同数据集设置权限。在Hive/Impala的情况下,Sentry可以在数据库/schema级别进行权限管理。

统一平台:Sentry为确保数据安全,提供了一个统一平台,使用现有的Hadoop Kerberos实现安全认证。同时,通过Hive或Impala访问数据时可以使用同样的Sentry协议。未来,Sentry协议会被扩展到其它组件。

Sentry 架构





图为Sentry的基本架构,目前Sentry支持 Hive(凭借HiveServer2的基于thrift 的RPC 接口) 和Impala 。但是Sentry 具有高度模块化和可扩展的机制,它可以扩展到其它基于Hadoop的应用中去。Sentry 的授权核心层主要分两部分,结合层(Hive bindings and Impala bindings)和 核心授权提供者(Policy engine and Policy abstractions )。结合层提供一个可插拔的接口,实现与协议引擎的对话 。Policy engine 与bingdings 合作,对访问请求进行评估检验,如果允许访问,通过 Policy abstractions 来访问底层数据。

目前已经实现了基于文件的提供者,可以理解具体协议文件格式。协议文件可被存储在本地文件系统或HDFS中,以便复制和审计。

Sentry在Hive 中的使用方法

CDH 4.4 以上版本Impala 1.1以上版本可以使用Sentry

注意:如果集群环境中Hive 和Impala 都存在, Sentry 生效的时候,必须保证 Hive 和Impala 都生效。

在Hive 中配置Sentry 要保证以下条件:

Hive warehouse 路径 (/user/hive/warehouse 或者是配置的hive.metastore.warehouse.dir 的路径)用户和用户组必须是Hive

warehouse 权限所有者必须满足

770 on the directory itself (for example, /user/hive/warehouse)

770 on all subdirectories (for example, /user/hive/warehouse/mysubdir)

All files and directories should be owned by hive:hive

例如:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: