asp.net-mvc - 使用 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 选项的原因,如果我理解正确,这是一种无需更改大部分内容的方法应用。
我在正确的道路上吗?
这种解密可能吗?
谢谢
解决方案
我在正确的道路上吗?
你在正确的道路上!请继续您的方法。
这种解密可能吗?
绝对是的,解密是可能的。您只需要与 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
推荐阅读
- android - 从 Firebase 读取多个值并放入折线图中
- java - 如何为多个 ImageView 创建更新函数?
- php - PHP统一重复数组
- css - 使用 CSS 使用嵌套输入字段更改字段集的背景颜色
- python - 如何设置 cookie 值,然后立即重定向到下一页并显示其中的内容
- c++ - 使用rapidjson c ++保存/加载对象的向量
- angular - Angular 4 错误消息应链接到无效的 formControl
- javascript - 仅当下拉元素存在时才显示 tr/td 元素
- java - 多模块Spring项目:覆盖测试中的资源文件
- javascript - angular-cli build 给出错误:leaflet.browser.print“不是模块”