S3存储桶的强制服务器端加密

qww*_*wwq 15 encryption amazon-s3 amazon-web-services emr

我想设置一个S3存储桶策略,以便上传到该存储桶的所有请求都将使用服务器端加密,即使请求标头中未指定.

我看过这篇文章(亚马逊S3服务器端加密存储桶策略问题),有人设法设置了一个存储桶策略,拒绝所有不指定服务器端加密的放置请求,但我不想否认,我想要成功但使用服务器端加密.

我的问题是将输出从EMR流式传输到我的S3存储桶,我不控制发出请求的代码,在我看来,必须在每个请求的基础上指定服务器端加密.

Séb*_*acq 10

恕我直言无法自动告诉Amazon S3为每个PUT请求打开SSE.那么,我将调查的是以下内容:

  • 写一个列出你的桶的脚本

  • 对于每个对象,获取元数据

  • 如果未启用SSE,请使用PUT COPY API(http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html)添加SSE"(...)复制对象时,可以保留大部分元数据(默认)或指定新元数据(...)"

  • 如果PUT操作成功,请使用DELETE对象API删除原始对象

然后根据您的业务需求每小时或每天运行该脚本.您可以在Python中使用S3 API(http://boto.readthedocs.org/en/latest/ref/s3.html),以便更轻松地编写脚本.

如果这种"写后更改"解决方案对您来说无效,那么您可以在不同的级别工作(与上面的Julio的答案一致)

  • 在您的API客户端和S3 API之间使用代理(如您站点上的反向代理),并将其配置为为每个PUT/POST请求添加SSE HTTP标头.开发人员必须通过代理,并且无权授权针对S3 API端点发出请求

  • 编写一个包装器库来自动添加SSE元数据,并迫使开发人员在SDK之上使用您的库.

今天晚些时候是组织中的纪律问题,因为在技术层面上执行它们并不容易.

勒布


tkw*_*rgs 9

亚马逊刚刚发布了强大功能新功能,使其变得非常简单

关于设置此文档的文档摘录.

请注意,将在任何存储桶加密设置之前评估任何现有存储桶策略

在应用存储桶加密设置之前,Amazon S3会评估并应用存储桶策略.即使您启用了存储桶加密设置,如果您有存储桶策略拒绝此类PUT请求,也会拒绝没有加密信息的PUT请求.检查您的存储桶策略并根据需要进行修改

  • 看起来终于3年后亚马逊解决了我的问题! (3认同)