KMS加密和S3 SSE的区别

Pun*_*cky 10 python amazon-s3 amazon-web-services boto3 amazon-kms

如果我 KMS 加密文件并将该文件推送到 S3 存储桶与使用 SSE KMS 加密将文件推送到 S3 存储桶有什么区别吗?

gue*_*est 8

首先:KMS加密操作仅接受 4K 数据,因此它不是通用解决方案。

使用S3服务器端加密,S3后端将生成密钥,使用该密钥加密数据,使用KMS加密密钥,然后存储加密的数据加密的密钥。当您读取数据时,它会执行相反的操作:使用 KMS 解密密钥,然后使用解密的密钥解密数据。

您可以自己实现相同的操作,将加密密钥存储在 S3 对象的元数据中。然而,这意味着您需要自己编写代码来进行对象加密,除非您熟悉加密,否则您可能会犯错误。

客户端加密有一些有限的用例,但在这些情况下,您将使用KMS未提供的加密密钥。

  • 只是发表评论,因为您的第一个陈述虽然正确,但可能会导致一些读者推断他们无法加密超过 4KB 的文件。 (11认同)
  • 您所指的 4KB 限制是 KMS 对可使用 CMK 加密的密钥大小的限制。您使用 CMK 生成和加密数据*密钥*,而不是实际文件的数据。这就是“信封加密”。每个数据文件都有一个唯一的数据密钥,并且该密钥由 CMK 加密。您可以使用数据密钥加密*任意*数量的数据。 (5认同)