我有一些客户端应用程序,它们会生成在设备上加密的数据。加密密钥通过HTTPS发送到Azure函数,该函数使用Azure密钥保管库存储加密密钥,以便其他授权客户端可以获取它们并解密数据。
这是我的Azure函数中的代码段,用于执行将加密密钥(机密)保存在密钥库中的工作:
public async Task InsertEncryptionKeyAsync(EncryptionKeyContract encryptionKey)
{
Guard.CheckForNull(encryptionKey, nameof(encryptionKey));
// Serializes the encryption key information.
string serializedEncryptionKey = JsonConvert.SerializeObject(encryptionKey);
// Pushes the encryption to the Key-Vault.
var client = new KeyVaultClient(/* Key-vault- access otken*/, new HttpClient());
await client.SetSecretAsync(Constants.Vault.Url, encryptionKey.FileId.ToKey(), serializedEncryptionKey);
}
题
此设计是否适合使用Azure Key Vault?
最佳答案
是的,Azure Key Vault可以存储密钥/机密,因此这是一个完美的有效用例。根据您的客户是谁,以及他们拥有什么权限,您可以摆脱中间件,然后让客户端将加密密钥添加到Vault中。但是通常您不想授予客户端对Vault的权限,因此使用Azure Function看起来也不错。
关于c# - Azure Key Vault是否适合存储在客户端应用程序上生成的加密 key ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51540484/