ITPub博客

首页 > 大数据 > Hadoop > Hadoop KMS配置(HDFS透明加密)

Hadoop KMS配置(HDFS透明加密)

原创 Hadoop 作者:superjack2 时间:2020-06-06 17:50:50 0 删除 编辑


hdfs透明加密处于数据库加密层和文件系统加密层之间。能有效地防止对文件系统的攻击,因为他的存储都是加密的。

对于每个用户可以有不同的加密区。

注:加密的是数据块,就是存在磁盘上的东西,在hdfs上直接看是自动解密了,加密的要直接取数据块看。

配置KMS步骤如下:


1.core-site.xml 新增配置项

//配置客户端的地址

<property>

<name>hadoop.security.key.provider.path</name>

<value>kms://http@master:16000/kms</value>

</property>

2.hdfs-site.xml 新增配置项

//主要配置hdfs

<property>

<name>dfs.encryption.key.provider.uri</name>

<value>kms://http@master:16000/kms</value>

</property>


3.使用keytool生成的秘钥密码是123456  将密码直接写入到kms.keystore.password文件(文件名一定要是这个)

echo  123456  > ${HADOOP_HOME}/share/hadoop/kms/tomcat/webapps/kms/WEB-INF/classes/kms.keystore.password

${HADOOP_HOME}:表示Hadoop安装的路径


4.kms-env.sh        配置文件

export KMS_HOME=/opt/apps/hadoop-2.7.4

export KMS_LOG=${KMS_HOME}/logs/kms

export KMS_HTTP_PORT=16000

export KMS_ADMIN_PORT=16001


5、创建秘钥

keytool -genkey  -alias 'key1'       #删除的话 keytool -delete  -alias 'key1';

Enter keystore password:123456        #-----此处创建的密码,需要和上面kms.keystore.password配置文件的密码相同

Re-enter new password:

What is your first and last name?

[Unknown]:           #-----这一部分内容,用户随意填写,可以不写

What is the name of your organizational unit?

[Unknown]: 

What is the name of your organization?

[Unknown]: 

What is the name of your City or Locality?

[Unknown]: 

What is the name of your State or Province?

[Unknown]:

What is the two-letter country code for this unit?

[Unknown]: 

Is CN=lch, OU=gdbd, O=gdbd, L=sz, ST=sz, C=sz correct?

[no]:  yes                    #输入yes

Enter key password for <user_a_key>

(RETURN if same as keystore password):

Re-enter new password:


6、cd /root/hadoop-2.7.4/sbin

./kms.sh start                  #停止的话    sbin/kms.sh stop ;

此时通过jps能看到Bootstrap进程,表示成功启动。


7、重新启动namenode与datanode 

8、[root@hdp130 kms]#  hadoop key create key1  ---  wafkey为上面通过keytool创建的

[root@hdp130 kms]# hadoop key list    ---- 查看一下

[root@hdp130 kms]# hadoop fs -mkdir /sub     

[root@hdp130 logs]# hdfs crypto -createZone -keyName key1 -path /sub  ---设置/sub为加密区

Added encryption zone /sub

9、上传一个文件到hdfs的/sub上,拿到数据块的BP的id号到对应datanode节点上,下载文件快查看,然后具体磁盘上看到数据已经加密。


ok!


若删除加密区报错:

20/06/05 17:20:27 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 1440 minutes, Emptier interval = 0 minutes.

rm: Failed to move to trash: hdfs://hdfscluster/subkey/testdata.sh: /subkey/testdata.sh can't be moved from an encryption zone.

则删除加密区域文件或文件夹命令: hadoop fs -rm -r -skipTrash /subkey/test.logs


参考文章:

https://www.csdn.net/gather_2a/MtTaYg0sMDY1NC1ibG9n.html

https://blog.csdn.net/eyoulc123/article/details/78104054

https://www.cnblogs.com/pigdata/p/10305608.html


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537832/viewspace-2696692/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
了解技术的深度,才能知道技术的广度!

注册时间:2018-05-18

  • 博文量
    25
  • 访问量
    24813