Нет целей, доступных при попытке установить псевдоним с маршрута 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 endpoints, когда я пытаюсь установить целевой псевдоним.

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

21 голос | спросил Amir Zucker 26 MarpmWed, 26 Mar 2014 17:10:01 +04002014-03-26T17:10:01+04:0005 2014, 17:10:01

1 ответ


32

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

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

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

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

  

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

     

http: //docs.aws.amazon .com /НАЧАЛО /последний /SWH /GettingStarted создать-bucket.html # ковшового требования

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

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

ответил Michael - sqlbot 26 MarpmWed, 26 Mar 2014 21:41:55 +04002014-03-26T21:41:55+04:0009 2014, 21:41:55

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132