1、什么是HDFS透明加密?

HDFS Encryption Zone加密空间,即HDFS透明加密,是一种端到端的加密模式,其中的加/解密过程对于客户端来说是完全透明的。数据在客户端读操作的时候被解密,当数据被客户端写的时候被加密,所以HDFS服务端本身并不是一个主要的参与者。形象地说,在HDFS服务端,你看到的只是一堆加密的数据流。

这个功能作用就是保证处于加密空间内的数据不被非法查询,只有经过认证的客户端才能查看解密内容

2、Hadoop Key Management Server (KMS)

Hadoop KMS是一个基于Hadoop KeyProvider API的加密密钥管理服务器。它提供了一个使用REST API通过HTTP进行通信的客户端和服务器组件。客户端是一个KeyProvider实现与KMS交互使用KMS HTTP REST API。KMS及其客户端具有内置的安全性,它们支持HTTP SPNEGO Kerberos身份验证和HTTPS安全传输。KMS是一个Java Jetty网络应用程序。

3、Ranger 集成KMS

1、${rangerhome}/ranger-kms/install.properties设置如下

2、install/lib中添加commons-lang3-3.4.jar和 commons-compress-1.19.jar (这是因为安装时报了相关jar包缺失的问题,没有包相关异常,不必做这一步)

3、/opt/beh/core/ranger/ranger-kms/ews/webapp/lib/curator-.jar替换成与${hadoop}/share/hadoop/common/lib中的一致。(这一步同样报了异常才进行,这里报的是curator-.jar包冲突)
4、修改配置文件dbks-site.xml、kms-site.xml及hdfs-site.xml
4.1 dbks-site.xml文件

  <property><name>ranger.ks.jpa.jdbc.password</name><value>123456</value></property><property><name>ranger.ks.jpa.jdbc.url</name><value>jdbc:log4jdbc:mysql://数据库ip:3306/kms_82</value></property><property><name>ranger.ks.jpa.jdbc.user</name><value>root</value></property>

4.2 kms-site.xml文件

 <property><name>hadoop.kms.key.provider.uri</name><value>dbks://http@hadoop01.bonc.com:9292/kms</value><description>URI of the backing KeyProvider for the KMS.</description></property><property><name>hadoop.kms.authentication.type</name><value>kerberos</value><description>Authentication type for the KMS. Can be either &quot;simple&quot;or &quot;kerberos&quot;.</description></property><property><name>hadoop.kms.authentication.kerberos.keytab</name><value>/opt/beh/metadata/key/hadoop.keytab</value><description>Path to the keytab with credentials for the configured Kerberos principal.</description></property><property><name>hadoop.kms.authentication.kerberos.principal</name><value>HTTP/hadoop01.bonc.com@BONC.COM</value><description>The Kerberos principal to use for the HTTP endpoint.The principal must start with 'HTTP/' as per the Kerberos HTTP SPNEGO specification.</description></property>

4.3 ${hadoop}/etc/hadoop/core-site.xml配置文件添加以下配置
注:需重启hdfs

<property><name>hadoop.security.key.provider.path</name>
<value>kms://http@hadoop01.bonc.com:9092/kms</value><description>The KeyProvider to use when interacting with encryption keys usedwhen reading and writing to an encryption zone.</description>
</property

5、执行./setup.sh安装ranger-kms.
6、执行ranger-kms start启动ranger-kms
7、添加key

8、keyadmin用户登录Ranger配置kmsdev服务,保存。

9、rangeradmin、hadoop、keyadmin用户授权

若没有rangeradmin用户则添加rangeradmin用户

10、测试连接

11、测试HDFS加密
11.1 查看key信息

11.2 创建空目录(hadoop用户)

hadoop fs -mkdir /jxtest

11.3 创建加密区间

hdfs  crypto -createZone -keyName key -path /jxtest

11.4 查看加密区间内容

hadoop fs -cat  /jxtest/users.txt

此时能正常查看
11.5 剔除hadoop用户

此时不能正常查看

**

Ranger集成KMS采坑记录

**
1、执行setup.sh安装ranger-kms报jar包缺失问题
解决方案:在/opt/beh/core/ranger/ranger-kms/install/lib中添加commons-compress-1.19.jar和 commons-lang3-3.4.jar包。
2、启动ranger-kms时报NoSuchMethodError
org.apache.curator.framework.api.CreateBuilder.creatingParentsIfNeeded()Lorg/apache/curator/framework/api/ProtectACLCreateModeStatPathAndBytesable


解决方案:版本冲突导致,8.2版本仓库中curator-*的jar包相关版本如下。

但是ranger-kms中的curator-*版本如下。

將ranger-kms中的curator-*的jar包版本統一为4.2.0
3、执行ranger-kms 启动在
/opt/beh/core/ranger/ranger-kms/ews/webapp/WEB-INF/classes/conf/ranger-kms-env-hadoopconfdir.sh文件中报错

export RANGER_HADOOP_CONF_DIR=2022-04-14 17:30:44,912  [E] 'hadoop_conf' not found in /opt/beh/core/ranger/ranger-kms/install.properties file while getting....!!

