Apache 发布的 HBase 0.98 主要是通过基于单元格的安全在安全性上趋同于 Apache Accumulo ,同时解决了 230 JIRA 问题。这些新的安全特性是按照 Accumulo 建模的。
HBase 和 Accumulo 都是 Apache 的项目,它们运行在 Apache Hadoop 上,参照 Google 的 BigTable 基础架构模型提供分布式的数据存储。
单元格是 HBase 中可以用键识别的最底层单元。在之前的版本中,单元格的访问许可继承自列族系,而列族系的访问许可继承自表。
Accumulo 使用了类似的数据模型,不过它的安全模型跟传统的 ACL(访问控制列表)不太一样,它的安全模型更精细,是基于单元格的安全。键中包含一个标签 (label),在访问单元格级别的不同数据部分时可以辅助做出更精细的决定。所以,根据这个标签上的内容,相同的数据上可能有多层信息访问。
HBase 0.98 解决了 HBASE-8496 和 HBASE-7663 两个问题。它们通过标签 (tag) 实现了基于单元格的安全。这些标签可以存储任何元数据,从而可以把 ACL 安全模型从表扩展到列族系,进而扩展到单元格。此外,在标签中还可以存储可见性表达式 (visibility expression),跟 Accumulo 一样提供访问单元格内不同信息片的粒度水平。
从 API 来看,像下面这样的调用会为 user1 设置对单元格的访问许可:
put.setACL(“user1”, new Permission(Permission.Action.READ))
Andrew Purtell,一位 Intel 的首席架构师,HBase 的资深贡献者说:“随着 Apache HBase 0.98 的发布,从最终用户的角度来看有一些安全特性上的趋同。HBase 对 ACL 的支持已经有一阵子了。现在我们又对 Accumulo 风格的可见性标签提供了支持,我们为用户提供了两个项目特性的超集。” Purtell 在他 基于单元格的安全博客中介绍了这一特性的关键内容。
评论