0811-7.1.3-如何使用Ranger给HDFS授权( 二 )


0811-7.1.3-如何使用Ranger给HDFS授权
本文插图
手动创建好后用户显示如下 , User Source 显示为Internal在当前登录时可以看到组件的权限策略 , 但是不能添加任何策略 , 如果尝试添加策略时保存会提示如下错误

0811-7.1.3-如何使用Ranger给HDFS授权
本文插图
0811-7.1.3-如何使用Ranger给HDFS授权
本文插图
当前testuser1和testuser2 均无hdfs 中 /test 目录的写权限
0811-7.1.3-如何使用Ranger给HDFS授权
本文插图
然后通过Ranger admin 用户给testuser1 /test 目录all 权限 , 并委派admin权限 , 也就是勾选Delegate Admin , 再由testuser1 给testuser2 授权进行验证 。
0811-7.1.3-如何使用Ranger给HDFS授权
本文插图
验证testuser1 权限 , 并创建接下来要验证的权限的目录 , 为了避免HDFS 本身的权限干扰 , 这里将所有的目录权限设置为700
0811-7.1.3-如何使用Ranger给HDFS授权
本文插图

0811-7.1.3-如何使用Ranger给HDFS授权
本文插图
Allow Conditions策略设置以及验证
0811-7.1.3-如何使用Ranger给HDFS授权
本文插图
具体策略设置如下:
0811-7.1.3-如何使用Ranger给HDFS授权
本文插图
验证如下:
0811-7.1.3-如何使用Ranger给HDFS授权
本文插图
Exclude from Allow Conditions 策略验证 , 这里由于/test/Exclude 目录本身testuser2 是没有读写权限的 , 所以在Allow Conditions中给了所有权限 , 但是在Exclude from Allow Conditions 排除了读权限 , 在这种情况下 , testuser2 权限是有写的权限但是没有读的权限 , 也证实了Exclude from Allow Conditions策略已生效以及拒绝策略优先的设计逻辑:
0811-7.1.3-如何使用Ranger给HDFS授权
本文插图
Deny 策略验证 , 这里与Exclude from Allow 策略有些类似 , /test/Deny 目录本身testuser2没有任何权限 , 在Allow Conditions 中给了所有权限用于验证 , 在Deny Conditions中设置拒绝读权限 。 同样证实Deny 策略已生效以及拒绝策略优先的设计逻辑
0811-7.1.3-如何使用Ranger给HDFS授权
本文插图
设置验证testuser2 Deny Conditions策略生效 , 并切换testuser1 用户验证非Deny Conditions 的策略
0811-7.1.3-如何使用Ranger给HDFS授权
本文插图
Exclude from Deny Conditions策略验证 , 同样/test/ExcludeDeny 由于testuser2用户没有任何权限 , 在Allow Conditions 中给了该目录的所有权限 , 然后在Deny Conditions和
Exclude from Deny Conditions 设置如下 。 其结果与Deny Conditions策略一致
0811-7.1.3-如何使用Ranger给HDFS授权
本文插图
设置验证testuser2 Exclude from Deny Conditions策略生效 , 由于排除了Deny Conditions 的设置 , 所以可以正常读 。


推荐阅读