Я пытаюсь открыть статический сайт, размещенный в 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, потому что конечные точки веб-сайтов не поддерживают аутентификацию.