Как отключить необработанный доступ к конечной точке Amazon S3
Скажем, вы хотите разместить статический веб-сайт на S3:
- Вы создаете ведро с именем
your-website.com
и настроить его для веб-хостинга; - Вы добавляете CNAME в файл зоны вашего домена, чтобы указать на ваш сегмент S3.
Отлично. Все отлично работает при посещении http://your-website.com
, Но вы не хотите, чтобы необработанная /"голая" конечная точка была доступна.
Есть ли в ведре какие-либо настройки для отключения прямого доступа к http://your-website.com.s3-website.your-region.amazonaws.com
?
Причина в том, что если ваш веб-сайт доступен как через http://your-website.com
а также http://your-website.com.s3-website.your-region.amazonaws.com
повредит вашему SEO (дублированный контент)
1 ответ
Вы упоминаете, что ваша главная проблема - это SEO. Для этой цели вы можете использовать другие методы, которые, вероятно, проще реализовать, чем тот, о котором вы изначально спрашивали.
Одним из основных методов борьбы с дублированным контентом является использование rel=canonical
, что, вероятно, довольно легко реализовать. Для получения дополнительной информации см. http://googlewebmastercentral.blogspot.com.br/2013/04/5-common-mistakes-with-relcanonical.html
Если вы настаиваете на необходимости запретить доступ к корзине, если клиент не подключается через ваш CNAME, лучше всего использовать CloudFront. Вы отключаете опцию хостинга веб-сайта S3 в своем сегменте, делаете свой сегмент S3 частным (т. Е. Удаляете политики сегментов или ACL, разрешающие публичное чтение), создаете дистрибутив CloudFront, определяете свой сегмент в качестве источника, настраиваете CNAME в своем дистрибутиве, изменяете Записи DNS, указывающие на ваш дистрибутив, а не на сегмент, создайте в вашем дистрибутиве идентификатор доступа к источнику (OAI) и предоставьте доступ к вашему сегменту для этого OAI. Уф.
Делая все это, пользователь не сможет получить доступ к содержимому вашего сегмента S3 (если у него нет AK/SK с разрешениями на чтение блока и, очевидно, на отправку подписанного запроса). Единственный способ будет через ваш домен.
Для получения дополнительной информации об идентификации доступа к источнику см. http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html