zoukankan      html  css  js  c++  java
  • Hadoopkms加密

    一、目的:保证数据安全 
    二、简介:
          Hadoop Key Management Server(KMS)是一个基于HadoopKeyProvider API编写的密钥管理服务器。他提供了一个client和一个server组件,client和server之间基于HTTP协议使用REST API通信。Client是一个KeyProvider的实现,使用KMS HTTP REST API与KMS交互。KMS和它的client有内置的安全机制,支持HTTP SPNEGO Kerberos认证和HTTPS安全传输。KMS是一个Java Web应用程序,运行在与Hadoop发行版绑定在一起的预先配置好的Tomcat服务器上。
      HDFS 实现透明,端到端加密。配置完成后,用户往hdfs上存储数据的时候,无需用户做任何程序代码的更改(意思就是调用KeyProvider API ,用于在数据存入到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>
    以上两项配置结束后,重启Hadoop,之后变更仅重启kms服务即可。

    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_LOG=${KMS_HOME}/logs/kms

    export KMS_HTTP_PORT=16000

    export KMS_ADMIN_PORT=16001

    三、创建秘钥

    keytool -genkey  -alias 'key2'

    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:

    四、重启kms
    kms.sh start

    查看kms是否开启成功,有下面的红色的表示成功

    jps

    五、创建加密区

    hadoop key create user_a_key      #user_a_key为上面通过keytool创建的

    hadoop key list   #查看key详细信息

    下面表示有四个,分别是user_a_key、key2、abc、key1

    hadoop fs -mkdir /sub_key2     #创建文件目录

    hdfs crypto -createZone -keyName key2 -path /sub_key2  #---将sub_key2目录用key2加密

    hdfs crypto -listZones      #---查看已加密区域

    六.测试
        向加密区添加文件,然后具体磁盘上看到数据已经加密。

    数据存放在:/tmp/hadoop-root/dfs/data/current/BP-1866606423-192.168.228.13-1538973674360/

    finalized/subdiro/subdiro/blk..........

    -------------温馨提示错误查看日志

    cd /usr/local/hadoop/logs
     

  • 相关阅读:
    团队作业2——需求分析&原型设计
    团队作业1——团队展示&选题
    201521123062 《Java程序设计》第3周学习总结
    201521123062《Java程序设计》第2周学习总结
    201521123062《Java程序设计》第1周学习总结
    201521123060《Java程序设计》第2周学习总结
    201521123060《Java程序设计》第1周学习总结
    201521123059 《Java程序设计》第二周学习总结
    201521123059 《Java程序设计》第一周学习总结
    java第七次作业
  • 原文地址:https://www.cnblogs.com/pigdata/p/10305608.html
Copyright © 2011-2022 走看看