如何保护 Hadoop 中的特定数据

How to protect specific data in Hadoop

我们将所有客户数据存储在 hadoop 中。我们确实有一些我们希望强制执行的特定安全策略。例如有一个 customers HBase 表,它存储了我们所有客户的信息。有一些VIP客户未经特别授权不能直接曝光。例如,只有CEO、CTO或CIO有权查看VIP客户的信息。

目前我们想的是把所有存储在HBase中的原始数据,也就是真相的单点,在应用层面过滤掉VIP客户。通常,如果它是底层的 RDBMS,我们就会这样做。

只是想知道是否有这方面的经验或最佳实践。

如果 HBase 是您的目标实现技术,您现在有很多不错的选择。在细粒度 技术 级别,您可以应用 cell level security,类似于 accumulo 的做法。

例如,这里是 blog 的摘录,描述了如何为特定 'cell' 的用户或组设置 ACL(行和列的交集):

When storing or mutating a cell, the HBase user can now add ACLs, using a backwards compatible extension to the HBase API.

Mutation#setACL(String user, Permission perms);

Like at the table or column family level, a subject is granted permissions to the cell. Any number of permissions for any number of users (or groups using @group notation) can be added.

这里也有关于此主题的精彩 presentation

此外,如果您对更高 level/row 级别的 Hadoop 开源安全框架感兴趣,您可以查看 Knox, Rhino and perhaps Sentry(孵化)。

希望这对您有所帮助。

我不确定,但也许您可以为 VIP 的信息创建一个单独的数据库(或 table)。那么你只需要为每个数据库部署用户认证即可。