6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

S3の静的ウェブサイトホスティングでハマったところ

Last updated at Posted at 2019-05-04

説明

S3の静的ウェブサイトホスティング、AWS公式のチュートリアルを参考にして設定してみたんですが、ハマったところがいくつかあり、なおかつネット上で解決策を見つけられなかったので、ハマりどころとその解決策を共有します。
同じところでハマった方の助けになればと思います。

ハマりどころ

ハマりどころ1:S3のバケットをパブリックに公開するバケットポリシーを作成できない

現象

下記のスクリーンショットの通り、バケットポリシーが作成できない。

バケットポリシー作成時にAccess Denied

原因と解決策

原因は、「S3ブロックパブリックアクセス」でパブリックなバケットポリシーの作成を制限していたこと。問題の箇所についてAWSの開発者ガイドから引用すると・・・

BlockPublicPolicy
このオプションを TRUE 設定すると、指定されたバケットポリシーでパブリックアクセスが許可されている場合、Amazon S3 は PUT Bucket ポリシーへの呼び出しを拒否します。

と言うことで、以下のスクリーンショットの通り、「Block new public bucket policies」をFalseに設定することで、パブリックなバケットポリシーが作成できました。

BlockPublicPolicyの設定箇所.png

ハマりどころ2:S3のバケットをパブリックに公開したつもりなのに403 Forbidden

現象

バケットポリシーの作成、S3の静的ウェブサイトホスティングの設定を済ませた上でエンドポイントにアクセスしたところ、アクセスが拒否された。

403 Forbidden

原因と解決策

ハマりどころ1と同様、S3ブロックパブリックアクセスが原因だった。
また開発者ガイドから引用すると・・・

RestrictPublicBuckets
このオプションを TRUE に設定すると、パブリックポリシーを持つバケットへのアクセスは、AWS サービスとバケット所有者のアカウント内の承認されたユーザーのみに制限されます。

今度は「Block public and cross-account access if bucket has public policies」をFalseに設定することで、無事ページが閲覧できるようになった。

RestrictPublicBucketsの設定箇所.png サイトにアクセスできたところ.png

ハマりどころ3:Route53でレコードを作成すると404 Not Found

現象

ハマりどころ1, 2を乗り越え、S3のエンドポイントへの直アクセスではページが閲覧できるようになったが、ドメイン名を指定してアクセスすると404 Not Foundになる、と言う現象。

原因と解決策

原因はS3のバケット名がドメインと異なったこと。今回の場合、

バケット:example-qiita
ドメイン:example-qiita.com

のように別の名前にしていたため、404のエラーになってしまっていた。

どうやらRoute53はドメイン名のままS3にルーティングするみたいなので、バケットを「example-qiita.com」の名前で作り直すことで、無事サイトが公開できた。

感想

「書いてある通りやっても上手く行かない」ことって多いですね!
(英語のチュートリアルを読みながらやったので、書いてある通りできてないかも)

6
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?