Azure Key Vault 保护证书

标签 azure certificate key azure-keyvault

嘿,我想使用 Azure Key Vault 加密/解密数据库中的数据。我发现我自己和其他人正在努力解决的一个主要问题是如何保护程序中的访问 ID 和 key 。我看到人们说,如果您没有 native Microsoft 应用程序(我没有,我的应用程序在第三方 Linux 服务器上运行),您可以获得访问 key 保管库的证书。在我花 200 美元购买该证书之前,我想知道拥有该证书意味着即使该证书被盗,攻击者也无法使用它来访问 key 保管库,对吧?我的理解是该证书仅适用于我的域,正确吗?

我从网上找到的一篇文章中读到了这篇文章:https://kamranicus.com/posts/2016-02-20-azure-key-vault-config-encryption-azure :

Instead of using the default authentication to Azure AD, a "client ID" and "secret token", we will actually provide a secure X.509 certificate that we'll upload to Azure. Since you can't download the certificate from Azure or access the private key, it will authenticate your application without exposing the key to your vault in a config or portal interface.

所以我从这句话中收集到的是:

  • 证书是安全的,不会被盗(当然,除非您侵入 Microsoft Azure)
  • 我的网站且只有我的网站能够使用证书访问 key 保管库
  • 如果用户获得对我的代码或网站的访问权限,他们将无法获得访问 key 保管库所需的信息

谢谢

最佳答案

基本上,使用证书被认为比使用 key 访问任何 Azure 服务更安全。

这意味着在给定证书和签名身份验证质询(使用关联证书的私钥)的情况下执行身份验证

假设私钥仅存储在运行应用程序的计算机上,攻击者必须访问该计算机才能提取关联的私钥(或直接从受感染的计算机使用它)。

此外,Azure 引入了一种使用托管服务身份对 Azure 服务进行身份验证的新方法,该方法被认为更安全,因为身份验证绑定(bind)到指定的计算机并在 Azure 级别进行管理(不在代码中或在 Azure 级别进行管理)。在机器中,但必须是 Azure 机器) 您可以阅读here

对于主要目的(加密数据库),您可以通过多种方式来实现:
1.Column level encryption
2.Encryption at rest (i.e TDE)

Azure key 保管库支持这两种操作。 顺便说一句,如果证书的唯一目的是向 Azure 进行身份验证,您可以使用自签名证书而不是购买证书。

关于Azure Key Vault 保护证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49603258/

相关文章:

c# - 如何使用 BouncyCaSTLe X509V3CertificateGenerator 设置 upnName(用户主体名称)

c# - key 长度不是 128/192/256 位

php - 推送通知连接错误

IOS: [NSDictionary initWithObjects:forKeys:]:

azure - 停止函数 <XXX> 的监听器 'Microsoft.Azure.WebJobs.Host.Blobs.Listeners.BlobListener'

azure - 在 Azure 防火墙中允许 IPv6 地址

emacs key "deletechar"?

PHP 数组的拆分和分组

azure - 如何在 PowerShell 中使用 AzModule 命令创建 AzureProfile.json 文件?

c# - Azure 函数未由 EventHubTrigger 触发