HDFS加密存储(Ranger集成KMS方式)
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 "simple"or "kerberos".</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方式)相关推荐
- 用户密码在后台数据库中加密存储方式
常见的用户密码在后台数据库中加密存储方式 如何安全的存储用户密码 常见登录密码加密方式 JavaScript逆向实战:admin加密成WaQ7xbhc9TefbwK是什么加密算法?逆向思维考验.详细流 ...
- 8、HDFS内存存储策略支持和“冷热温”存储
Hadoop系列文章目录 1.hadoop3.1.4简单介绍及部署.简单验证 2.HDFS操作 - shell客户端 3.HDFS的使用(读写.上传.下载.遍历.查找文件.整个目录拷贝.只拷贝文件.列 ...
- Kubernetes 中的 Secret加密存储
目录 前言 sealed-secrets是什么 安装部署 安装kubeseal 安装控制器 测试 安装web-ui web-ui官网地址 使用helm直接安装 缺点 前言 在使用Kubernetes的 ...
- FCD网站服务器加密,AWS S3 应用 KMS Key 进行服务端数据加密
当我们把数据搬上云端,为了保护敏感数据一定要对数据存储进行加密.而对于 S3 上的数据加密最简单莫过于启用服务端数据加密,可以是 AES-256 或 AWS-KMS.进行了服务端加密码的文件有什么不同 ...
- 用户密码加密存储十问十答,一文说透密码安全存储
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者 | 程序员赵鑫 来源 | cnblogs.com/xinzh ...
- SpUtil多样加密存储,兼容android9.0
代码地址如下: http://www.demodashi.com/demo/15058.html ####前言 在android系统不断升级的过程中,Sharepreferences存储出现多中问题, ...
- mes系统和plc通讯案例_MES系统与PLC数据集成主要方式
现在工业化在迅速的发展,当然在发展过程中是离不开系统和软件的辅助,其中MES系统,ERP软件,PLC数据集成对企业有重要作用.那么MES系统与PLC数据集成主要方式有哪些? 方式1:定期抓取数据 因为 ...
- HDFS依旧是存储的王者
为何说HDFS是存储的王者呢? 让我们带着这个问题来了解HDFS的架构与原理,我一直认为学习大数据最好的方法就是看官网. 所以对初学者来说一定要多看官网,哪怕你看不懂英文,也要用软件翻译过来看. 首先 ...
- Windows版微信加密存储图片的解密工具GUI程序
摘要 摘要:本文主要对PC版微信的图片存储加密方式进行了研究,通过探讨图片文件中文件头信息中保存的文件标识字符数据得过程,得出了解密还原为正常图片的方式.并采用UI与业务逻辑分离的模式设计了对非程序员 ...
最新文章
- 阿里某员工哀叹:头条的文档太混乱!阿里的文档读起来舒服!
- php 数组转目录树,PHP根据路径数组转成一个目录树
- 代码规范(一)——java篇
- MySQL weekday()函数
- Oracle小复习(1)
- A Bit of Fun
- 解密朋友圈红包照片功能
- 63. Event button 事件属性
- Linux开机加载新内核,linux-kernel – 为什么加载内核地址,ramdisk在启动时很重要?...
- Android-LayoutInflater布局文件解析过程分析
- easyui基本布局
- 思科三层交换机不同vlan互通_Cisco三层交换机实现不同vlan之间的通信
- 小米手机play商店无法下载
- TP90、TP95、TP99性能指标含义及计算
- 地铁客流量分析可视化演示系统(附代码)
- 计算机网络笔试面试常考
- 这就是区块链开源底层软件平台——长安链ChainMaker
- 计算机二级选择题笔记百度云,计算机二级题库及计算机二级ms office 复习笔记.doc...
- 如何通过限制 IP 相关信息 | 控制用户访问站点频率
- 批量挖sql注入漏洞