为什么我通过视频获得AccessDenied?

时间:2012-03-12 11:19:48

标签: amazon-s3 amazon-web-services

使用AWS S3。我有混合的视频和照片文件。所有这些都在各自的子目录中。所有文件都设置为私有。我尝试访问视频文件时收到AccessDenied。其他文件都没问题。

我试过这个无济于事:

{
 "Id": "Policy1331547131417",
 "Statement": [
   {
     "Sid": "Stmt1331546963174",
     "Action": [
       "*"
     ],
     "Effect": "Allow",
     "Resource": "arn:aws:s3:::actual_bucket_name_here/uploads/users/*/videos/*",
     "Principal": {
       "AWS": [
         "*"
       ]
     }
   },
   {
     "Sid": "Stmt1331547083926",
     "Action": [
       "*"
     ],
     "Effect": "Allow",
     "Resource": "arn:aws:s3:::actual_bucket_name_here/uploads/users/*/photos/*",
     "Principal": {
       "AWS": [
         "*"
       ]
     }
   },
   {
     "Sid": "Stmt1331547130024",
     "Action": [
       "*"
     ],
     "Effect": "Allow",
     "Resource": "arn:aws:s3:::actual_bucket_name_here/uploads/users/*/banners/*",
     "Principal": {
       "AWS": [
         "*"
       ]
     }
   }
 ]
}

我的广告系列政策与视频,照片和横幅相同。所有文件的ACL权限也相同。那么为什么我无法访问我的视频目录中的文件?

2 个答案:

答案 0 :(得分:0)

您如何实际尝试访问您的视频文件,即通过哪种工具,服务,API?

使用中的访问方法实际上也可能需要s3:ListBucket操作的权限,例如JavaScript视频播放器小部件可能会隐式查找相关视频的各种文件格式,以向用户显示相应的选择 - 您需要了解Operations on Buckets之间的区别(例如ListBucket)和Operations on Objects(例如GetObject),有关详细信息,请参阅我对Problems specifying a single bucket in a simple AWS user policy的回答。

相应地扩展视频存储分区策略可能会解决此问题,例如: (仅限政策片段):

{
 "Statement": [
   {
     "Action": [
       "s3:ListBucket"
     ],
     "Effect": "Allow",
     "Resource": "arn:aws:s3:::actual_bucket_name_here/uploads/users/*/videos",
     "Principal": {
       "AWS": [
         "*"
       ]
     }
   }
 ]
}

请注意,此政策片段会解决存储桶 ,其中仅解决其中的对象 和< strong>两个片段都是必需的 - 如上所述,我对Problems specifying a single bucket in a simple AWS user policy的回答解释了这种微妙的差异。

答案 1 :(得分:0)

除了斯特芬·欧宝的答案。

下面是为我工作的

{
    "Statement": [
        {
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::BUCKET_NAME/*",
            "Principal": {
                "AWS": [
                    "*"
                ]
            }
        }
    ]
}