1

У меня есть политика s3 ведра, как это отрицающий запросы, если реферер не указан вS3 условие доступа ведра политика

{ 
    "Sid": "6", 
    "Effect": "Deny", 
    "Principal": "*", 
    "Action": "s3:GetObject", 
    "Resource": "arn:aws:s3:::my_bucket_name/*", 
    "Condition": { 
     "StringNotLike": { 
      "aws:Referer": [ 
       "http://example1.com/*", 
       "http://example2.com/*", 
       "https://*amazon.com*/*" 
      ] 
     } 
    } 
} 

записки я попытался https://*amazon.com*/*, https://*aws.amazon.com* ,https://*amazon.com*,http://*amazon.com* моей проблемы в том, что я не в состоянии получить упругие trasncoders (один из aws-сервисов), когда он пытается извлечь объект, и, таким образом, задание выдает такую ​​ошибку: «У вас нет разрешений, необходимых для чтения указанного объекта из указанного ведра». Обратите внимание, что все работает нормально, если я удалю политику. Поэтому мой вопрос в том, что я должен поставить ретранслятор эластичных транскодиров как ?. Я пробовал пару комбинаций и искал здесь и там, но все напрасно. Пожалуйста, дайте мне знать, если вы думаете, что есть лучший способ этого.

  • обновление:

также есть способ, что я могу фильтровать некоторые отклоненный запрос на ведро политики, например, в описанном выше случае я могу позволить запрос, который не из указанных выше областей, но с конкретным айпи адрес. из amazon docs here я увидел, что сначала они проверяют на явное запрещение, а затем эти запросы запрета не проверяются, есть ли способ обойти это. Любая помощь будет высоко оценена. спасибо за ваше время

ответ

0

Вместо создания политики ведра, которая разрешает доступ к эластичному транскодеру Amazon, разрешения предоставляются через служебную роль, используемую службой Transcoder.

До тех пор, пока роль службы имеет разрешения на доступ к вашим файлам на S3, не должно быть необходимости предоставлять ее с помощью политики Bucket. (Хотя я не уверен, что произойдет, если у вас есть в политике ковшом активного DENY.)

См: Service Roles for Elastic Transcoder Pipelines

+0

Обновление: [документация Bucket политика] (https://docs.aws.amazon.com /AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-4) говорит: «Явный отказ отменяет любые разрешения, которые вы могли бы предоставить объектам в контейнере examplebucket, используя другие средства, такие как ACL или пользовательских политик. ", поэтому может быть, что вы не можете использовать DENY в политике ведра. –

+0

спасибо за ответ, как я использую эластичный trasncoder на backend, как упоминалось здесь (http://aameer.github.io/articles/aws-elastic-encoder/). пожалуйста, посмотрите, может быть, это поможет объяснить вам, что может быть решением этой проблемы. Также вы можете взглянуть на этот вопрос, который является одним и тем же, просто подход немного отличается (http://stackoverflow.com/questions/33801483/joining-two-conditions-in-amazon-s3-bucket-policy) , Спасибо за ваше время. – Aameer

+0

Кроме того, я не создаю политику ведра, чтобы разрешить доступ к эластичному транскодеру, он уже имеет это и отлично работает, если я удалю политику, эта политика предназначена для остановки несанкционированного доступа к контенту, если каким-то образом злоумышленнику удается получить подписанную облачную подпись URL-адреса, реализация которых упоминается здесь (http://aameer.github.io/articles/cloudfront-singed-urls/). – Aameer

Смежные вопросы