如何控制对hdfs的访问?

时间:2018-05-17 13:29:50

标签: hadoop hive hdfs


我的群集上安装了HDP 2.4。 比方说,我有一个包含敏感列的表(Table_1)。我可以创建一个仅包含非敏感数据的视图(V_Table_1),在Ranger中创建策略并授予对Table_1或V_Table_1的访问权限。 它将使用直线工作。 但是,如果有人可以直接访问hdfs,或者即使使用Spark,也无法工作。

是否有任何方法(或最佳做法)来控制对存储在hdfs上的数据的访问?

HPD 2.6中的Apache Atlas能否完成这项工作?

2 个答案:

答案 0 :(得分:0)

首先,确保Hadoop安全性的唯一真正方法是启用Kerberos。然后针对您的敏感数据审核任何和所有HDFS操作。

  

但如果有人可以直接访问hdfs,或者即使使用Spark

,它也无法运行

如果您让用户通过HADOOP_USER_NAME冒充他人,那么他们可能能够访问内容,但HDFS ACL应该可以防止这种情况发生。

否则,Ranger会将代码注入Hive驱动程序(也可能是Spark)以掩盖/隐藏特定列。如果要阻止直接HDFS访问,则需要阻止对Hadoop服务器的SSH访问,或者不为非信任方分发用于外部客户端访问的密钥塔

我不完全确定Atlas的功能

答案 1 :(得分:0)

实际上您不需要创建Hive视图。 Ranger支持列级安全规则,因此您可以阻止敏感列到非授权用户,甚至更好地通过掩码替换值(例如:“John Doe”变为“xxxxxxxx”)

无法阻止访问包含数据的HDFS文件,否则Hive将无法读取它。但是,您应该阻止HDFS API给非授权用户!因此,边缘节点上没有SSH,没有提供Kerberos密钥表,也没有通过KNOX和LDAP身份验证访问HIVE。