欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > CDP集群安全指南-静态数据加密

CDP集群安全指南-静态数据加密

2025/7/5 10:23:54 来源:https://blog.csdn.net/LUOHU11/article/details/144848909  浏览:    关键词:CDP集群安全指南-静态数据加密

[一]静态数据加密的架构

CDP 支持两种加密组件,这些组件可以组合成独特的解决方案。在选择密钥管理系统(KMS)时,您需要决定哪些组件能够满足企业的密钥管理和加密需求。

CDP 加密组件

以下是 Cloudera 用于静态数据加密的组件描述:

  1. Ranger Key Management System (KMS)
    Ranger 扩展了 Hadoop 原生 KMS 的功能,允许将密钥存储在安全的数据库中。它是一个支持 HDFS TDE(透明数据加密)的密码密钥管理服务,但并非通用密钥管理系统。与 Hadoop KMS 不同,Hadoop KMS 将密钥存储在基于文件的 Java Keystore 中,仅能通过 KeyProvider API 访问。

  2. Navigator Encrypt
    提供透明的静态数据加密和保护,无需对应用程序进行更改。


CDP​​​​​​​ 加密解决方案

您可以通过以下任意解决方案部署加密组件来实现静态数据加密:

  1. 仅使用 Ranger KMS(本文演示使用这种方式)

    • 仅由 Ranger KMS 和提供密钥存储的后端数据库组成。
    • Ranger KMS 提供企业级密钥管理。
  2. Ranger KMS + HSM(硬件安全模块)

    • 包含 Ranger KMS(带数据库)和与后端硬件安全模块(HSM)的集成。
    • Ranger KMS 提供企业级密钥管理。
    • HSM 提供加密区密钥保护,仅存储加密主密钥。

[二]静态数据加密的要求

熵要求

加密操作依赖熵来确保随机性,而随机性是防止攻击者预测或破解加密过程的关键。如果随机数缺乏足够的熵,整个加密系统的安全性就会受到威胁。因此,熵在加密中起着至关重要的作用。您可以通过运行以下命令来检查 Linux 系统上的可用熵:

cat /proc/sys/kernel/random/entropy_avail

该命令的输出会显示当前可用的熵值。建议多次检查熵值,以确定系统熵池的状态。如果熵值持续较低(500 或更少),则需要通过安装 rng-tools 并启动 rngd 服务来增加熵值。

【提醒】由于最近的 Linux 内核更改,内核报告的 entropy_avail 值将始终为 256。如果您更改了“主机熵阈值”(Host Entropy Thresholds)的默认设置,这可能会导致错误警报的触发。因此,您需要将这些阈值更改为反映 entropy_avail 为 256 的实际情况。

Ranger KMS 安全需求

最低推荐硬件配置如下:

  • 处理器:1 GHz 64 位四核处理器
  • 内存:8 GB RAM
  • 存储:20 GB 存储空间,建议使用中等至高性能的磁盘驱动器

有关支持的 Linux 发行版的信息,请参阅《Cloudera Navigator Encryption 产品兼容性矩阵》。

Ranger KMS 的工作负载对 CPU 要求较高。Cloudera 建议使用与您的 NameNode 主机相当性能的机器,特别是配备支持 AES-NI 的 Intel 处理器,以实现最佳性能。此外,Cloudera 强烈建议为 HDFS 和 Ranger 服务启用 TLS,以防止在 KMS 和 HDFS 数据节点之间传输明文密钥数据。

[三]安装配置Ranger KMS

1-添加服务

2-选择依赖

3-分配角色

4-数据库设置

CREATE DATABASE rangerkms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'rangerkms'@'%' IDENTIFIED WITH mysql_native_password BY '!edc4rfVrangerkms'; 
GRANT ALL PRIVILEGES ON rangerkms.* TO 'rangerkms'@'%';

5-审核更改

6-命令详细信息

7-汇总

8-重启集群并部署客户端配置

【重要提醒】Ranger 为 Ranger 和 Ranger KMS 使用了独立的管理员用户。

  • Ranger 管理员用户负责管理 Ranger 的访问策略。
  • Ranger KMS 管理员用户(默认是 keyadmin)负责管理 Ranger KMS 的访问策略和加密密钥,并可以访问与 Ranger 管理员用户不同的一组用户界面功能。

为 Ranger 和 Ranger KMS 使用独立的管理员账户,可以将加密工作(如加密密钥和策略)与集群管理和访问策略管理分离开来。

[四]-管理一个加密区

1-测试加密优化是否有效

[root@cdp73-1 lib]# hadoop checknative
24/12/31 01:47:56 INFO bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native
24/12/31 01:47:56 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
24/12/31 01:47:56 WARN erasurecode.ErasureCodeNative: ISA-L support is not available in your platform... using builtin-java codec where applicable
Native library checking:
hadoop:  true /home/opt/cloudera/parcels/CDH-7.3.1-1.cdh7.3.1.p0.60371244/lib/hadoop/lib/native/libhadoop.so.1.0.0
zlib:    true /lib64/libz.so.1
zstd  :  true /home/opt/cloudera/parcels/CDH-7.3.1-1.cdh7.3.1.p0.60371244/lib/hadoop/lib/native/libzstd.so.1
bzip2:   true /lib64/libbz2.so.1
openssl: true /lib64/libcrypto.so
ISA-L:   false libhadoop was built without ISA-L support
[root@cdp73-1 lib]#

如果您在 openssl 行中看到 true,说明 Hadoop 已检测到正确版本的 libcrypto.so,加密优化将正常工作。如果您在该行中看到 false,说明您没有安装正确的版本。

2-创建加密用的key

[root@cdp73-1 lib]# kinit keyadmin
Password for keyadmin@BIGDATACDP.COM:
Warning: Your password will expire in less than one hour on Mon 13 Sep 2100 10:48:05 PM EDT
[root@cdp73-1 lib]# hadoop key create keytrustee_test
keytrustee_test has been successfully created with options Options{cipher='AES/CTR/NoPadding', bitLength=128, description='null', attributes=null}.
org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider@3d5c822d has been updated.
[root@cdp73-1 lib]# hadoop key list
Listing keys for KeyProvider: org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider@2f8dad04
keytrustee_test
[root@cdp73-1 lib]#

3-创建加密区

[root@cdp73-1 lib]# kinit hdfs
Password for hdfs@BIGDATACDP.COM:
Warning: Your password will expire in less than one hour on Mon 13 Sep 2100 10:48:05 PM EDT
[root@cdp73-1 lib]# hadoop fs -mkdir /encryption_zone
[root@cdp73-1 lib]# hdfs crypto -createZone -keyName keytrustee_test  -path /encryption_zone
Added encryption zone /encryption_zone
[root@cdp73-1 lib]# hdfs crypto -listZones
/encryption_zone  keytrustee_test
[root@cdp73-1 lib]#

这样任何上传到hdfs/encryption_zone目录下的文件都是被加密的状态

【重要提醒】默认情况下,distcp 使用文件系统提供的校验和(checksum)来验证数据是否成功复制到目标位置。然而,当从加密位置复制时,文件系统的校验和将不匹配,因为底层块数据不同。这无论目标位置是否加密,情况都相同。在这种情况下,您可以指定 -skipcrccheck 和 -update 标志以跳过校验和验证。使用 -skipcrccheck 时,distcp会在每个文件复制完成后,通过文件大小比较来检查文件完整性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词