使用客户端加密的AWS S3

时间:2019-06-25 12:53:05

标签: python amazon-web-services amazon-s3 encryption

我想对要上传到S3存储桶的数据实施客户端加密。但是,由于我仅具有加密方面的基本知识,因此与为解决该问题而找到的示例有些困惑。

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

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

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

  • 您的数据很敏感,并且/或者您不想信任AWS:在这种情况下,我必须在除AWS之外的其他位置生成和管理密钥(正确吗?)。还是有障碍阻止AWS读取您的加密数据?

按照基本的AES教程[3]并上传加密的数据来实施客户端加密是否有明显的弊端?

1 个答案:

答案 0 :(得分:2)

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

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

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