CloudFront + S3 のウェブホスティングにHugoで作成したサイトを公開しました。その際にトップサイトのindex.html は表示されるのに、サブディレクトリの中のindex.htmlが表示されず、AccessDeniedとなる事象に出会いました。投稿した各記事が閲覧できない状態です。原因は以下2つでした。
①S3のアクセス設定が 誤っていた
[誤]
“AWS”: “arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity XXXXX”
[正]
“*”
{
“Version”: “2008-10-17”,
“Id”: “PolicyForCloudFrontPrivateContent”,
“Statement”: [
{
“Sid”: “1”,
“Effect”: “Allow”,
“Principal”: {
“AWS”: “*”
},
“Action”: “s3:GetObject”,
“Resource”: “arn:aws:s3:::testsite.com/*”
}
]
}
②CloudFrontのOrigin Domain Nameが間違っていた
[誤]
・testsite.com.s3.amazonaws.com
[正]
・testsite.com.s3-website-ap-northeast-1.amazonaws.com

S3の「Static website hosting」のエンドポイントのURLから「http://」を省いたものを指定する必要があります。