Post 不允许对S3进行未加密的PUT

Post 不允许对S3进行未加密的PUT,post,encryption,amazon-s3,bucket,Post,Encryption,Amazon S3,Bucket,我有一个工作的直接浏览器上传表单,可以将文件从浏览器直接上传到S3,包括通过上传策略为每次上传启用服务器端加密,以及x-amz-server-side-encryption的表单字段 问题在于S3端的bucket策略对上传的文件强制执行服务器端加密。在没有bucket策略的情况下,我的文件可以完美地上传,并且启用了服务器端加密。当我添加bucket策略时,上传被拒绝,并出现HTTP 403(AccessDenied)错误 以下是我使用的完整bucket策略(摘自Amazon文档): 以下是在上载

我有一个工作的直接浏览器上传表单,可以将文件从浏览器直接上传到S3,包括通过上传策略为每次上传启用服务器端加密,以及x-amz-server-side-encryption的表单字段

问题在于S3端的bucket策略对上传的文件强制执行服务器端加密。在没有bucket策略的情况下,我的文件可以完美地上传,并且启用了服务器端加密。当我添加bucket策略时,上传被拒绝,并出现HTTP 403(AccessDenied)错误

以下是我使用的完整bucket策略(摘自Amazon文档):

以下是在上载表单中签名和使用的策略示例(未编码和格式化):

{
  "expiration": "2013-04-14T14:29:56.000Z",
  "conditions": [
    {
      "bucket": "MY-BUCKET-NAME"
    },
    {
      "acl": "private"
    },
    {
      "x-amz-server-side-encryption": "AES256"
    },
    [
      "starts-with", "$key", "uploads/"
    ],
    {
      "success_action_status": "201"
    }
  ]
}
为了简洁起见,我将省略上传表单的详细信息,但可以说,它为
x-amz-server-side-encryption
设置了相应的隐藏表单字段。同样,在没有bucket策略的情况下,这是可行的,因此我相信客户端方面的情况良好。我的猜测是在这一点上,也许我应该特别允许某类看跌期权,但我不确定要添加什么


有什么想法吗?

我还应该补充一点,我正在作为一个IAM用户进行身份验证,该用户具有明确允许将操作
s3:
添加到此存储桶的内容的用户策略(
arn:aws:s3:::MY-bucket-NAME/*
{
  "expiration": "2013-04-14T14:29:56.000Z",
  "conditions": [
    {
      "bucket": "MY-BUCKET-NAME"
    },
    {
      "acl": "private"
    },
    {
      "x-amz-server-side-encryption": "AES256"
    },
    [
      "starts-with", "$key", "uploads/"
    ],
    {
      "success_action_status": "201"
    }
  ]
}