Назад | Перейти на главную страницу

Нет доступных целей при попытке установить псевдоним цели с маршрута 53 на S3

Я пытаюсь настроить простой веб-сайт на базе Amazon AWS S3, как описано Вот.

Я установил ведро S3 (simples3websitetest.com), дал ему (надеюсь) правильные разрешения:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::simples3websitetest.com/*"
            ]
        }
    ]
}

Я загрузил index.html, настроил доступ к сайту, и он доступен через http://simples3websitetest.com.s3-website-us-west-2.amazonaws.com/index.html

Пока все хорошо, теперь я хочу настроить доступ к Amazon Route53, и здесь я застрял.

Я установил размещаемую зону на своем домене (resourcesbox.net), нажал «создать набор записей» и перешел на шаг «настроить псевдоним», но когда я получаю «Нет доступных целей» в конечных точках веб-сайта S3 попробуйте установить цель псевдонима.

Что я пропустил??

Создаваемый вами псевдоним A-записи должен совпадать с именем сегмента, поскольку виртуальный хостинг сегментов в S3 требует, чтобы Host: заголовок, отправленный браузером, соответствует имени сегмента. На самом деле нет другого практического способа, которым мог бы быть выполнен виртуальный хостинг сегментов ... сегмент должен быть идентифицирован каким-то механизмом, и этот механизм - заголовки http.

Чтобы создать псевдоним для корзины в домене example.com, имя корзины также должно быть именем хоста, которое вы можете официально объявить в этом домене ... Route 53 A-Record "testbucket.example .com, например, может только быть псевдонимом корзины с именем "testbucket.example.com" ... и никаким другим ведром.

В своем вопросе вы нарушаете это ограничение ... но вы можете создать псевдоним только для корзины с именем "simples3websitetest.com" внутри (и в верхней части) домена "simples3websitetest.com".

Это сделано специально, а не ограничением Route 53 или S3. Они только мешают вам делать то, что не может работать. Веб-серверы не знают ни о каких псевдонимах, CNAME или о чем-либо еще, сделанном в DNS - они получают только исходное имя хоста, к которому, по мнению браузера, он пытается подключиться, в заголовках http, отправленных браузером ... и S3 использует это информация для определения имени сегмента, к которому применяется виртуальный размещенный запрос.

Amazon S3 требует, чтобы вы дали корзине то же имя, что и домен. Это сделано для того, чтобы Amazon S3 мог правильно разрешать заголовки хостов, отправляемые веб-браузерами, когда пользователь запрашивает контент с вашего веб-сайта. Поэтому мы рекомендуем вам создать свои корзины для своего веб-сайта в Amazon S3, прежде чем платить за регистрацию своего доменного имени.

http://docs.aws.amazon.com/gettingstarted/latest/swh/getting-started-create-bucket.html#bucket-requirements

Однако обратите внимание, что это ограничение применяется только в том случае, если вы не используете CloudFront перед своим ведром.

CloudFront обеспечивает большую гибкость, поскольку Host: заголовок может быть переписан (самим CloudFront) до того, как запрос будет передан на S3. Вы настраиваете "исходный хост" в вашем распределении CloudFront как your-bucket.s3-website-xx-yyyy-n.amazonaws.com где xx-yyyy-n - это область AWS на S3, в которой была создана ваша корзина. Эта конечная точка отображается в консоли S3 для каждого сегмента.

Предположим, у вас есть размещенная зона abc.com. и вы создаете сегмент abc.com (который не отображается в списке псевдонимов маршрутов) - вы можете подумать, что это. после имени, которым нельзя назвать ведра

Попробуйте и это. Потому что в первый раз я создал ведро с правильным именем и все равно не сработало. Поверьте, у меня ОКР, поэтому я не пропустил точку или запятую.

  1. Создайте еще одну зону хостинга с тем же именем abc.com
  2. Теперь вы увидите две одинаковые зоны хостинга (abc.com. И abc.com.)
  3. Удалить новый
  4. Вернитесь в старую зону хостинга abc.com
  5. Возможно, вы увидите приближающиеся конечные точки s3 - это может быть проблемой в Route53

Это сработало для меня, попробовав почти все - некоторые предложения, которые я вижу, - это выйти и войти в систему для какой-то очистки кеша - не уверен