1

我想为要上传到 S3 存储桶的数据实施客户端加密。然而,由于我只有基本的加密知识,我对我找到的解决这个问题的例子有点困惑。

对于 Java、.NET、Ruby、Go 等其他编程语言,AWS 开发工具包提供了客户端加密方法。而且我还找到了复制 python 相同行为的示例[1] [2] 。

但是,所有这些示例最终都使用 AWS KMS 服务来生成、存储和接收它们的加密密钥,这让我感到困惑。据我了解,您有两种一般选择:

  • 您信任 AWS 或您的数据不是很敏感:然后您可以使用 AWS 服务器端加密或根本不加密。

  • 您的数据很敏感和/或您不想信任 AWS:在这种情况下,我必须在 AWS 以外的其他地方生成和管理密钥(对吗?)。或者是否有任何障碍阻止 AWS 读取您的加密数据(如果他们愿意)?

通过遵循基本的 AES 教程[3]并上传加密数据来实施客户端加密是否有任何明显的缺点?

4

1 回答 1

3

密钥管理(和轮换)是一个缺点。现在您必须安全地管理密钥。

客户端无法实际加密数据是另一个缺点。借助 AWS 托管的加密,您可以设置拒绝非加密上传的策略。

您的加密客户端也可能被窃听。编写加密软件并不容易。

于 2019-06-25T13:20:24.607 回答