我们正在构建一个多租户基于云的Web产品,其中客户数据存储在单个Database实例中。客户特定的业务数据中有一部分是高度敏感的。应当保护敏感的业务数据,以使除客户的授权用户外,任何人都不能访问它(既不能通过应用程序访问,也不能直接访问数据库)。客户希望确保甚至平台提供商也无法以任何方式访问特定数据。他们希望我们在这种情况下清楚地演示数据安全性。我正在寻找以下领域的具体指导:
如何确保数据在数据库级别受到保护,即使平台提供商也无法访问数据。
即使我们对数据进行加密,也要担心的是,拥有解密密钥的任何人都可以解密数据
解决此问题的最佳方法是什么?
感谢您的反馈。
答案 0 :(得分:1)
“ 如何确保数据在数据库级别受到保护,甚至平台提供商也无法访问数据”
-在多租户环境中,首先,您必须“单一租户数据库”,因此每个客户一个数据库。然后,您需要修改应用程序以从某种形式的config中获取数据库。
要像在Azure中一样进行加密,则必须将Azure Key保管库与您自己的密钥或客户自己的密钥一起使用。然后将SQL配置为使用这些密钥来加密数据。参见 here 和 here
如果希望数据库保持多租户状态,则需要在应用程序级别进行加密。但是,这需要应用程序了解客户密钥,因此我认为这不是有效的解决方案。
“ 即使我们对数据进行加密,也要担心的是,拥有解密密钥的任何人都可以解密数据”-是的,拥有密钥的任何人都可以访问数据。为此,您需要在密钥库上适当设置访问控制。.以便客户只能看到他们的密钥。
最后,因为您是服务提供商。.客户将不得不信任您一些:)