CloudFrontの設定をいっつもパートナーさんに投げてるとバチが当たる。
俺の貴重な1時間はこうして無駄になったのである。
CloudFrontを利用しているサイトにBASIC認証をかける時は、Headerの設定をしないといかんよ、というメモ。
Apacheの設定
これはごくごく普通の設定。今回はバーチャルホストの設定ファイルで書いてますが、.htaccess
を使っていても一緒です。ちなみにApache2.4です。
AuthUserfile {{ パス }}/.htpasswd
AuthName "Please enter your ID and password"
AuthType Basic
Require valid-user
通常はこれでBASIC認証の設定は完了します。apachectl restart
などでApacheを再起動して該当URLにアクセス、例のダイアログが表示されたら設定自体は問題ないはずです。
CloudFrontの設定
…ところが、間にCloudFrontを噛ましていると、このダイアログが消えず、無限認証地獄にはまり込みます…。何故なら、CloudFrontはデフォルトで認証情報を通してくれないから…。そこで設定を変更してやります。
- CloudFrontのコンソールにアクセス。該当のドメインの管理画面にログインします
- 「Behaviors」のタブをクリック
- 「Create Behavior」をクリック。Behavior作成画面に遷移します
- Path Patternに「*」を設定。もしくは、対象のディレクトリを指定します
- Whitelistsに、「Authorization」を追加して、画面右下の「Yes, Edit」を押下。編集を完了します
これで無事、サイトにアクセスできるようになったはず。
あなたのちょっとした時間が無駄にならなければ、俺はそれだけで幸せなのです。