【问题标题】:Use Column Master Key from Azure Key Vault to decrypt columns for Always Encrypted使用 Azure Key Vault 中的列主密钥为 Always Encrypted 解密列
【发布时间】:2019-02-04 03:11:42
【问题描述】:

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

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

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

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

我走在正确的道路上吗?
可以这样解密吗?

谢谢

【问题讨论】:

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


    【解决方案1】:

    我在正确的道路上吗?

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

    可以这样解密吗?

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

    关注此tutorial 以实现您的目标

    完成上述步骤后。

    第 1 步:

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

    第二步

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

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

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

    为此Connection string will also need to update

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

    【讨论】:

    • 感谢您的回复。如果我理解正确,请使用 nuget 库:1.Microsoft.SqlServer.Management.AlwaysEncrypted.AzureKeyVaultProvider 2.Microsoft.IdentityModel.Clients.ActiveDirectory。并通过那些 nuget 库从我的应用程序中注册,就像在 MS 文档中一样,我可以使用 Entity Framework 来获取数据?
    • @LazarCvijovic 正是你明白了!这是应用程序解密数据的方式。要通过 SSMS 手动检查,您可以轻松地将自己添加到 AzureKeyVault 中的访问策略中
    • 谢谢。我会把你的答案标记为正确的。
    • 名声不够,抱歉:)
    猜你喜欢
    • 1970-01-01
    • 2017-10-25
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    相关资源
    最近更新 更多