S3に色々ハマってます(没頭する方ではない)。ナスです。

今日は、気になってたことを調べてたらそういう仕様だった、というお話です。

S3へのアクセス方法には2種類ある

S3には2種類のパス形式がありますよね。

仮想ホスティングを使用して、1 台の Web サーバーから複数の Web サイトに...

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週間弱かかりました…

元記事はこちら

S3の仮想ホスティング形式の制約 [cloudpack OSAKA blog]