动态数据屏蔽BigQuery

时间:2020-08-27 18:46:12

标签: google-cloud-platform google-bigquery google-cloud-dlp

BigQuery路线图中是否有任何功能支持动态数据屏蔽?例如,根据用户的角色显示被屏蔽的数据。 我探索了DLP,该DLP有助于在BigQuery中存储被屏蔽的数据,但是使用这种方法,一个人将不得不创建同一表的被屏蔽和未屏蔽的两个版本。 请参考以下链接作为示例,以获取我的询问的其他上下文。 (Example Link

4 个答案:

答案 0 :(得分:2)

如Guillaume所言,目前正确的解决方法是使用BigQuery Column-level security来控制对特定表列的访问。

对于返回但被屏蔽的列数据的特定数据屏蔽功能,这确实在BigQuery路线图上,并且作为BigQuery列级安全性的一部分,预计将被发布。但是,该发行版中还没有任何ETA。

您可以参考Google的Bigquery release notes来了解最新的BigQuery更新和功能版本。

答案 1 :(得分:1)

没有完全相同的功能。而且,实际上,您必须存储两种形式的数据,即被屏蔽的和未屏蔽的。

但是,您有一个名为CLS: Column Level Security的新功能。使用此功能,您可以允许用户查看或不查看某些列。在您的用例中,您可以仅向用户显示未屏蔽的列

答案 2 :(得分:1)

对于看到此内容的任何人.. 只需使用授权视图.. 如果您需要某些确定性的数据,您可以散列数据,或者您可以使用字符串/正则表达式函数来屏蔽数据。

答案 3 :(得分:1)

仅供考虑列级安全性(即使用策略标签)的人参考。我在这里浏览是因为我们目前遇到了政策标签的一些限制。

我们有无法向最终用户公开的列,emailAddress 就是一个很好的例子,因此我们在其上设置了一个策略标记来阻止对其进行访问。但是,emailAddress 仍然是一个非常有用的列,可以帮助最终用户回答诸如

之类的问题 <块引用>

有多少不同的用户访问了我们的网站?

出于这个原因,我们考虑将视图放在执行此操作的表的顶部:

select SHA256("some-pepper-value", emailAddress) AS emailAddressHash

这将使最终用户能够使用混淆的标识符(并使他们能够在 emailAddressHash 上将表连接在一起,这也是一件重要的事情)。不幸的是,它不起作用,因为 BigQuery 意识到列 emailAddress 仍在被引用,因此阻止了对 emailAddressHash 的访问。因此,我一直在 Google 上搜索“BigQuery 中的动态数据屏蔽”,这让我找到了这里。