【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/

でアクセス。