LoginSignup
7
6

More than 5 years have passed since last update.

S3でStaticWebsiteHostingしようとして「アクセス拒否」「403」で悩んだ

Posted at

AWS Activated活用したい

AWS Activatedを利用出来るようになったので、あまりコストを気にすることなくガンガン使っていこうと思った。S3に静的コンテンツを配置したら簡単にホスティング出来る、ということだったので、ちょっとやってみたらいろいろハマったのでメモしておく。不正確なところがあるかもしれませんがご容赦下さい。

S3のアクセス権限が変更できない

  • S3→「+バケットを作成する」バケット名にはドメイン名を指定すること、というルール。
  • 作成したバケット選択
  • 「アップロード」で、適当なindex.htmlをアップロード。
  • 「プロパティ」タブからStatic website hostingにて「このパケットを仕様してウェブサイトをホストする」にチェック。
  • インデックスドキュメントをindex.htmlに指定し「保存」する。
  • 「アクセス権限」タブから「パケットポリシー」選択
  • パケットポリシーエディタで以下入力
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadForGetBucketObjects",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<作成したS3バケット名>/*"
        }
    ]
}
  • 「保存」実行!! s3-error1.png
  • 不吉な!!
  • 作成したS3バケットの「プロパティ」タブの下の「Static website hosting」をクリックして、エンドポイントをクリック
  • HTTP 403: Access Denied
  • 不吉な!!

対処

  • 「アクセス権限」タブの「パブリックアクセス設定」にて「新規のパブリックバケットポリシーをブロックする (推奨)」のチェックはずして「保存」
  • IAMでアクセス権チェック。足りなければ付与。「AmazonS3FullAccess」があればいいはず(もっと最小限でもいい)
  • S3バケットにアップロードしたindex.htmlをクリック
  • 「公開する」をクリック
  • エラー アクセス拒否!!
  • 親バケットに戻って「アクセス権限」タブから「パブリックアクセス設定」「バケットにパブリックポリシーがある場合、パブリックアクセスとクロスアカウントアクセスをブロックする (推奨) 」チェックボックスを外して「保存」
  • 再度index.htmlを「公開する」
  • 公開された!!

エンドポイントにアクセス出来た!!

みんなこんなことやってるんですか??

7
6
0

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
7
6