【问题标题】:Bigtable Row Based Access Control Patterns基于 Bigtable 行的访问控制模式
【发布时间】:2017-04-19 15:24:26
【问题描述】:

我想使用角色为 Bigtable 实现基于行的访问控制,以便每一行可以允许一对多角色。我不知道我怎样才能轻松地将它放入密钥中。

有哪些模式可用于实现这样的事情?

我当前的用例是使用我的其他索引作为键的一部分进行前缀范围查找。

【问题讨论】:

    标签: acl bigtable google-cloud-bigtable


    【解决方案1】:

    很遗憾,目前 Bigtable 不支持原生的基于行的 ACL 功能。这实际上取决于您的用例,但有几种方法可以自己实现。下面你会发现一些可能的建议:

    • Apache Accumulo 是 HBase 的包装器,它实现了基于行的 ACL。
    • 表前的代理层查询表本身的“权限”或辅助权限表是可行的,但是,您自己实现起来相当复杂。据我了解,这就是您可能已经采用的解决方案,但请记住,需要注意的是您还必须实施对复杂查询的检查,这可能会使其效率非常低下(并且随着新功能的到来而复杂地维护) .

    【讨论】:

      【解决方案2】:
      roles := []bigtable.Filter{bigtable.ColumnFilter("public"),
                         bigtable.ColumnFilter("admin")}
      
      acl := bigtable.InterleaveFilters(roles...)
      
      table.ReadRows(context.Background(), rr, func(r bigtable.Row) bool {
         // do something
      }, bigtable.RowFilter(acl))
      

      【讨论】:

        猜你喜欢
        • 2013-08-28
        • 2012-01-25
        • 2015-08-11
        • 2010-09-11
        • 1970-01-01
        • 2013-05-08
        • 1970-01-01
        • 2018-01-28
        • 1970-01-01
        相关资源
        最近更新 更多