【AWS】CloudFrontに独自ドメインを設定したら403エラーが表示される

事象

S3に置いたHTMLファイルに独自ドメインを設定してCloudFront経由でHTTPS通信の設定をしたのちに、ルートディレクトリにアクセスすると以下のような404エラーが表示されてしまいました。

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<script/>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>XEPEYVGSA5HNY19B</RequestId>
<HostId>SNHMf5z/OAX0LzEkGR7+GPaJMHN6jdKeoQDF+fy6qFvfXm7t8SQO9xxxxxx=</HostId>
</Error>

ムームードメインでドメインを取得して、Route53でエイリアスレコードを追加済。証明書も設定済。digコマンドを実行するとANSWER SECTIONが表示されているので、CNAME(代替ドメイン)の設定は正しくできているのになぜ!?ハマったので解決方法をメモしておきます。

原因

CloudFront ディストリビューションでデフォルトルートオブジェクトの設定ができていなかったのが原因でした。

参考サイト:AWS公式 デフォルトのルートオブジェクトの指定 – デフォルトのルートオブジェクトの仕組み

解消方法

↓CloudFrontコンソールで、デフォルトルートオブジェクトを参照するようにディストリビューションを更新していきます。まずは、CloudFrontコンソールを開いて、一般タブの設定フィールドの「編集」ボタンをクリックします。

↓下の方の「デフォルトルートオブジェクト – オプション」にデフォルトルートオブジェクトのファイル名を入力します。今回は「index.html」を入力して「変更を保存」をクリックします。オブジェクトの間に「/」は不要です。

この設定をしたことで、 https://example.comにアクセスすると、https://example.com/index.htmlの内容が表示できました!

コメント

タイトルとURLをコピーしました