Estou tentando expor um site estático hospedado no S3 por meio do CloudFront.
O bucket S3 ( testyop1
) está definido para hospedar sites estáticos (não no modo público) e sua política de buckets é
{
"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/*"
}
]
}
A configuração de hospedagem do site informa que index.html
é o documento de índice.
No lado do CloudFront , o nome de domínio de origem é definido como testyop1.s3-website-eu-west-1.amazonaws.com
sem nenhum caminho de origem. O nome foi retirado da configuração de hospedagem na Web do S3 (sem o http://
).
Eu posso acessar https://xxxxx.cloudfront.net
, bem como https://xxxxx.cloudfront.net/index.html
(onde xxxxx é o nome gerado pelo CloudFront)
Todas as outras chamadas para https://xxxxx.cloudfront.net
falham com
403 Forbidden
Code: AccessDenied
Message: Access Denied
RequestId: F...D
HostId: i...V4X7l4=
apesar dos arquivos .html
estarem presentes (tanto no diretório raiz quanto em um subdiretório).
Essa mensagem de erro vem do S3? (ou CloudFront?)
Quais autorizações específicas além da Política de balde acima devem ser definidas?