S3 Static Web Site BASIC認証
AWS S3 Static Web SiteでBASIC認証したくていろいろ調べてたのですが、現時点(2018/10/18)ではできないようでした。調べていくと S3 + CloudFront + Lamda@Edgeでおなじようなことが実現とのことで試しました。
こんな感じでCloudFrontを使ってBASIC認証ができます。
basic-auth-s3-cloudfront-lambda-allinone.yamlをダウンロード
最初にbasic-auth-s3-cloudfront-lambda-allinone.yaml設定ファイルをダウンロードする。
CloudFormationを実行する
CloudFormationは「バージニア北部」を指定しないとこの処理は、失敗します。
ダウンロードしたファイルを使ってCloudFormationのスタック実行します。
[スタックの作成]ボタンをクリックすると「テンプレートの選択画面」が表示されます。「テンプレートを Amazon S3 にアップロード」項目をチェックし、[Choose File]ボタンをクリックするとアップロードするダイアログが表示されますので、basic-auth-s3-cloudfront-lambda-allinone.yamlをアップロードします。[次へ]を押すと「詳細の指定」が表示されます。
[スタックの名前]とBASIC認証で使うための[AuthPass][AuthUser]を設定し[次へ]ボタンですすみます。 最後の設定画面がでます。そこで「IAMリソースが作成できるがいいか」みたいな文言が書いているのでチェックします。
CloudFormationがIAMとS3とCloudFrontを作成してくれますので、S3に静的コンテンツを配置するだけです。