概要

AWS S3 で静的ファイルのホスティングをするにはバケットへいくつか設定が必要です。

  1. 静的ウェブサイトホスティングを有効にする
  2. パブリックアクセスのブロック設定を編集する
  3. バケットポリシーを追加して外部からのアクセスを許可する

ここでは、AWS CLI を使った設定方法を紹介します。

設定

まずはバケットを作成します。

aws s3 mb s3://Bucket-Name --region ap-northeast-1

次に、バケットのプロパティにある静的ウェブサイトホスティングを有効にします。

aws s3 website s3://Bucket-Name --index-document index.html

パブリックアクセスのブロック設定はバケットを CLI で作成した場合はデフォルトでオフになっているので、今回は設定を変更する必要はありません。

もし、バケットをコンソールで作成した場合は s3api put-public-access-block コマンドを実行します。

最後に、バケットポリシーを追加して外部からのアクセスを許可します。

バケットに設定するポリシー を policy.json という名前で作成してください。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublicReadGetObject",
      "Effect": "Allow",
      "Principal": "*",
      "Action": [
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::Bucket-Name/*"
      ]
    }
  ]
}

作成したファイルを指定してコマンドを実行すれば完了です。

aws s3api put-bucket-policy --bucket Bucket-Name --policy file://policy.json