admin

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

sql

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

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

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

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

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

非常感谢


阅读 171

收藏
2021-07-01

共1个答案

admin

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

为列主密钥选择密钥存储

依此,

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

所以走得更远Centralized Key Stores

您可以通过Azure Key Vault中的访问策略轻松管理用户/应用程序

参考

2021-07-01