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

时间:2018-08-29 10:48:06

标签: asp.net-mvc entity-framework azure azure-keyvault always-encrypted


我想知道是否存在一种方法,以及在可行的情况下如何使用实体框架使用存储在Azure Key Vault中的列主键(CMK)解密始终加密的列。
我遵循了来自[dcl.init.list]
的教程

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

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

我不想到处都安装Windows证书,因为这将是一个Web应用程序,所以这就是为什么我决定使用Azure Key Vault选项的原因,并且如果我正确理解的话,这是一种无需更改很多内容的方法应用。

我在这里吗?
可以解密吗?

谢谢

1 个答案:

答案 0 :(得分:0)

  

我在正确的位置吗?

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

  

可以解密吗?

是的,可以解密。您只需要使用column encryption setting=enabled

与SSMS建立连接。

遵循tutorial以实现您的目标

完成上述步骤后。

步骤1:

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

enter image description here

步骤2

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

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

enter image description here

PS 如果要从ASP.Net Application

解密,只需在Azure AD中注册应用程序并将其添加到密钥库访问策略中即可

为此Connection string will also need to update

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