CM6配置Sentry
1. Sentry概述
Apache Sentry是Cloudera公司发布的一个Hadoop开源组件,它提供了细粒度级、基于角色的授权以及多租户的管理模式。Sentry提供了对Hadoop集群上经过身份验证的用户和应用程序的数据控制和强制执行精确级别权限的功能。Sentry目前可以与Apache Hive,Hive Metastore/HCatalog,Apache Solr,Impala和HDFS(仅限于Hive表数据)一起使用。
Sentry旨在成为Hadoop组件的可插拔授权引擎。它允许自定义授权规则以验证用户或应用程序对Hadoop资源的访问请求。Sentry是高度模块化的,可以支持Hadoop中各种数据模型的授权。
cdh6版本的hadoop在对数据安全上的处理通常采用Kerberos+Sentry的结构。kerberos主要负责平台用户的权限管理,sentry则负责数据的权限管理。
cdh7版本的hadoop在对数据安全上的处理通常采用Kerberos+Ranger的结构。Ranger基于策略的权限控制,支持的大数据组件更多,Sentry基于传统的RABC思想设计的。
2. Sentry中的角色
Sentry中通过角色赋予用户权限,通过角色将大数据组件进行控制。角色在Sentry中尤为重要:
3. Sentry安装部署
首页添加Sentry服务: 进入节点分配页面:
配置数据库连接
完成Sentry的服务添加
添加成功,点击完成
4. Sentry与Hive集成
4.1 修改配置参数
- 取消HiveServer2用户模拟
在hive配置项中搜索"HiveServer2 启用模拟",取消勾选. 所谓模拟用户就是使用一个模拟用户代理外面所有的访问。取消勾选,点击保存更改。
- 确保hive用户能够提交MR任务
在yarn配置项中搜索"允许的系统用户",确保包含"hive"。
4.2 配置Hive使用Sentry
- 在Hive配置项中搜索"启用数据库中的存储通知",勾选。
点击保存更改。
- 在Hive配置项中搜索"Sentry",勾选Sentry。
点击保存更改。
4.3 配置HDFS权限与Sentry同步
- 在HDFS配置项中搜索"启用访问控制列表",勾选保存。
- 在HDFS配置项中搜索"启用 Sentry 同步",做出下图修改。
回到首页,点击重启组件:
进入配置确认变更页面
点击立即重启,开始重启
5. Sentry授权实操
5.1 Sentry实操之HUE
配置HUE支持Sentry
在HUE配置项中搜索"Sentry",勾选Sentry并保存。进入配置确认变更页面
开始重启
重启完成。
查看Sentry权限管理中的管理员组
在Sentry的配置项中搜索"管理员组",其中包括hive、impala,只有当某用户所属组位于其中时,才可为其他用户授予权限。在Hive集群所有节点创建两个用户maomao,jack,为权限测试做准备
## 在hadoop101~105上执行
useradd maomao
passwd maomao
useradd jack
passwd jack
- 登录HUE
首次登录的账户将作为管理员账号,比如我是用admin:
登录进来后,点击右上角账户,选择管理用户:
- 创建用户组和绑定角色
点击组->添加组,创建用户组reader、writer、admin组, 权限都是全选:创建两个用户jack、maomao,将maomao加入到reader组, jack加入到writer组,
为权限测试做准备,编辑admin用户,将admin用户添加进admin组。
最后如图所示,用户和组的关系:
- 设置Hue安全性 在左上角点击,选择安全性菜单:
点击Hive表->Roles->Click here to add here:
配置reader_role,选择要绑定hue系统中的角色reader,和Hive中的表,选择select权限,点击保存
配置witer_role,选择要绑定hue系统中的角色writer,和Hive中的表,选择insert权限,点击保存
配置admin_role,选择要绑定hue系统中的角色admin,和Hive中的表,选择all权限,点击保存
配置最终如图所示:
- 权限测试
(1)分别使用maomao和jack用户登录HUE
(2)查询default数据库中的任意一张表,发现只有reader用户可查出,而writer则不能。说明权限控制生效。