0

我有一个将视频上传到 S3 存储桶的应用程序,然后创建一个自定义策略以允许其他用户(用于 Zencoder 服务)获取文件,并将转码后的文件上传回存储桶。

以下是我在转码期间给用户的当前自定义策略。基本上我对整个存储桶授予完全读取权限,但我只允许用户将文件放入特定的嵌套文件夹中。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowUserToListContentsOfBucket",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:ListBucketMultipartUploads",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::MY-BUCKET"
      ]
    },
    {
      "Sid": "AllowUserToListContentsOfBucketFolders",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucketMultipartUploads",
        "s3:GetObjectAcl",
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::MY-BUCKET/*"
      ]
    },
    {
      "Sid": "AllowUserS3ActionsOfSpecificFolder",
      "Effect": "Allow",
      "Action": [
        "s3:PutObjectAcl",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::MY-BUCKET/some/nested/folder/*"
      ]
    }
  ]
}

这在大多数情况下都有效,但在 Zencoder 传输的约 1,000 个文件中,通常有一两个文件因403 Forbidden错误而失败。我不知道为什么,因为文件在错误之前和之后都正确传输。

403 Access Denied在提供此类权限时,Amazon AWS S3 / IAM 是否有任何理由发送?

4

0 回答 0