数据治理(十六):Ranger管理HDFS安全

举报
Lansonli 发表于 2022/09/11 02:25:35 2022/09/11
【摘要】 ​Ranger管理HDFS安全我们还可以使用Ranger对HDFS进行目录权限访问控制。这里需要添加“HDFS-Plugin”插件。一、安装“HDFS-Plugin”插件安装“HDFS-Plugin”插件步骤如下:1)将编译好的“ranger-2.1.0-hdfs-plugin.tar.gz”发送到node1节点,并解压#将node3上编译好的HDFS插件发送到node1上[root@nod...

​Ranger管理HDFS安全

我们还可以使用Ranger对HDFS进行目录权限访问控制。这里需要添加“HDFS-Plugin”插件。

一、安装“HDFS-Plugin”插件

安装“HDFS-Plugin”插件步骤如下:

1)将编译好的“ranger-2.1.0-hdfs-plugin.tar.gz”发送到node1节点,并解压

#将node3上编译好的HDFS插件发送到node1上
[root@node3 ~]# cd /software/apache-ranger-2.1.0/target
[root@node3 target]# scp ./ranger-2.1.0-hdfs-plugin.tar.gz node1:/software/

#登录node1,解压
[root@node1 ~]# cd /software/
[root@node1 software]# tar -zxvf ./ranger-2.1.0-hdfs-plugin.tar.gz 

2)配置“install.properties”文件

#配置Ranger-Admin访问地址
POLICY_MGR_URL=http://node1:6080

#配置HDFS仓库,用于Ranger页面配置
REPOSITORY_NAME=hdfs_repo

#配置HDFS安装目录
COMPONENT_INSTALL_DIR_NAME=/software/hadoop-3.1.4/

#配置操作HDFS插件的用户和所属组
CUSTOM_USER=root
CUSTOM_GROUP=root


3)执行“enable-hdfs-plugin.sh”开启“HDFS Plugin”

[root@node1 ~]# cd /software/ranger-2.1.0-hdfs-plugin
[root@node1 ranger-2.1.0-hdfs-plugin]# enable-hdfs-plugin.sh


4)开启HDFS权限验证

配置HDFS的“/software/hadoop-3.1.4/etc/hadoop/hdfs-site.xml”文件,在每台HDFS节点上配置:

<property>
    <!-- 启用权限 -->
    <name>dfs.permissions.enabled</name>
    <value>true</value>
</property>
<property>
    <!-- 开启ACL -->
    <name>dfs.namenode.acls.enabled</name>
    <value>true</value>
</property>
<property>
   <!-- 文件操作时,检查权限 -->
	<name>dfs.permissions</name>
	<value>true</value>
</property>
<!-- 以下两项是关于Ranger安全检查配置 -->
<property>
	<name>dfs.namenode.inode.attributes.provider.class</name>
	<value>org.apache.ranger.authorization.hadoop.RangerHdfsAuthorizer</value>
</property>
<property>
	<name>dfs.permissions.ContentSummary.subAccess</name>
	<value>true</value>
</property>


5)重启HDFS

[root@node1 ~]# stop-all.sh
[root@node1 ~]# start-all.sh


二、验证HDFS权限控制

1)在Ranger中添加“HDFS Service”服务

配置好之后:

2)在HDFS中创建测试目录

#在node1节点上创建HDFS目录
[root@node1 ~]# hdfs dfs -mkdir /rangertest


#向HDFS此目录下上传一个有内容的txt文件:
[root@node1 ~]# hdfs dfs -put ./data.txt /rangertest


3)测试用户“user1”读取“rangertest”数据和上传文件

在node1中切换用户user1,读取HDFS中的数据,有只读权限

[root@node1 ~]# su user1
[user1@node1 root]$ hdfs dfs -cat /rangertest/data.txt


#使用user1用户上传数据文件到HDFS“/rangertest/”下,没有操作权限
[user1@node1 ~]$ hdfs dfs -put ./user2data.txt /rangertest
put: Permission denied: user=user1, access=WRITE, inode="/rangertest":root:supergroup:drwxr-xr-x


4)使用Ranger 控制user1可以操作HDFS“/rangertest”目录

5)再次使用“user1”向HDFS目录“/rangertest”中上传数据

再次执行,权限通过,通过Ranger已经可以对HDFS进行权限管理。

[user1@node1 ~]$ hdfs dfs -put ./user2data.txt /rangertest
[user1@node1 ~]$ hdfs dfs -cat /rangertest/user2data.txt
hello a
hello b
hello c
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。