0

Я рассмотрел ниже ответ, но он говорит о Identity Access Identity для личного контента и подписанных URL-адресов. Мой контент не является частным, он открыт для публики, но я не хочу, чтобы другие сайты ссылались на мои изображения. Другими словами, изображения на моем сайте должны быть доступны через мои URL-адреса в моем домене.Как ограничить доступ CloudFront только к моему сайту?

Simple example to restrict access to Cloudfront(S3) files from some users but not others

Я следовал ниже документ для создания OAI на моем дистрибутиве CloudFront.
http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html

После применения OAI в моем дистрибутиве произошло что-то странное. Я мог получить доступ к некоторым изображениям, а некоторые не могли.
И при работе с localhost я не смог получить доступ к изображениям CloudFront.

Есть ли способ указать, какие домены имеют доступ к моим ресурсам, а какие нет? Как это?

{ 
      "Sid": "AllowPublicRead", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "*" 
      }, 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::my-bucket/*", 
      "Condition": { 
       "StringLike": { 
        "aws:Referer": [ 
         "http://example.com/*", 
         "localhost:*" 
        ] 
       } 
      } 
     } 

ответ

0

Действие «блокировать» с помощью такой политики, как вы, должно произойти на уровне Cloudfront. S3 не будет учитываться, кроме случаев, когда он запрашивается для нового контента (что может объяснить, почему у вас были странные проблемы, пытающиеся получить доступ к изображениям).

Если ваш вопрос по существу пытается заблокировать хотлинкинга, то, к сожалению, я считаю, что единственный способ справиться с этим с помощью АМС это с Подписана URL,: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html

Вот Stack нить по теме: Preventing Amazon Cloudfront hotlinking

Просто, чтобы дать вам альтернативу, которая проще, хотя требует периодического ручного обновления, вот что я делал в прошлом. Ядром этого является размещение CNAME в вашем распределении Cloudfront, например assets-1.yoursite.com. Через несколько месяцев, если вы обнаружите, что вас поддерживают hotlinked, вы можете просто изменить CNAME на assets-2.yoursite.com, а затем обновить свой сайт, чтобы использовать новый URL. Если у вас есть одна переменная, которая контролирует путь CDN для вашего сайта, это может быть быстрым решением.

Это объясняется в глубине здесь: http://www.explainthatstuff.com/blocking-cloudfront-hotlinks.html

Вы могли бы использовать в CloudFront «Популярные объекты» и аналитические разделы «Вверх REFERRER» в консоли AWS, чтобы контролировать количество трафика, поступающего от других сайтов, чтобы увидеть, когда это было бы подходящее время для переключения CNAME.