S3に色々ハマってます(没頭する方ではない)。ナスです。
今日は、気になってたことを調べてたらそういう仕様だった、というお話です。
S3へのアクセス方法には2種類ある
S3には2種類のパス形式がありますよね。
docs.aws.amazon.com
パス形式(Path Style Method)は、それぞれのオブジェクトのプロパティで見れるリンクの部分、こんなやつです。
パス形式
s3-ap-northeast-1.amazonaws.com/バケット名/オブジェクト名のパス
仮想ホスティング形式(Virtual Hosted–Style Method)は、静的ウェブホスティングを有効にした際に表示されるエンドポイントのURLです。こんなやつです。
仮想ホスティング形式
バケット名.s3-website-ap-northeast-1.amazonaws.com/オブジェクト名のパス
仮想ホスティング形式はhttpでのリンクなのに、オブジェクトのプロパティで見れるリンクはパス形式&httpsだったので、それぞれの形式でhttpとhttpsが問題なくできるか試してみました。
で、その結果は↓です。
URL形式 | プロトコル | 結果 |
---|---|---|
パス形式 | http | ◯ |
パス形式 | https | ◯ |
仮想ホスティング形式 | http | ◯ |
仮想ホスティング形式 | https | × |
あれ?仮想ホスティング形式だけhttpsアクセスできない??
最初、何か設定ミスとかしてるのかなーと思ってましたが、下記のforumのやり取りを見つけてそういうものだということがわかりました。
https://forums.aws.amazon.com/thread.jspa?messageID=237792
「バケットの仮想ホスティング」ページにもそのことは書いてあるんですが、ちょっと表現がわかりにくいので裏をとろうと思って探した結果がこのforumです。
そもそも、S3のデフォルトのURLでwebを公開することがほとんどないような気はしますが、何かの拍子に使うかもしれませんので、しょーもない話ですが書くことにしました。
ちなみに、このforumを見つけてこのことを確信するまでに1週間弱かかりました…