Я пытаюсь установить CloudFront
для обслуживания статических файлов, размещенных в моем коврике S3
. У меня есть дистрибутив настройки, но я получаю AccessDenied
при попытке перейти к файлу CSS (/CSS/stlyle.css
) внутри ведра S3:
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>E193C9CDF4319589</RequestId>
<HostId>
xbU85maj87/jukYihXnADjXoa4j2AMLFx7t08vtWZ9SRVmU1Ijq6ry2RDAh4G1IGPIeZG9IbFZg=
</HostId>
</Error>
Я установил свой дистрибутив CloudFront в свой ведро S3 и создал новый Origin Access Identity policy
, который был добавлен автоматически в ведро S3:
{
"Version": "2008-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E21XQ8NAGWMBQQ"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::myhost.com.cdn/*"
}
]
}
Я что-то пропустил?
Я хочу, чтобы все мои файлы в этом ведре S3 служили через CloudFront...
* ОБНОВЛЕНИЕ *
Этот облачный фронт guide говорит:
По умолчанию ваш ведро Amazon S3 и все объекты в нем являются частными: только учетная запись AWS, которая создала ведро, имеет разрешение на чтение или запись объектов в ней. Если вы хотите разрешить кому-либо доступ к объектам в вашем ковше Amazon S3 с использованием URL-адресов CloudFront, вы должны предоставить публичные разрешения на чтение для объектов. (Это одна из самых распространенных ошибок при работе с CloudFront и Amazon S3. Вы должны явно предоставлять привилегии каждому объекту в ведро Amazon S3.)
Таким образом, на основе этого я добавил новые разрешения для всех объектов внутри ведра S3 до Everyone Read/Download
. Теперь я могу получить доступ к файлам.
Но теперь, когда я обращаюсь к файлу типа https://d3u61axijg36on.cloudfront.net/css/style.css
, он перенаправляется на S3 URI и HTTP
. Как отключить это?