修改/opt/beh/core/ranger/ranger-kms/install.properties中的下列配置,指定hadoop配置文件目录

4、在Ranger中测试连接时报以下异常,授予rangeradmin相应权限即可。

org.apache.ranger.plugin.client.HadoopException: {"RemoteException" : {"message" : "User:rangeradmin not allowed to do 'GET_KEYS'","exception" : "AuthorizationException","javaClassName" : "org.apache.hadoop.security.authorize.AuthorizationException"}
}.

keyadmin用户登录ranger设置如下。

HDFS加密存储(Ranger集成KMS方式)相关推荐

  1. 用户密码在后台数据库中加密存储方式

    常见的用户密码在后台数据库中加密存储方式 如何安全的存储用户密码 常见登录密码加密方式 JavaScript逆向实战:admin加密成WaQ7xbhc9TefbwK是什么加密算法?逆向思维考验.详细流 ...

  2. 8、HDFS内存存储策略支持和“冷热温”存储

    Hadoop系列文章目录 1.hadoop3.1.4简单介绍及部署.简单验证 2.HDFS操作 - shell客户端 3.HDFS的使用(读写.上传.下载.遍历.查找文件.整个目录拷贝.只拷贝文件.列 ...

  3. Kubernetes 中的 Secret加密存储

    目录 前言 sealed-secrets是什么 安装部署 安装kubeseal 安装控制器 测试 安装web-ui web-ui官网地址 使用helm直接安装 缺点 前言 在使用Kubernetes的 ...

  4. FCD网站服务器加密,AWS S3 应用 KMS Key 进行服务端数据加密

    当我们把数据搬上云端,为了保护敏感数据一定要对数据存储进行加密.而对于 S3 上的数据加密最简单莫过于启用服务端数据加密,可以是 AES-256 或 AWS-KMS.进行了服务端加密码的文件有什么不同 ...

  5. 用户密码加密存储十问十答,一文说透密码安全存储

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者 | 程序员赵鑫 来源 | cnblogs.com/xinzh ...

  6. SpUtil多样加密存储,兼容android9.0

    代码地址如下: http://www.demodashi.com/demo/15058.html ####前言 在android系统不断升级的过程中,Sharepreferences存储出现多中问题, ...

  7. mes系统和plc通讯案例_MES系统与PLC数据集成主要方式

    现在工业化在迅速的发展,当然在发展过程中是离不开系统和软件的辅助,其中MES系统,ERP软件,PLC数据集成对企业有重要作用.那么MES系统与PLC数据集成主要方式有哪些? 方式1:定期抓取数据 因为 ...

  8. HDFS依旧是存储的王者

    为何说HDFS是存储的王者呢? 让我们带着这个问题来了解HDFS的架构与原理,我一直认为学习大数据最好的方法就是看官网. 所以对初学者来说一定要多看官网,哪怕你看不懂英文,也要用软件翻译过来看. 首先 ...

  9. Windows版微信加密存储图片的解密工具GUI程序

    摘要 摘要:本文主要对PC版微信的图片存储加密方式进行了研究,通过探讨图片文件中文件头信息中保存的文件标识字符数据得过程,得出了解密还原为正常图片的方式.并采用UI与业务逻辑分离的模式设计了对非程序员 ...

最新文章

  1. 阿里某员工哀叹:头条的文档太混乱!阿里的文档读起来舒服!
  2. php 数组转目录树,PHP根据路径数组转成一个目录树
  3. 代码规范(一)——java篇
  4. MySQL weekday()函数
  5. Oracle小复习(1)
  6. A Bit of Fun
  7. 解密朋友圈红包照片功能
  8. 63. Event button 事件属性
  9. Linux开机加载新内核,linux-kernel – 为什么加载内核地址,ramdisk在启动时很重要?...
  10. Android-LayoutInflater布局文件解析过程分析
  11. easyui基本布局
  12. 思科三层交换机不同vlan互通_Cisco三层交换机实现不同vlan之间的通信
  13. 小米手机play商店无法下载
  14. TP90、TP95、TP99性能指标含义及计算
  15. 地铁客流量分析可视化演示系统(附代码)
  16. 计算机网络笔试面试常考
  17. 这就是区块链开源底层软件平台——长安链ChainMaker
  18. 计算机二级选择题笔记百度云,计算机二级题库及计算机二级ms office 复习笔记.doc...
  19. 如何通过限制 IP 相关信息 | 控制用户访问站点频率
  20. 批量挖sql注入漏洞

热门文章

  1. FTT NTT 分治FFT
  2. linux添加HP网络打印机,在Ubuntu 18.10系统下安装HP网络打印机的方法
  3. Unity与服务器通信方式有哪些?
  4. 读懂SIEM建设?看这篇就够了!
  5. codeforces 1598 A
  6. arm push/pop/b/bl汇编指令
  7. 史玉柱和郭广昌谈创业团队管理:两种类型的“孔雀王”
  8. JavaWeb HTML
  9. 安卓调用手机自带的浏览器
  10. oracle如果为0显示为1,解决Oracle的数值0.1只显示成.1问题