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

Почему из корзины S3, обслуживаемой CloudFront, доступен только index.html, и ничего больше?

Я пытаюсь открыть статический сайт, размещенный в S3, через CloudFront.

Ковш S3 (testyop1) настроен для размещения статических веб-сайтов (не в общедоступном режиме), а его политика сегмента

{
    "Version": "2008-10-17",
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E...."
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::testyop1/*"
        }
    ]
}

В конфигурации хостинга веб-сайтов указано, что index.html является индексным документом.

На стороне CloudFront, для исходного доменного имени установлено значение testyop1.s3-website-eu-west-1.amazonaws.com без пути к источнику. Название было взято из конфигурации веб-хостинга S3 (без http://).

Я могу получить доступ https://xxxxx.cloudfront.net, так же как https://xxxxx.cloudfront.net/index.html (где xxxxx - это имя, созданное CloudFront)

Все остальные звонки на https://xxxxx.cloudfront.net потерпеть неудачу с

403 Forbidden

Code: AccessDenied
Message: Access Denied
RequestId: F...D
HostId: i...V4X7l4=

несмотря .html файлы присутствуют (как в корневом каталоге, так и в подкаталоге).

Это сообщение об ошибке исходит от S3? (или CloudFront?)

Какие особые разрешения помимо приведенной выше политики сегмента должны быть установлены?

Вы не можете комбинировать идентификацию Origin Access с функцией хостинга веб-сайтов. OAI предназначен только для REST. Ваши объекты должны быть общедоступными, чтобы использовать конечную точку веб-сайта за CloudFront, потому что конечные точки веб-сайтов не поддерживают аутентификацию.