🎅🦌こちらは ZYYX Advent Calendar 2023/12/24の記事です。✨🎄✨
概要
CloudFrontを入れている環境下でBasic認証を掛けたい場合、Lambda@Edgeでやるのはもう古いかも?CloudFront Functionでサクッと済ませるのが良さげ。というお話です。
Lambda@EdgeでBasic認証を実現
4年くらい前に、以下の記事などを参考にCloudFrontを入れている環境下でLambda@Edgeを用いてBasic認証を掛けてみました。
https://qiita.com/takahashi-kazuki/items/688f5f736bd76682483c
(ちょっと手順が多くて大変だったけど)なんとかBasic認証できたー!ということで作業完了。
CloudFront FunctionでBasic認証を実現
そして直近、別件でまたBasic認証を掛けることが有り、あの手順めんどくさかったな…ということを思い出し、別のやり方を調べ以下の記事などを参考に、CloudFront FunctionでBasic認証を実現しました。
https://dev.classmethod.jp/articles/apply-basic-authentication-password-with-cloudfront-functions/
あっさり作業完了しました。
1点、ビヘイビア設定のレスポンスヘッダに Authorization を追加しておく必要がありました。
比較
作業内容のシンプルさとしては、Lambda@EdgeよりCloudFront Functionを用いる方が断然楽でした。
また、CloudFrontのビヘイビア設定でどのように関数の関連付けを行ってるかによっても前提条件が変わってくるんですが、毎月のリクエスト回数が全く同じだった場合、料金はCloudFront Functionの方が安くなります。
おわりに
AWS上で作っていたものについて、数年後にもっと簡単・安価に済ませられるやり方が登場してた、ということはよくありますよね。
その辺のアンテナはちゃんと張り続けておかなくてはなー、ついでにAWSの認定試験も数年おきにちゃんと受け直さなきゃなーと思いました。(次回の認定試験の更新日、いつだっけ…)