【AWS】S3を簡易的なWebサーバーとして機能させるメモ
AWSのマネージドサービスであるS3を簡単なWebサーバーとして機能させるメモになります。
あくまで学習の一環です。
S3のファイル置き場のことをS3バケットと言います。
ダッシュボードでの設定
S3のダッシュボードで、作成を押す。
パケット名(ドメイン名でアクセスしたいときはそのドメイン名で設定する。)を指定し、作成を押す。
(次へを押すと細かいオプションを設定できる。)
Webサーバーとして機能させる
ダッシュボードでパケット名を押しプロパティへ、Static Website Hostingを設定する。
これは、Webサーバーとしての機能を有効にさせる設定。
「このパケットを使用してウェブサイトをホストする」を選択
インデックスドキュメント(URLがスラッシュで終わるとき返すファイル)はindex.html
エラードキュメント(エラー発生時に返すファイル)はerror.htmlとかに各自設定する。
リダイレクトルール(指定したパスにアクセスしたとき、他のURLにリダイレクトさせる設定)は空欄で。
匿名アクセス可能にする
匿名アクセスを可能にするには、既存のポリシーでは設定できないので、カスタムポリシーを設定する。
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html
にあるJSONデータの
{ "Version":"2012-10-17", "Statement":[{ "Sid":"PublicReadGetObject", "Effect":"Allow", "Principal": "*", "Action":["s3:GetObject"], "Resource":["arn:aws:s3:::example-bucket/*" ] } ] }
Resourceをカスタマイズする必要がある。
arn:aws:s3:リージョン名:アカウント:バケット名:パス名
:となっているのは指定しないという意味。*は全てという意味。
上のだとリージョン名とアカウント名が指定されていない状態。
ここではバケット名だけ、自分が指定したものにすればOK。
匿名アクセスのポリシーを設定できるようにする。
先程のプロパティの右にあるアクセス権限→ブロックパブリック→編集→上2つにチェック
更に上のバケットポリシーに先程のコードを入力。
ダッシュボードの概要から適当なファイルをアップロード。
http://www.バケット名.s3-website-ap-northeast-1.amazonaws.com/
でアクセス。