Azure Key Vault 是否适合存储在客户端应用程序上生成的加密密钥?

我有生成在设备上加密的数据的客户端应用程序。加密密钥通过 HTTPS 发送到 Azure 函数,该函数使用 Azure Key Vault 存储加密密钥,以便其他授权客户端可以获取它们并解密数据。


这是我的 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?


梵蒂冈之花
浏览 169回答 2
2回答

墨色风雨

是的,Azure Key Vault 用于存储密钥/机密,因此这是一个完美的有效用例。根据您的客户是谁以及他们拥有什么权限,您可以摆脱中间件,让客户将加密密钥添加到保管库中。但通常您不想授予客户端对 Vault 的权限,因此使用 Azure 函数这样做看起来也不错。
打开App,查看更多内容
随时随地看视频慕课网APP