写点什么

在 Apache Hadoop 中使用 Rhino 项目进行数据加密-Steven Ross 专访

  • 2014-08-24
  • 本文字数:2281 字

    阅读完需:约 7 分钟

Cloudera 最近发布了一条关于 Rhino 项目 Apache Hadoop 中静态数据(data at-rest)加密的新闻。Rhino 项目是由Cloudera、Intel 和Hadoop 社区合力打造的一个项目。这个项目旨在为数据保护提供一个全面的安全框架。

Hadoop 中的数据加密有两方面:静态数据,存在持久存储器上的数据,如硬盘;传输数据,数据从一个进程或系统传输到另一个进程或系统。大部分 Hadoop 组件提供了对传输数据加密的功能,但是不支持对静态数据进行加密。安全监管机构,如 HIPAA、PCI DSS 和 FISMA,也提倡要注意数据保护和加密。

Rhino 项目为 HBase 0.98 贡献了关键的安全特性。它提供了数据单元(cell)级别的加密和细粒度访问权限控制的功能。

InfoQ 最近和 Cloudera 安全部门的产品经理 Steven Ross 进行了交谈,了解到了 Rhino 项目的更多信息。

InfoQ:Rhino 项目是何时启动的?这个项目的目标是什么?

Steven Ross:为了推动一个全面的、用于 Apache Hadoop 数据保护的安全框架的开发,Intel 在 2013 年早期发起了 Rhino 项目的倡议,并为项目制定了几个大目标:

  • 利用硬件提升加密性能
  • 为 Hadoop 支持企业级认证和单点登录服务
  • 为 Hadoop 提供基于角色的访问权限控制功能,并在 HBase 中支持数据单元粒度的权限控制
  • 确保对 Apache Hadoop 重要组件的一致性审查

InfoQ:Rhino 项目是一个综合性项目。Apache Sentry 也被包含在 Rhino 项目中。Rhino 包含了哪些不同的子项目,能请你分享一些这些项目的细节吗?

SR:在 2013 年的夏天,Cloudera 发布的开源软件成为 Apache Sentry 项目(孵化中)的基础。这个项目得到了 Oracle、IBM 和 Intel 工程师们的鼎力相助。Apache Sentry 为 Hadoop 集群的数据和元数据提供了细粒度的认证支持,并且已经被一些大型企业部署在产品中。

Cloudera 和 Intel 有着战略伙伴关系。来自两个团队的安全架构师和工程师都已重申了加速对 Apache Hadoop 安全功能开发的承诺。为 Apache Hadoop 开发出更健壮的认证机制,Rhino 项目和 Apache Sentry 的目标是完全一致的。两家公司的安全专家的成果已经被合并在一起,并且他们现在在这两个项目上都有投入。

InfoQ:Apache Sentry 是个什么样的项目?

SR: Apache Sentry (孵化中)是一个高度模块化的系统。它为存储在 Apache Hadoop 集群中的数据和元数据提供了细粒度的、基于角色的认证功能。

Hadoop 生态圈中的项目有着各自不同的、需要单独配置的认证系统。Hadoop 的灵活性使得生态圈中不同的项目(如 Hive、Solr、MapReduce,Pig)能访问相同的数据。由于每个项目的认证配置都是独立的,管理员很可能在企图保证策略一致的情况下得到不一致的、相重叠的策略。

Sentry 提供了一套集中的策略。这套策略能被应用于许多不同的访问途径。通过这个方法,Sentry 解决了这个 IT 管理和安全上的挑战。因此,IT 管理员能够对数据集进行权限设置。并且知道无论通过何种途径访问数据,这些权限控制都会得到一致地执行。

Sentry 的技术细节:

Sentry 通过一组特权,如 SELECT 和 INSERT,控制着对 Hive Metastore 中每个 schema 对象的访问。schema 对象是数据管理中常见的实体,例如 SERVER、DATABASE、TABLE、COLUMN 和 URI,也就是 HDFS 中文件的位置。Cloudera Search 有它自己的一组特权(如 QUERY)和对象(如 COLLECTION)。

和 IT 团队已经熟悉的其他 RBAC 系统一样,Sentry 提供了:

  • 有层次结构的对象,自动地从上层对象继承权限;
  • 包含了一组多个对象 / 权限对的规则;
  • 用户组可以被授予一个或多个角色;
  • 用户可以被指定到一个或多个用户组中。

Sentry 通常被配制成默认不允许访问服务和数据。因此,在被划分到设有指定访问角色的用户组之前,用户只有有限的权限访问系统。

InfoQ:什么是高级加密标准新指令(Advanced Encryption Standard New Instructions,AES-NI)?它和 Rhino 项目有什么关系?

