我们开发适用于多个租户的基于云的SaaS解决方案。对于非常敏感的数据,我们需要隔离租户并为分配给此租户的用户提供端到端加密。甚至SaaS解决方案提供商的运营商也不应该能够解密数据。
Azure存储
我看到我可以使用client-side encryption feature along with Azure Key Value for Azure Storage来完成此任务,允许每个租户提供一个单独的Azure KeyVault帐户来管理加密密钥。
Azure Cosmos DB
由于Azure Cosmos DB提供了有关可伸缩性的卓越功能,因此我们希望使用Cosmos而不是Azure存储。但是,我没有找到提供端到端加密功能的Cosmos DB的类似功能。我找到的唯一的Cosmos DB加密功能是encryption at rest。
所以我的问题是:
我是否可以使用Azure Cosmos DB实现相同目标(端到端加密)?
我是否可以使用Azure Cosmos DB实现相同目标(端到端加密)?
基于encryption at rest,存储在Cosmos DB中的所有用户数据在静止和传输时都是加密的,您不必采取任何操作。但它对多租户来说是透明的。因此,如果要实现类似于Client-Side Encryption in Blob storage的端到端加密,则需要在对cosmos db数据进行操作之前封装自己的加密方法。
此外,如果您的数据格式化为文件,我建议您使用Blob存储,因为cosmos db的成本可能会高一些。
我有一个answer from the Azure Cosmos DB Team on Twitter
Cosmos DB目前仅支持静止和传输中的加密。 BYOK场景在他们的roadmap上。