Немає доступних цілей при спробі встановити псевдонім-ціль з маршруту 53 до S3


21

Я намагаюся створити простий веб-сайт 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, і ось тут я застряг.

Я налаштував розміщену зону на власному домені (ресурси box.net) і натиснув "створити набір записів", і потрапив на крок "псевдонім настройки", але я отримую "Немає цілей" під кінцевими точками веб-сайту S3, коли я спробуйте встановити ціль псевдоніма.

Що я пропустив ??


Починаючи з жовтня 2012 року Amazon представила функцію для переадресації (HTTP 301) для відра S3. Ви можете прочитати мою попередню відповідь тут. stackoverflow.com/a/24218895/1160780
Альберто Спелта

Відповіді:


33

Створений вами псевдонім A повинен бути таким самим, як і ім’я відра, тому що для віртуального розміщення відра у S3 потрібно, щоб Host:заголовок, надісланий браузером, відповідав імені відра. Насправді не існує ще одного практичного способу, за допомогою якого можна здійснити віртуальне розміщення відра ... відро має бути визначене за допомогою якогось механізму, і цей механізм є заголовками http.

Для того, щоб створити псевдонім для відра всередині домену "example.com", ім'я відра має бути також ім'ям хоста, яке ви можете юридично оголосити в межах цього домену ... testbucket.example .com », наприклад, може тільки бути поєднаним в відро під назвою" testbucket.example.com "... і немає іншого відра.

У своєму запитанні ви порушуєте це обмеження ... але ви можете створити псевдонім лише у відро з назвою "simples3websitetest.com" всередині (і на вершині) домену "simples3websitetest.com".

Це за задумом, а не зовсім обмеженням маршруту 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 для кожного відра.


1
Це справді була проблема, я створив відро під назвою resourcebox.net і воно з’явилося. Дякую! Швидке запитання: що це означає, що якщо я хочу мати різні відра для цього домену, я повинен мати субдомени, щоб відповідати кожному відрізку правильно? Немає шляхів навколо цього?
Амір Цукер

Я не точно впевнений, що ви маєте на увазі під "я повинен мати субдомени". Потрібно створити запис на маршруті 53 з іменем хоста, що відповідає кожному відрізку, яке ви хочете використовувати для розміщення веб-сайту в S3, так.
Майкл - sqlbot

1
@oberstet це питання щодо aliasзаписів маршруту 53, вказаних на відра S3 з увімкненим хостингом веб-сайтів, через що DNS може вирішувати кінцеву точку веб-сайту, а не кінцеву точку REST. Кінцеві точки веб-сайту взагалі не підтримують SSL ; виконують лише кінцеві точки REST. Крім того, всі символи символів підключення підтримують максимум один, * і він може відображатися лише в самому лівому компоненті імені хоста, так що це насправді не обмеження S3.
Michael - sqlbot

1
@oberstet 6.4.3.1 Клієнт НЕ повинен намагатися співставити представлений ідентифікатор, в якому символ підстановки містить мітку, відмінну від самої лівої мітки. Отже, немає такого поняття, як багатоярусна підстановка. У будь-якому випадку, ваша проблема з boto - це питання того, що опція "формат виклику", очевидно, реалізована неправильно. До кожного кова можна отримати доступ через https з назвою відра як першого елемента шляху в URL-адресі S3 для правильної області відра, наприклад https://s3-us-west-2.amazonaws.com/my-bucket.with-dots.in-us-west-2/key. Неправильна регіональна кінцева точка = помилка переадресації.
Майкл - sqlbot

1
@MartinLyne дякую. Я додав посилання на документацію до S3, про те, що ім'я відра та доменне ім’я потрібно бути однаковими, а також згадати спосіб вирішення вже прийнятого імені відра, використовуючи CloudFront. У регіонах us-1 та us-west-2, а можливо, і інших, вартість використання CloudFront незначна і може навіть трохи заощадити, оскільки завантаження CF коштує на 0,005 дол. локації.
Майкл - sqlbot

0

Припустимо, у вас розміщена зона abc.com. і ви створюєте відро abc.com (яке не відображається в списку в псевдонімах маршрутів) - ви можете подумати, що це. після імені - з яким ви не можете назвати відра

Спробуйте і це. Тому що я вперше створив відро з правильною назвою і досі не працював. Повірте, у мене є OCD, щоб я не пропустив ні стоп, ні коми.

  1. Створіть ще одну розміщену зону з такою ж назвою abc.com
  2. Тепер ви побачите 2 із тієї ж розміщеної зони (abc.com. Та abc.com.)
  3. Видаліть нову
  4. Поверніться до старої розміщеної зони abc.com
  5. Можливо, ви зможете побачити появу кінцевих точок s3 - це може бути проблемою в Route53

Це працювало для мене, намагаючись випробувати майже все - я бачу деякі пропозиції - вийти з системи та увійти в систему для кеш-пам’яті - не впевнений

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.