Basic認証(S3 + CloudFront + Lamdba)
コーポレートサイトを作っていて検証として公開したいが、閲覧の制限をかけたかったので急ぎめでBasic認証をかけました。
前提
環境構築
- Lamdbaで、リュージョンをバージニア北部にする。
画像は、一度lambdaの関数を作成したことがない場合です。「関数」を作成ボタンをクリックする。
名前: CorporateWebsite
- ランタイム: Node js 6.10
- ロール: デフォルト(テンプレートから新しいロールを作成)
- ロール名: lambda_edge_exection
- ポリシーテンプレート: Basic Edge Lamdba アクセス権限
- 関数の作成をクリックする
関数コードにコードを貼り付ける。user, passwordは変更すること。
ヘッダーの「保存」をクリックする。(画像は切れています)
ヘッダーのアクションからバージョン発行をクリックする。
バージョンの説明を書き、発行をクリックする。
ARNをコピー(保存)する。($lastestではなく、発行したバージョンになっていることを確認)(画像は$LATESTです)
CloudFront
- Distributionsを選択して、Distribution Settingsをクリックする。
タブからBehaviorsを選択する。
該当のBehaviorsを選択して、Editボタンをクリックする。
Lambda Function Associations Event Typeは、 viewer Requestを選択して、Lambda Function ARNにコピーしておいたARNを入力する。
Yes, Editをクリックする。
確認
サイトにアクセスして、Basic認証がかかっているか確認する。
かかっていることが確認できたので、完了です。