加密 SQL Server Azure 数据库中的数据,为每个用户的数据使用单独的密钥



我正在尝试基于Azure SQL数据库后端创建服务。

该服务将是多租户,并且将包含来自多个"客户"(可能数十万个客户)的高度敏感信息,必须严格彼此隔离,并严重保护数据泄漏。"设计"

使用如此多的单独数据库是不可行的,因为每个客户端的信息很少。

我已经研究了Azure提供的透明加密,但这实质上将加密整个数据库,因此换句话说,它不会防止客户或其他人之间的泄漏;由于发展错误或敌对攻击,至关重要的是,一个"客户"的信息永远不会落入其他任何人的手中。

因此,我真正想实现的目标是用其他密钥在数据库中加密每个客户的数据,以便您必须从每个客户(从其"物理"位置)获取键到de-crypt您可能会从数据库中为该特定客户端提取的任何数据,这几乎是任何人都不可能做的。

很明显我的意思吗?

你们对我有任何有关如何解决此问题的建议,还是知道任何允许此功能的第三方解决方案?还有其他建议吗?

您正在通过单个表中的设计来保护/隔离租户,为什么不查看行级别的安全性。您可以将其配置为仅将适用的行提供给特定租户。

这并不能直接解决有关每个租户使用单独键加密数据的最初问题;如果您为每个租户有一个单独的表,那么您可以始终加密执行此操作,但是如果您尝试处理200K键,这似乎在钥匙管理中有一定的复杂性。

afaik,没有本机SQL Server功能可以加密属于带有独特键的租户的每组行,但可能有一些我尚未看到的优雅解决方案;当然,您可以在应用程序侧进行此操作并将其存储在SQL中,没有问题。诀窍将与上面的基于AE的解决方案相同 - 管理大量键。

最新更新