【问题标题】:Dynamic data masking BigQuery动态数据屏蔽 BigQuery
【发布时间】:2020-08-27 18:46:12
【问题描述】:
BigQuery 路线图中是否有任何功能支持动态数据屏蔽?例如,根据用户的角色显示屏蔽数据。
我已经探索了 DLP,它有助于在 BigQuery 中存储屏蔽数据,但使用这种方法,必须创建同一个表的两个版本,屏蔽和未屏蔽。
请参考以下链接作为示例,以获取我询问的其他上下文。 (Example Link)
【问题讨论】:
标签:
google-cloud-platform
google-bigquery
google-cloud-dlp
【解决方案1】:
正如 Guillaume 所指出的,目前正确的解决方法是使用 BigQuery Column-level security 来控制对特定表列的访问。
至于返回但屏蔽列数据的特定数据屏蔽功能,这确实在 BigQuery 路线图中,预计将作为 BigQuery 列级安全性的一部分发布。但是,该版本还没有任何 ETA。
您可以参考 Google 的 Bigquery release notes 以了解最新的 BigQuery 更新和功能发布。
【解决方案3】:
对于看到此内容的任何人.. 只需使用授权视图.. 如果您需要确定性的内容,您可以散列数据,或者您可以使用字符串/正则表达式函数来屏蔽数据。
【解决方案4】:
对于那些正在考虑列级安全性(即使用策略标签)的人来说,仅供参考。我在这里上网是因为我们目前遇到了一些政策标签的限制。
我们有无法向最终用户公开的列,emailAddress 就是一个很好的例子,因此我们在其上设置了一个策略标签来阻止对其进行访问。但是,对于最终用户来说,emailAddress 仍然是一个非常有用的列,可以回答诸如
之类的问题
有多少不同的用户访问了我们的网站?
出于这个原因,我们考虑将视图放在执行此操作的表之上:
select SHA256("some-pepper-value", emailAddress) AS emailAddressHash
这将使最终用户能够使用混淆标识符(并使他们能够在emailAddressHash 上将表连接在一起,这也是能够做到的重要事情)。不幸的是,它不起作用,因为 BigQuery 意识到该列 emailAddress 仍在被引用,因此阻止了对 emailAddressHash 的访问。因此,我一直在谷歌上搜索“BigQuery 中的动态数据屏蔽”,这让我来到了这里。