Hadoop Security三板斧

前言


在企业大规模量级的Hadoop集群中,数据的安全性是十分重要的,尤其当集群存储的是一些敏感数据的时候。Hadoop社区在早期release的版本中,并没有完善好其Security部分的功能。但是随着Hadoop系统的不断完善成熟,Security的功能也在不断的完善。那么问题来了,Hadoop的Security到底指的是什么呢?本文笔者来简单聊聊Hadoop Security的三板斧,了解了这三板斧的内容,我们大致就能明白Hadoop Security到底说的是什么了。

Hadoop Security要解决的问题


首先我们要明确这样几个问题,对于集群数据的安全性,Hadoop Security要解决以下的一些问题:

  • 我是谁—我是否是合法的用户去访问集群的数据。
  • 我能做什么—我是否有被授权对数据进行操作。
  • 我做过什么—我曾经对某些数据文件进行了何种操作。
  • 我是否能对数据进行加密。

Hadoop Security主要就是干了上面这4个事情,其中对于第三点“我做过什么”的实现,这个比较容易,通过audit log的方式进行记录即可。这里我们主要来聊聊其它三点。

Hadoop Security三板斧


这里我们来聊聊Hadoop Security的三板斧,三板斧如下图所示:
在这里插入图片描述
第一个问题,”我是谁“的问题。这个问题其实是要解决用户的认证(authentication)问题,Hadoop在这里采用的是Kerberos认证协议。这里对应上图01的方法。

第二个问题,”我能做什么”的问题。这个问题涉及到的是用户操作授权(authorization)的问题。Hadoop内部采用的方法是通过赋值文件目录对应的permission以及ACL限制来做用户操作的授权。经过Kerberos认证的用户在无权进行文件目录操作的时候,仍然将无法访问到数据。这里对应上图的03。

第三个问题,“我是否能对数据进行加密”的问题。这个问题讨论的是底层物理数据加密的问题。物理数据的加密可以有效防止数据文件被恶意登录直接访问,比如用户登录到存储节点,绕开Hadoop内部的安全认证,直接访问实际物理文件,造成数据的泄漏。Hadoop社区在这里提出了transparent encryption的概念,意为HDFS的数据透明加密。数据的加解密过程在客户端进行,但这个过程对客户端用户应用逻辑来说是完全透明的。

HDFS透明加密过程图如下,过程中涉及NameNode,Client和Hadoop KMS服务的交互。
在这里插入图片描述

综上认证,授权外加数据加密,构成了Hadoop Security的三板斧,关于Kerberos认证和HDFS透明加密,感兴趣的同学可继续进行更为详细的学习了解。

参考资料


[1]. https://data-flair.training/blogs/hadoop-security/
[2]. http://bdlabs.edureka.co/static/help/topics/cdh_sg_hdfs_encryption.html

猜你喜欢

转载自blog.csdn.net/Androidlushangderen/article/details/114537980