提问人:Pavan Kumar 提问时间:5/30/2023 最后编辑:Peter CordesPavan Kumar 更新时间:5/30/2023 访问量:315
将对象上传到 AWS S3 时使用 SSE(服务器端加密)标头
Use of SSE (server side encryption) header while uploading object to AWS S3
问:
我正在尝试为 S3 中的对象启用服务器端加密 (SSE)。
我浏览了 AWS S3 文档,了解到当您在存储桶属性下配置存储桶以启用 SSE(在本例中为 KMS CMK)时,上传的任何对象都将使用所选的静态加密密钥进行加密。我的工作在这里完成。
但是,我无法理解为什么在将任何对象上传到 S3 时需要传递 SSE 标头 (--sse-kms-key-id {{kms-key}} --sse=aws:kms)。这将对存储桶本身启用 SSE 有什么不同。
为什么最好在存储桶策略中强制添加 SSE 标头,而我的 SSE 目的已经通过在存储桶级别启用 SSE 加密(这是存储桶属性下的一次性配置)来实现。
答:
1赞
Abraam Magued
5/30/2023
#1
我想你有 2 个问题
为什么我们需要传递 SSE 标头?
我认为你不需要。在官方文件中,它说
- 启用默认加密后上传对象时:
如果您的 PUT 请求标头不包含加密信息,则 Amazon S3 将使用存储桶的默认加密设置来加密对象。
如果您的 PUT 请求标头包含加密信息,则 Amazon S3 会先使用 PUT 请求中的加密信息对对象进行加密,然后再将其存储在 Amazon S3 中。
这就是你说的。如果您未定义标头,并且为 KMS-SSE 设置了默认加密,则将使用它而不是默认的 KMS-S3。
您的第二个问题
为什么首选在存储桶策略中强制添加 SSE 标头?
因为如上所述,当在 PUT 请求参数中传递加密选项时,S3 上的默认加密可能会被覆盖;因此,您可能希望拒绝除要使用的加密方法以外的任何其他加密方法。
评论