Я пытаюсь настроить простой веб-сайт на основе Amazon AWS S3, как описано здесь .
Я настроил S3 bucket (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, когда я попробуйте установить цель псевдонима.
Что я пропустил??
amazon-web-services
website
amazon-s3
alias
amazon-route53
Амир Цукер
источник
источник
Ответы:
Псевдоним A-записи, который вы создаете, должен совпадать с именем сегмента, поскольку виртуальный хостинг сегментов в S3 требует, чтобы
Host:
заголовок, отправляемый браузером, совпадал с именем блока . На самом деле не существует другого практического способа, с помощью которого можно было бы реализовать виртуальный хостинг сегментов ... сегмент должен идентифицироваться каким-либо механизмом, и этот механизм является заголовками http.Чтобы создать псевдоним для корзины внутри домена «example.com», имя корзины также должно быть именем хоста, которое вы можете юридически объявить в этом домене ... A-запись маршрута 53 "testbucket.example .com», например, может только быть совмещенным в ведро под названием„testbucket.example.com“... и нет другого ведра.
В вашем вопросе вы нарушаете это ограничение ... но вы можете создать псевдоним только для корзины с именем "simples3websitetest.com" внутри (и на вершине) домена "simples3websitetest.com".
Это сделано по замыслу и не является ограничением ни для маршрута 53, ни для S3. Они только мешают вам делать то, что не может работать. Веб-серверы не знают ни о псевдонимах, ни о CNAME, ни о каких-либо других действиях в DNS - они получают только оригинальное имя хоста, к которому браузер считает, что он пытается подключиться, в заголовках http, отправленных браузером ... и S3 использует это информация для определения имени сегмента, к которому применяется виртуальный размещенный запрос.
Обратите внимание, однако, что это ограничение применяется только тогда, когда вы не используете CloudFront перед вашей корзиной.
Облако CloudFront обеспечивает большую гибкость, поскольку
Host:
заголовок может быть переписан (самим CloudFront) до того, как запрос будет передан в S3. Вы настраиваете «исходный хост» в своем дистрибутиве CloudFront,your-bucket.s3-website-xx-yyyy-n.amazonaws.com
где xx-yyyy-n - это область AWS S3, в которой было создано ваше ведро. Эта конечная точка отображается в консоли S3 для каждого сегмента.источник
alias
записей маршрута 53, указывающих на сегменты S3 с включенным хостингом веб-сайта, что заставляет DNS разрешать конечную точку веб-сайта, а не конечную точку REST. Конечные точки веб-сайта вообще не поддерживают SSL ; делают только конечные точки REST. Кроме того, все сертификаты с подстановочными знаками поддерживают только один сертификат*
и могут отображаться только в крайнем левом компоненте имени хоста, так что на самом деле это не ограничение S3.https://s3-us-west-2.amazonaws.com/my-bucket.with-dots.in-us-west-2/key
. Неправильная региональная конечная точка = ошибка перенаправления.Предположим, у вас есть размещенная зона abc.com. и вы создаете корзину abc.com (которая не отображается в списке псевдонимов маршрутов) - вы можете подумать, что это. после имени - который вы не можете назвать ведрами с
Попробуйте это тоже. Потому что в первый раз я создал ведро с правильным именем и до сих пор не работает. Поверьте мне, у меня ОКР, поэтому я не пропустил точку с запятой или запятую.
Это помогло мне опробовать почти все - некоторые предложения, которые я вижу, - это выйти из системы и войти в систему для какого-то кеша, но не уверен
источник