Почему я получаю AccessDenied с видео? - PullRequest
1 голос
/ 12 марта 2012

Использование 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 также одинаковы для всех файлов.Так почему я не могу получить доступ к файлам из моего каталога видео?

1 Ответ

0 голосов
/ 12 марта 2012

Как вы на самом деле пытаетесь получить доступ к вашим видеофайлам, то есть с помощью какого инструмента, сервиса, API?

Используемый метод доступа может фактически требовать разрешения для действия s3:ListBucket, например:виджет проигрывателя видео JavaScript может неявно искать различные форматы файлов рассматриваемого видео, чтобы представить соответствующий выбор вашему пользователю - вам нужно знать о разнице между операциями с сегментами (например, ListBucket ) и Операции над объектами (например, GetObject ), см. Мой ответ на Проблемы с указанием одного сегмента в простой пользовательской политике AWS для получения дополнительной информацииподробности об этом.

Расширение соответствующей политики видео может решить эту проблему, например (только фрагмент политики):

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

Обратите внимание, что этот фрагмент политики относится к bucket , где ваш адрес только для объектов в них и оба фрагмента необходимы - как уже упоминалосьОднако эта тонкая разница объясняется в моем ответе на Проблемы с указанием одного сегмента в простой политике пользователя AWS .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...