S3バケット公開がうまくいかない
最近S3バケットwebサイトを公開するにあたって、設定の部分で困ったことが起きたので備忘録として残しておきます。
公開設定として今回はバケットポリシーを使用しました。
前提としてなんとなくバケット作るくらいできるよ、っていう人向けです。(作るだけなら簡単ですが)
注意点
- 古い記事ベースだと設定項目が足らず、どハマりする
- バケットポリシー のジェネレーター出力結果を鵜呑みにしてはいけない
手順
- バケット作成時にパブリックアクセスを設定できるように制限を外す
具体的には下記の画面。2018年11月あたりに追加されたパブリックアクセスを誤って設定してしまわないためのセーフティーロックのようなものです。チェックを全て外さないと公開設定が一切できない(バケットポリシーも無効になってしまう)ので忘れないようにしましょう。
このまま次へ次へと進めればバケット作成はOK。
※間違ってチェック外し忘れた場合は作成後もバケットの下記画面から変更できます。
- 公開するバケットポリシー を設定する
次はバケットそのものを公開するのであればバケット単位で公開設定した方が手っ取り早いので、バケットポリシー を指定します。
ジェネレータを使ってs3の全てをアクセスできるようなポリシーを指定すると以下のようなものが出力されます。
{
“Version”: “2012-10-17”,
“Id”: “xxxxxxxxxxx”,
“Statement”: [
{
“Sid”: “xxxxxxxxxxxx”,
“Effect”: “Allow”,
“Principal”: “*”,
“Action”: “s3:*”,
“Resource”: “arn:aws:s3:::bucket-name/”
}
]
}ここで注意が”Resource”: “arn:aws:s3:::bucket-name/”の部分。
バケット名/の後に*つけてあげないとうまく設定できません。
バケット設定画面のものそのままコピペすると*付いてないので見落とす方もいるかと・・・・ - 設定が完了したら、何か適当にファイルをアップロードして、ブラウザからアクセスできれば成功です!
まとめ
内容としては自分のようなS3知ってるけど細かいところよくわかってない人間がハマりそうな内容でした。
便利なものではありますが何もかも公開は危ないのでその辺注意して使用するようにしましょう!