CDH集群权限管理
Apache Sentry介绍
Apache Sentry
是Cloudera
公司发布的一个Hadoop
开源组件,它提供了细粒度级、基于角色的授权及多租户管理模式。Sentry
当前支持Hive/HCatalog
、Apache Solr
、Impala
、HDFS
及Hbase
权限管理;
Apache Sentry组件
Sentry的体系结构中有三个重要组件:Binding
、Policy Engine
及Policy Provider
;
Binding
Binding
实现对不同的查询引擎授权,Sentry
将自己的Hook
函数插入到各SQL
引擎的编译、执行阶段,这些Hook
函数的作用为:
- 过滤器:只放行具有相应数据对象访问权限的
SQL
查询; - 授权接管:通过执行引擎进行
grant/revoke
管理权限时,实际在Sentry
中实现;
对于所有引擎的授权信息存储在Sentry
设定的统一数据库中,实现权限的集中管理;
Policy Engine
这是Sentry
授权的核心组件,Policy Engine
判断从Binding
层获取的输入权限要求与服务体提供层以保存的权限描述是否匹配;
Policy Provider
Policy Provider
负责从文件或数据库中读取设定的访问权限,提供给Policy Engine
进行鉴权匹配;
CDH集群启用Sentry
安装Sentry
组件
通过CM
直接添加Sentry
即可;(需提前创建sentry
数据库);
配置Sentry
服务,搜索sentry.service.admin.group
及sentry.service.allow.connect
, 添加各服务同名用户至管理员列表(CDH默认以服务同名用户启动服务),

Sentry
集成
- 在
Hive
配置中搜索hive.server2.enable.doAs
,取消该配置勾选;

在
Hive
配置中搜索Enable Stored Notifications in Database
,启用该配置项;在
Hive
配置中搜索sentry
,启用Hive
集成Sentry
;如需开启
Hive
列级权限控制,搜索sentry-site.xml
,添加截图中K-V配置;

在
Impala
配置中搜索Sentry
,启用Impala
集成Sentry
;在
HDFS
中搜索dfs.namenode.acls.enabled
,启用acls
控制;在
HDFS
中搜索sentry
,启用sentry
同步;配置
YARN
服务,搜索allowed.system.users
允许各服务同名账号提交任务至YARN
上;

配置
HUE
集成Sentry
,搜索Sentry
并勾选;
基于Hue使用Sentry授权
待授权用户需在集群所有节点存在,如不存在,则需手动创建;
在
Hue
中右上角选择管理用户,创建用户及组;点击左上角下拉菜单中
Security
创建Role
并进行权限授予;