首页 > 解决方案 > 使用 Azure Key Vault 中的列主密钥为 Always Encrypted 解密列

问题描述


我想知道是否有办法,以及如果可能的话,如何使用 Entity Framework 使用存储在 Azure Key Vault 中的列主密钥(CMK)来解密始终加密的列。
我按照以下教程进行操作:Microsoft Docs。

但他们没有使用 EF。他们还提到 CMK 存储在 Azure Key Vault 中。

我的主要目标是加密 Azure DB 中的一些数据,但允许用户查看这些数据。(例如:信用卡号、SSN 等)
我已经在 DB 中有一些数据,我想保留它。

我不想在任何地方都安装 Windows 证书,因为这将是一个 Web 应用程序,所以这就是我决定使用 Azure Key Vault 选项的原因,如果我理解正确,这是一种无需更改大部分内容的方法应用。

我在正确的道路上吗?
这种解密可能吗?

谢谢

标签: asp.net-mvcentity-frameworkazureazure-keyvaultalways-encrypted

解决方案


我在正确的道路上吗?

你在正确的道路上!请继续您的方法。

这种解密可能吗?

绝对是的,解密是可能的。您只需要与 SSMS 建立连接即可column encryption setting=enabled

按照本教程实现您的目标

完成上述步骤后。

步骤1:

如下登录 SSMS - (始终使用最新的 SSMS

在此处输入图像描述

第2步

select您需要解密的表(即,select * from users

登录到您的 Microsoft 帐户(假设您已经通过访问策略对 AzureKeyVault 拥有足够的权限)

在此处输入图像描述

PS只需在 Azure AD 中注册您的应用程序并将应用程序添加到 keyvault 访问策略中,如果您想从中解密ASP.Net Application

为此,连接字符串也需要更新

Data Source=server63; Initial Catalog=Clinic; Integrated Security=true; Column Encryption Setting=enabled

推荐阅读