使用 Azure Key Vault 中的列主密钥来解密 Always Encrypted 的列

Use Column Master Key from Azure Key Vault to decrypt columns for Always Encrypted


我想知道是否有一种方法,如果可能的话,如何使用 Entity Framework 使用存储在 Azure Key Vault 中的列主密钥 (CMK) 来解密 Always Encrypted 列。
我遵循了以下教程:Microsoft Docs.

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

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

我不想在任何地方都安装 Windows 证书,因为这将是一个网络应用程序,所以这就是为什么我决定使用 Azure Key Vault 选项,如果我理解正确的话,这是一种不需要的方法改变了很多应用程序。

我走的路对吗?
这个解密可以吗?

谢谢

Am I on the right path here?

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

Is this decryption possible?

绝对可以,可以解密。您只需要与 SSMS 建立连接为 column encryption setting=enabled

按照这个 tutorial 来实现你的目标

完成上述步骤后。

第 1 步:

按如下方式登录 SSMS-(始终使用 latest SSMS

第 2 步

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

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

P.S 如果要从 ASP.Net Application [=22= 解密,只需在 Azure AD 中注册您的应用程序并将应用程序添加到 keyvault 访问策略中]

为此 Connection string will also need to update

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