【发布时间】:2015-10-16 16:42:20
【问题描述】:
我正在尝试使用和实施亚马逊 s3 服务器端加密。 我遵循了他们的文档,并创建了以下存储桶策略:
{
"Version":"2012-10-17",
"Id":"PutObjPolicy",
"Statement":[{
"Sid":"DenyUnEncryptedObjectUploads",
"Effect":"Deny",
"Principal":"*",
"Action":"s3:PutObject",
"Resource":"arn:aws:s3:::YourBucket/*",
"Condition":{
"StringNotEquals":{
"s3:x-amz-server-side-encryption":"AES256"
}
}
}
]
}
我正在使用 python boto 包,当我添加 x-amz-server-side-encryption 标头时,它就像一个魅力。
问题在于应用程序中有几个地方使用来自 HTML 表单的 post 请求将文件上传到 s3。
我已设法添加 x-amz-server-side-encryption 标头并上传文件。但是,在亚马逊后端控制台中检查时,我可以看到这些文件未 加密。
有人知道我做错了什么吗?我还尝试将x-amz-server-side-encryption 作为表单字段传递,但它没有帮助。
有趣的是,当我删除 x-amz-server-side-encryption 标头时,请求因“拒绝访问”原因而失败。
【问题讨论】:
-
我建议您暂时删除存储桶策略并将 x-amz-server-side-encryption=AES256 放在表单中,并将
{"x-amz-server-side-encryption": "AES256"},放在表单策略文档中,标题中没有任何内容,看看你得到了什么。还要检查响应标头,因为它们应该包含对加密的提及。 -
是的,我就是这么做的,谢谢!
标签: amazon-web-services encryption amazon-s3