动态数据屏蔽 BigQuery

Dynamic data masking BigQuery

BigQuery 路线图中是否有支持动态数据屏蔽的功能?例如,根据用户的角色显示屏蔽数据。 我探索了有助于在 BigQuery 中存储屏蔽数据的 DLP,但使用这种方法,人们将不得不创建相同 table 屏蔽和非屏蔽的两个版本。 请参考以下 link 作为示例,以获取有关我的问题的更多背景信息。 (Example Link)

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

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

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

至于返回列数据但被屏蔽的特定数据屏蔽功能,这确实在 BigQuery 路线图上并且预计将作为 BigQuery 的一部分发布Column-level 安全。但是,发布时还没有任何 ETA。

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

任何人看到这个..只需使用授权视图..如果您需要确定性的东西,您可以散列数据,或者您可以使用 string/regex 函数来屏蔽数据。

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

我们有不能向最终用户公开的列,emailAddress 就是一个很好的例子,因此我们在它上面有一个策略标记来阻止访问它。然而,emailAddress 仍然是一个非常有用的列,供最终用户回答诸如

之类的问题

How many distinct users visited our site?

出于这个原因,我们考虑将视图置于执行此操作的表之上:

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

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

功能昨天到达: https://cloud.google.com/bigquery/docs/column-data-masking-intro

不确定它是否完全满足您的要求,但绝对适用于简单的情况。