Как отключить необработанный доступ к конечной точке Amazon S3

Скажем, вы хотите разместить статический веб-сайт на S3:

  1. Вы создаете ведро с именем your-website.com и настроить его для веб-хостинга;
  2. Вы добавляете 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

Другие вопросы по тегам