CDH 集成Sentry权限控制

                                      CDH 集成Sentry权限控制

1.hue集成sentry服务

首先登陆如下界面我的是http://master:7180/cmf/home

然后点击hue组件进入下面的界面,点击配置搜索Sentry将Sentry服务的Sentry勾选上

2. hive和impala启用Sentry和上面的步骤一样这里就不做介绍了

3.对hive和hue做权限控制

  • 首先登陆到hue的界面上来我个人的登陆地址为master:8888
  • 登陆之后默认的账号和密码都是admin

进入如下界面点击图中所示

  • 之后点击增加用户添加一个用户将hue用户加入其中密码自己设置,然后将hue用户放入hue组之中之后以hue用户的身份登入

登陆之后再次以hue的身份创建几个用户并且分配组如下图所示先点击1在点击2,之后再在3的位置分配权限。

                       

注意:其中有几点要注意hue组是Sentry的管理组所以创建hue组之后放入其中的hue用户是管理用户所以拥有权限去创建其他用户,而且不仅要保证hue用户存在即如果在之前cdh集成了kerberos的话需要在kerberos中加入hue用户并且还要保证linux用户组中包含hue,以上都可以通用到其他用户身上即假如创建一个用户叫做user那么需要保证linux用户组中包含user,如果cdh集成了kerberos的话还要保证kerberos域中包含此user用户,并且你将user用户放入哪个用户组中就会拥有哪个用户组的权限。

通过以上操作你可以实现hue所创建的用户拥有什么权限的控制比如你可以实现此用户登陆hue之后能看到什么数据,能执行什么从操作从而实现对hive的控制,比如此用户只能实现对表table1实现select的处查询你甚至可以控制他只能查询此数据库中table1表的name字段即实现列级控制。

4.Hbase集成Sentry

  • 首先登陆master:7180
  • 然后点击hbase组件在配置里面搜索auth将以下内容勾选上

                   

  • 在输入dfs将以下内容勾选上

                 

  • 输入superuser加入一个超级用户之后去hbase shell里面创建一个表然后创建一个用户加入kerberos中之后执行kinit username(你自己的用户名)登陆然后进入hbase shell对此用户赋予权限

                    

赋权的代码如下

 grant "username(用户名)" ,"R(权限)","student(表名)","sex(列族名)","xingmian(列名)"

此外hbase还可以开启行级控制在配置中输入row将行级控制勾选上如果此时报错的话需要在hbase配置的高级中的hbase-site.xml 的 HBase 服务高级配置代码段(安全阀)中加入以下内容:

                  

5.HDFS 控制文件权限配置

hdfs-配置--启用 Sentry 同步--HDFS(服务范围)

启用访问控制列表---dfs.namenode.acls.enabled

启用 检查 HDFS 权限----dfs.permissions--HDFS(服务范围)

启用 HTTP Web 控制台的 Kerberos 身份验证--HDFS(服务范围),启动之后就不能访问hdfs 的namenode web ui页面了。其他服务也可进行类似的控制。

Sentry 同步路径前缀--sentry.hdfs.integration.path.prefixes---HDFS(服务范围) 

sentry.hdfs.integration.path.prefixes :/user/hive/warehouse

测试:

user2只 拥有 test.student 表的查询权限,同步文件权限之后user2只拥有/user/hive/warehouse/test.db/student 该文件的查询权限。hdfs下/user/hive/warehouse和他下面的其他路径 都不能访问。

kinit user2

[root@slave01 mySparkTest]# hdfs dfs -ls /user/hive/
Found 2 items
drwxr-xr-x   - hive hive          0 2018-07-30 17:00 /user/hive/.sparkStaging
drwxrwx--x+  - hive hive          0 2018-07-20 09:31 /user/hive/warehouse

[root@slave01 mySparkTest]# hdfs dfs -ls /user/hive/warehouse
ls: Permission denied: user=user2, access=READ_EXECUTE, inode="/user/hive/warehouse":hive:hive:drwxrwx--x
[root@slave01 mySparkTest]# hdfs dfs -ls /user/hive/warehouse/test.db/
ls: Permission denied: user=user2, access=READ_EXECUTE, inode="/user/hive/warehouse/test.db":hive:hive:drwxrwx--x
[root@slave01 mySparkTest]# hdfs dfs -ls /user/hive/warehouse/test.db/student
Found 1 items
-rwxrwx--x+  3 hive hive        113 2018-07-20 10:47 /user/hive/warehouse/test.db/student/student.txt

猜你喜欢

转载自blog.csdn.net/Johnzhc/article/details/81331396
CDH