SR:Intel AES-NI 是 Intel Xeon 处理器系列和 Intel Core 处理器系列中新的加密指令集。它对高级加密标准(AES)算法进行了改进,并提高了数据的加密速度。

当启用加密时,企业主要关心的是 CPU 所需的“开销”。这些“开销”会导致数据的存储和获取操作变慢。AES-NI 将加密处理的工作交由专门的硬件负责。这个硬件能够更快地完成加密和解密操作,从而减小 CPU 的负载。

AES-NI 对 Rhino 项目中那些加密子项目的成功起到了重要的作用。然而并没有要求使用 HDFS 加密的 Hadoop 用户必须使用 Intel 芯片或者 AES-NI。尽管这些技术确实能在开启加密时改善加密 / 解密的性能,降低对系统性能的影响。

InfoQ:Rihno 项目未来的路线图是什么样的?

SR:下一步,Rhino 项目的大目标很可能保持不变。而其下的子项目(这些子项目通常会以两种形式存在,Apache 项目或者已存在项目中的一些 JIRA)有可能会逐步发展。在达到 HBase 细粒度安全(如上所述)的里程碑后,另两个子项目当前正在势头上:

  • HDFS 静态数据的加密。
  • 统一认证:致力于提供一套强制执行的访问策略,且不关心用户访问数据的方式,不论是 Hive、MapReduce 或其他访问途径。这项工作正在通过 Apache Sentry 项目完成。

所有集成工作已经完成,整个解决方案的测试和文档编写工作也已全面完成。

Rhino 项目实现了 Apache Hadoop(以及其他相关的 Apahce 项目)一部分的子项目。 CDH 捆绑了 Apache Hadoop 和生态圈中其他相关的项目。

查看英文原文: Data Encryption in Apache Hadoop with Project Rhino - Q&A with Steven Ross


感谢赵震一对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-08-24 08:453108

评论

发布
暂无评论
发现更多内容

城市生态的机器人革命

脑极体

创业失败启示录|校园微生活(故事篇3)

阿萌

28天写作 创业失败启示录 青城

LeetCode题解:105. 从前序与中序遍历序列构造二叉树,递归+数组切割,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

测试一年多,上线就崩溃!微服务到底应该怎么测试?

阿里巴巴中间件

中间件

28天瞎写的第二百一七天:你们 CentOS 服务器还有图形界面啊?

树上

28天写作

不要用+""代替强转

BerryMew

【计算机内功修炼】五:从小白到高手,你需要理解同步与异步

码农的荒岛求生

异步 同步 回调函数

玩一玩Linux常见命令第二篇

程序员的时光

程序员 28天写作

【TF2系列笔记】Day01:在VSCode中创建开发环境

IT蜗壳-Tango

七日更 TF2

简单三招,每个管理者都可以成为有温度的共情高手

一笑

沟通与管理 28天写作

pub哥的2020文章清单

JavaPub

Java javapub

为什么我们需要自动化回归?

阿里巴巴中间件

中间件

油车和电车比到底哪个整体能源利用效率高?(28天写作 Day6/28)

mtfelix

自动驾驶 28天写作 电动汽车

Docker真的被Kubernetes放弃了吗?

蔡超

Docker Kubernetes 云原生

HBase 底层原理详解(深度好文,建议收藏)

五分钟学大数据

大数据 HBase

生产环境全链路压测建设历程 28:FAQ 之 混沌工程

数列科技杨德华

28天写作

关于焦虑的思考

.

28天写作

醒醒!Python已经支持中文变量名啦!

Python猫

Python

28 天带你玩转 Kubernetes-- 第六天(玩转 Docker命令)

Java全栈封神

Docker k8s 28天写作 docker命令

读书笔记:《中产阶级如何保护自己的财富》

lidaobing

28天写作 中产阶级如何保护财富

欢迎来到机器人的打工时代「幻想短篇 6/28」

道伟

28天写作

项目管理系列(2)-如何写好一份报告

Ian哥

项目管理 28天写作

数据结构与算法-时间和空间复杂度

Byte_Panda

算法

Swift 算法-栈

Byte_Panda

算法

RocketMQ中的事务消息

废材姑娘

RocketMQ

[4/28]保障产品高质量交付业务价值

L3C老司机

大流量场景下如何云淡风轻地进行线上发布?

阿里巴巴中间件

读《快手要上市了》,一起了解快手

李忠良

开源 技术 28天写作

Spring 源码学习 14:initApplicationEventMulticaster、onRefresh 和 registerListeners

程序员小航

spring 源码 源码阅读

《适用于初学者的Python》

计算机与AI

精选算法面试-数组(二分查找)

李孟聊AI

面试 算法 数组 28天写作

在Apache Hadoop中使用Rhino项目进行数据加密-Steven Ross专访_安全_Abhishek Sharma_InfoQ精选文章