本文介绍了如何使用Ranger来授权HDFS。内容非常详细。感兴趣的朋友可以参考一下,希望对大家有所帮助。
本文主要介绍如何使用Ranger对HDFS进行授权。文档概述
1.在CDP7.1.3的Ranger中引入HDFS默认权限策略
2.使用Ranger为HDFS设置权限策略并进行验证。
测试环境
1.操作系统Redhat7.6。
2.CDP DC7.1.3
游侠中的HDFS默认权限策略。
使用admin用户登录页面http://cdp02.fayson.com:6080,点击cm_hdfs进入此页面。
在此页面上,您可以看到默认情况下有两种策略。第一个是hdfs用户的政策。默认情况下,它拥有所有目录的所有权限,rangerlookup拥有读取目录的所有权限。
其次,keyadmin用户拥有/ranger/audit/kms目录。这两个策略是CDP安装后的自包含策略。建议不要随意修改这两个用户的权限策略。
使用游侠为HDFS设置权限策略并进行验证。
3.1HDFS授权。
在上面,我们介绍了hdfs用户拥有所有目录的权限,如果他们需要设置相同的权限或者所有目录的权限。您需要继续向此策略添加其他权限策略,因为同一目录只能有一个策略。
首先,我们添加一个用户,费森添加了这里使用的脚本。所有节点都添加了一个fayson用户。
然后选中在HDFS启用游侠授权,并保存重启以生效。
在给予许可之前,请进行以下验证:
将fayson设置为具有读写所有目录的权限,并在全路径策略中添加权限条件。正确的方法如下:
保存策略后,单击查看。
https://cache.yisu.com/upload/information/20210522/347/541928.png" alt="如何使用Ranger给HDFS授权">
不能如下新增一个策略,会提示相同的资源已经创建了一个策略[all-path],错误的做法如下:
然后进行验证,成功创建
3.2HDFS多级授权以及拒绝条件策略
多级授权验证,首先创建两个本地测试用户,testuser1 、testuser2,并且在Ranger 页面创建Ranger 登录用户关联组(ldap 用户无需进行该操作即可使用用户密码登录)
登录Ranger,可以看到User Source 时External。由于本地Linux 用户默认无法同步密码,需在Settings > Users 中将默认同步的Linux 删除,然后手动关联组重建。
点击右上角的红色删除按钮删除后,然后点击Add New User 。进行如下操作,密码至少为包含英文和字母的8个字母,选择角色为User,并且选择关联组分别为testuser1、和testuser2。testuser2 步骤基本一致,省略。
手动创建好后用户显示如下,User Source 显示为Internal在当前登录时可以看到组件的权限策略,但是不能添加任何策略,如果尝试添加策略时保存会提示如下错误
当前testuser1和testuser2 均无hdfs 中 /test 目录的写权限
然后通过Ranger admin 用户给testuser1 /test 目录all 权限,并委派admin权限,也就是勾选Delegate Admin,再由testuser1 给testuser2 授权进行验证。
验证testuser1 权限,并创建接下来要验证的权限的目录,为了避免HDFS 本身的权限干扰,这里将所有的目录权限设置为700
Allow Conditions策略设置以及验证
具体策略设置如下:
验证如下:
Exclude from Allow Conditions 策略验证,这里由于/test/Exclude 目录本身testuser2 是没有读写权限的,所以在Allow Conditions中给了所有权限,但是在Exclude from Allow Conditions 排除了读权限,在这种情况下,testuser2 权限是有写的权限但是没有读的权限,也证实了Exclude from Allow Conditions策略已生效以及拒绝策略优先的设计逻辑:
Deny 策略验证,这里与Exclude from Allow 策略有些类似,/test/Deny 目录本身testuser2没有任何权限,在Allow Conditions 中给了所有权限用于验证,在Deny Conditions中设置拒绝读权限。同样证实Deny 策略已生效以及拒绝策略优先的设计逻辑
设置验证testuser2 Deny Conditions策略生效,并切换testuser1 用户验证非Deny Conditions 的策略
Exclude from Deny Conditions策略验证,同样/test/ExcludeDeny 由于testuser2用户没有任何权限,在Allow Conditions 中给了该目录的所有权限,然后在Deny Conditions和
Exclude from Deny Conditions 设置如下。其结果与Deny Conditions策略一致
设置验证testuser2 Exclude from Deny Conditions策略生效,由于排除了Deny Conditions 的设置,所以可以正常读。
如果在Exclude from Deny Conditions取消排除Read 的权限,则可写而不可读,如下设置
关于如何使用Ranger给HDFS授权就分享到这里了,希望
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/65923.html