Azure 的 Key Vault 是否支持对称密钥加密?

Does Azure's Key Vault support symmetric key encryption?

我希望得到以下方面的澄清和建议:

我的项目要求我在 Nodejs 环境中使用对称数据加密(使用 AES)来保护数据库中的数据 (mongodb)。理想情况下,我想按如下方式执行此操作:

将对称密钥作为密钥存储在 Azure Key Vault 中,然后 'encrypt' 调用保管库以使用密钥对数据执行 AES 加密。加密数据在对我的应用程序的响应中发送,然后以加密形式存储在数据库中。

阅读 MS Azure 的文档和相关博客文章后,我感到困惑,其中一些来源声称支持对称密钥加密,但没有关于此的官方文档。

谁能告诉我这是否是 Azure Key Vault 支持的所有密钥类型和算法的详尽列表? https://msdn.microsoft.com/en-us/library/azure/dn903623.aspx#BKMK_KeyTypes

这似乎也是一个选项 (http://www.nuget.org/packages/Microsoft.Azure.KeyVault.extensions),但仅适用于 .NET 环境。喜欢 Nodejs 吗?

如果目前确实不支持对称 keys/encryption,谁能提供替代我上述方法的方法?

非常感谢。

我同意 documentation/blogs 在这个话题上确实有点令人困惑。据我了解,密钥库目前尚不支持对称加密。我相信您可以获得的最接近的方法是将对称密钥存储为秘密并在保险库外使用它们。

这篇article谈到了这样做。请参阅标题为 Use Key Vault secrets

的部分

我了解您使用 node.js 并且该示例在 powershell 中只是试图说明使用秘密的对称加密示例。显然,加密操作发生在金库之外。因此,在静止状态下,密钥更安全,但只要发生操作,它们就会暴露在内存中。

希望对您有所帮助。

Here is an example in PowerShell of creating a secret in Key Vault that can be used as a SymmetricKey.

SymmetricKey sec = (SymmetricKey) cloudResolver.ResolveKeyAsync(
"https://contosokeyvault.vault.azure.net/secrets/TestSecret2/",
CancellationToken.None).GetAwaiter().GetResult();