Hadoop KMS配置(HDFS透明加密)

superjack2發表於2020-06-06


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://blog.csdn.net/eyoulc123/article/details/78104054

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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31537832/viewspace-2696692/,如需轉載,請註明出處,否則將追究法律責任。

相關文章