SQL Always Encrypted CMK证书存储最佳实践

时间:2018-07-25 08:12:06

标签: sql azure ssl encryption always-encrypted

我正在将SQL Always Encrypted(SQL始终加密)发布到我们的数据库中,并且正在查询有关存储CMK证书的最佳实践方法。

我们在Windows Server 2016主机上托管了.Net Web应用,每个应用都分配了不同的AD服务帐户(SA)作为其应用程序池ID。我们在单独的服务器上有一个SQL Server实例。这种方法使我们能够隔离和限制每个应用程序对数据库的访问,并且运行良好。

我不想将CMK证书导入本地计算机Windows证书存储区,因为这意味着服务器上的所有用户(主要是服务器管理员)都可以访问证书,因此可以解密证书。数据库中的数据。

我当前已以SA身份登录服务器,并在本地用户下安装了证书。这是我能想到的最安全的选项,因为SA仅能够解密信息,这意味着只有应用程序可以解密数据,而其他用户则不能。但是,我遇到的问题是SA似乎需要一直登录到服务器,这不是一个可行的长期解决方案(如果重新启动服务器,则该帐户将被注销,并且我的应用程序将失败)

有没有人找到关于安全存储CMK最佳位置的官方Microsoft指南?

非常感谢

1 个答案:

答案 0 :(得分:2)

我建议使用 Azure Key Vault 作为您的密钥库提供者(集中式密钥库),这将是存储密钥的最安全方法。

Selecting a Key Store for Column Master Key

按此,

  

集中式密钥库-在多台计算机上提供应用程序。一个   集中式密钥库的示例是Azure Key Vault。集中式   密钥库通常使密钥管理更容易,因为您不需要   维护多个列主键的副本   机器。您需要确保将您的应用程序配置为   连接到集中式密钥库

到目前为止,集中化密钥存储区

您可以轻松地manage the users/Application通过Azure Key Vault中的访问策略。

Reference