在基于云的多租户环境中保护敏感的客户数据

Protecting sensitive customer data in cloud based Multi-Tenant environment

我们正在构建一个基于云的多租户 Web 产品,其中客户数据存储在单个数据库实例中。客户特定的业务数据中有一部分是高度敏感的。敏感的业务数据应该受到保护,除了客户的授权用户(无论是通过应用程序还是通过直接访问数据库)之外,没有人可以访问它。客户希望确保即使是平台提供商(我们)也无法以任何方式访问特定数据。他们希望我们在这种情况下清楚地展示数据安全性。我正在寻找以下方面的具体指导:

  1. 如何确保数据在数据库级别受到保护,即使平台提供商也无法访问数据。

  2. 即使我们加密了数据,担心的是任何拥有解密密钥的人都可以解密数据

  3. 解决这个问题的最佳方法是什么?

感谢您的反馈。

"如何确保数据在数据库级别受到保护,即使平台提供商也无法访问数据"

-- 由于您处于多租户环境中,因此首先您必须 "single tenant your databases" 每个客户一个数据库。然后您需要修改应用程序以从某种形式的配置中获取数据库。

对于 Azure 中的加密,您必须将 Azure Key vault 与您自己的密钥或客户自己的密钥一起使用。然后配置 SQL 使用这些密钥来加密数据。参见 here and here

如果您希望数据库保持多租户状态,则需要在应用程序级别进行加密。然而,这需要应用程序了解客户密钥,因此我认为这不是一个有效的解决方案。

"即使我们加密数据,问题是任何拥有解密密钥的人都可以解密数据" - 是的,任何拥有密钥的人都可以访问数据。为此,您需要在密钥保管库上适当地设置访问控制……这样客户只能看到他们的密钥。

最后,因为你是服务提供商..客户必须信任你:)