kikeda1104's blog

備忘録・技術に関することを書いています。(webエンジニア)

Basic認証(S3 + CloudFront + Lamdba)

コーポレートサイトを作っていて検証として公開したいが、閲覧の制限をかけたかったので急ぎめでBasic認証をかけました。

前提

  • httpsでの公開まで終えている
  • Lamdba CloudFrontと連携させてBasic認証を行う

環境構築

  • Lamdbaで、リュージョンをバージニア北部にする。
  • 画像は、一度lambdaの関数を作成したことがない場合です。「関数」を作成ボタンをクリックする。 f:id:kikeda1104:20180703191838p:plain

  • 名前: CorporateWebsite

  • ランタイム: Node js 6.10
  • ロール: デフォルト(テンプレートから新しいロールを作成)
  • ロール名: lambda_edge_exection
  • ポリシーテンプレート: Basic Edge Lamdba アクセス権限
  • 関数の作成をクリックする

f:id:kikeda1104:20180703192202p:plain

関数コードにコードを貼り付ける。user, passwordは変更すること。

gist.github.com

  • ヘッダーの「保存」をクリックする。(画像は切れています) f:id:kikeda1104:20180703192419p:plain

  • ヘッダーのアクションからバージョン発行をクリックする。

  • バージョンの説明を書き、発行をクリックする。

  • ARNをコピー(保存)する。($lastestではなく、発行したバージョンになっていることを確認)(画像は$LATESTです)

gyazo.com

CloudFront

  • Distributionsを選択して、Distribution Settingsをクリックする。
  • タブからBehaviorsを選択する。

  • 該当のBehaviorsを選択して、Editボタンをクリックする。

f:id:kikeda1104:20180703193235p:plain

Lambda Function Associations Event Typeは、 viewer Requestを選択して、Lambda Function ARNにコピーしておいたARNを入力する。

Yes, Editをクリックする。

確認

サイトにアクセスして、Basic認証がかかっているか確認する。

かかっていることが確認できたので、完了です。

f:id:kikeda1104:20180703193720p:plain

参考

qiita.com