Sentry深入
Sentry的架构
内部架构
核心就是规则引擎以及Metadata Store;记录格式有两种,一种policy file记录授权内容,另外一种是通过命令方式进行授权;前者记录在策略文件中,保存形式是hdfs的一个文件;后者则是记录在数据库中,保存在关系型数据库中(通常和hive的metadata保存在一个MySQL实例中)。
调用模型
Sentry Server对外公开PRC端口以及Web 服务两种接口(以PRC为主),供外界调用;在通过cloudera安装sentry的时候,其实已经把Sentry Server以及Sentry Client安装好了(测试集群只是有hive,默认hive在安装完了sentry之后即和sentry绑定);
Sentry Client
Client种类
Sentry的Hadoop ACL Sync
这些客户端中,HDFS的client比较特殊;因为已经在hive中设置了sentry权限,hive本身就是访问hdfs文件,为什么还要在hdfs层再做权限控制呢?这是因为除了hive可以直接访问hdfs的文件之外,还有Map-Reduce程序,pig,spark等可以访问hdfs,所以只是在hive层面去做是不够的;
在cloudera中可以通过配置hdfs的Enable Sentry Synchronization选项来实现hive权限直接下放;比如你在hive中配置了bd这个用户可以访问sentry_test这个表;那么用bd这个用户在命令行中就可以访问/user/hive/warehouse/sentry_test目录;但是不能访问同级的其他目录以及上级目录。
Hdfs在这里的权限控制是在首先是走sentry的权限控制,如果Sentry中没有配置,才是走文件的权限控制。
1.1.1.1
Sentry权限控制
Sentry的用户映射源
三种:
- Kerberos;
- LDAP;
- Linux User/Group;官网文档描述的第三种是和hadoop的用户对应;但是真实测试中发现如果是一个hadoop存在但是Linux系统中不存在的用户,无法授权成功;所以这里我认为还是Linux自己的用户和组;
Sentry的授权
是标准的基于角色的授权(Role Base Access Control, RBAC)。
- 资源和权限绑定,权限在Sentry中分为三种:Select,Insert,ALL;
- 权限和角色绑定;
- 角色和用户绑定(用户来自于上面提到的三种);
Sentry权限控制的实现
在Build和Plan之间,添加钩子,来进行权限验证。
参考文档:
https://cwiki.apache.org/confluence/display/SENTRY/Documentation
Sentry深入的更多相关文章
- 通过Cloudera在hadoop生态圈中安装Sentry服务。
写在张文章时,差点辣死我了.把sentry数据库密码搞掉了,导致hive,impala,hue都挂了.此事要引以为戒,以后要小心操作了. 安装Sentry服务 a) 在c ...
- 为CDH 5.7集群添加Kerberos身份验证及Sentry权限控制
转载请注明出处:http://www.cnblogs.com/xiaodf/ 4. 为CDH 5集群添加Kerberos身份验证 4.1 安装sentry1.点击“操作”,“添加服务”:2.选择sen ...
- 搭建sentry(一个分布式日志聚合系统)
简介: Sentry 是一个实时的事件日志和聚合平台,基于 Django 构建. Sentry 可以帮助你将 Python 程序的所有 exception 自动记录下来,然后在一个好用的 UI 上呈现 ...
- Python 实时日志平台 Sentry
原文地址:http://www.oschina.net/p/sentry Sentry 是一个实时的事件日志和聚合平台,基于 Django 构建. Sentry 可以帮助你将 Python 程序的所有 ...
- 使用开源软件sentry来收集日志
原文地址:http://luxuryzh.iteye.com/blog/1980364 对于一个已经上线的系统,存在未知的bug或者运行时发生异常是很常见的事情,随之而来的几点需求产生了: 1.系统发 ...
- Sentry Server 日志记录分析服务
原文地址:http://blog.shanbay.com/archives/998 或许你不太会喜欢异常,特别是那些发生后继而沉默在应用日志里那些,你不知道从何开始,因为它们看起来并非那么平易近人,但 ...
- 安装配置sentry服务
环境 系统环境:Centos6.7 Hadoop版本:CDH5.10 jdk版本:jdk7 注:本文并未集成kerberos组件 安装Sentry Server 选择安装hive的节点进行安装测试: ...
- hive集成sentry
1.安装配置sentry 详细步骤见上一篇安装配置sentry 2.配置hive 2.1 Hive-server2集成Sentry 在 /etc/hive/conf/hive-site.xml中添加: ...
- Centos7通过Docker安装Sentry(哨兵)
Docker介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制, ...
- hive集成sentry的sql使用语法
Sentry权限控制通过Beeline(Hiveserver2 SQL 命令行接口)输入Grant 和 Revoke语句来配置.语法跟现在的一些主流的关系数据库很相似.需要注意的是:当sentry服务 ...
随机推荐
- php大转盘抽奖
抽奖大转盘演示:http://www.sucaihuo.com/php/3301.html function getRand($proArr, $proCount) { $result = ''; $ ...
- 教你在树莓派使用上RTC实时时钟,不用再担心断电后时间归零的问题,开机后自动同步RTC时钟!!!
准备工作:1.系统建议使用官方最新的镜像文件 2.RTC时钟模块板(I2C接口)建议使用DS1307时钟模块,或者RTC时钟模块RTC时钟模块: 大家知道arduino的电平是5V,树莓派是3.3V, ...
- Linux环境下的图形系统和AMD R600显卡编程(2)——Framebuffer、DRM、EXA和Mesa简介
转:https://www.cnblogs.com/shoemaker/p/linux_graphics02.html 1. Framebuffer Framebuffer驱动提供基本的显示,fram ...
- Cisco学习笔记
目录 1. 路由 1.1 静态路由 1.2 动态路由 2. 访问控制列表 2.1 标准访问控制列表 2.2 扩展访问控制列表 2.3 命名访问控制列表 3. VLAN 3.1 基础知识 3.2 配置实 ...
- 内核编译错误解答(elf_i386错误)
内核编译错误解答(elf_i386错误) 在编译内核过程中遇到的问题及解决方法: 1.root@org:/usr/src/linux# make menuconfig *** Unable to f ...
- git终端配置颜色
默认情况下git是黑白的. git config --global color.status auto git config --global color.diff auto git config - ...
- (转) 一次批量重启引发的Neutron网络故障
现场回顾 故事发生于某个下午,采用 salt 更新某集群的 neutron.conf (log 相关配置项) 并批量重启 neutron-openvswitch-agent(以下简称 neutron- ...
- watcher
https://wiki.openstack.org/wiki/Watcher Watcher为OS提供资源优化.主要是通过虚拟机迁移来提高整个数据中心的运营效率,降低TCO. 功能特点: 通过虚拟机 ...
- review18
数字格式化 程序可以直接使用String类调用format方法对数字进行格式化. format方法中的“格式化模式”是一个用双引号括起的字符序列(字符串),该字符序列的字符由格式符和普通字符所构成.代 ...
- ajax_基础
ajax 请求过程 1.准备发送请求 2.填写请求地址和数据 3.请请求到服务器 4.等待服务器处理数据. 5.接受服务器返回信息 --------------------------------- ...