大数据集群被窃取数据怎么办?透明加密可以一试
摘要:传统大数据集群中,用户数据明文保存在 HDFS 中,集群的维护人员或者恶意攻击者可在 OS 层面绕过 HDFS 的权限控制机制或者窃取磁盘直接访问用户数据。
本文分享自华为云社区《FusionInsight MRS透明加密方案》,作者: 一枚核桃 。
概述
传统大数据集群中,用户数据明文保存在 HDFS 中,集群的维护人员或者恶意攻击者可在 OS 层面绕过 HDFS 的权限控制机制或者窃取磁盘直接访问用户数据。
FusionInsight MRS 引入了 Hadoop KMS 服务并进行增强,通过对接第三方 KMS,可实现数据的透明加密,保障用户数据安全。
HDFS 支持透明加密,Hive、HBase 等在 HDFS 保存数据的上层组件也将通过 HDFS 加密保护,加密密钥通过 HadoopKMS 从第三方 KMS 获取。
对于 Kafka、Redis 等业务数据直接持久化存储到本地磁盘的组件,通过基于 LUKS 的分区加密机制保护用户数据安全。
HDFS 透明加密
HDFS 透明加密支持 AES、SM4/CTR/NOPADDING 加密算法,Hive、HBase 使用 HDFS 透明加密做数据加密保护。SM4 加密算法由 A-LAB 基于 OpenSSL 提供。
加密使用的密钥从集群内的 KMS 服务获取,KMS 服务支持基于 Hadoop KMS REST API 对接第三方 KMS。
一套 FusionInsight Manager 内部署一个 KMS 服务,KMS 服务到第三方 KMS 使用公私钥认证,每个 KMS 服务在第三方 KMS 对应拥有一个 CLK。
在 CLK 下可以申请多个 EZK,与 HDFS 上的加密区对应,用于加密数据加密密钥,EZK 在第三方 KMS 中持久化保存。
DEK 由第三方 KMS 生成,通过 EZK 加密后持久化保存到 NameNode 中,使用的时候使用 EZK 解密。
CLK 和 EZK 两层密钥可以轮转。CLK 作为每个集群的根密钥,在集群侧不感知,轮转完全由第三方 KMS 控制管理。EZK 可通过 FI KMS 管理,轮转在 FI KMS 可控制管理,同时第三方 KMS 管理员拥有 KMS 内密钥的管理能力,也可以做 EZK 的轮转。
LUKS 分区加密
对于 Kafka、Redis 等业务数据直接持久化存储到本地磁盘的组件,FusionInsight 集群支持基于 LUKS 的分区加密进行敏感信息保护。
FusionInsight 安装过程的脚本工具使用 Linux 统一密钥设置(Linux Unified Key Setup,简称 LUKS)分区加密方案,该方案加密分区时会在集群每个节点生成或者从第三方 KMS 获取访问密钥,用于加密数据密钥,以保护数据密钥安全性。磁盘分区加密后,重启操作系统或者更换磁盘场景下,系统能够自动获取密钥并挂载或创建新的加密分区。
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/804f1bbb8b6f99d2f84887067】。文章转载请联系作者。
评论