我有一些客户端应用程序,它们会生成在设备上加密的数据。加密密钥通过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/

10-13 06:05