Entoverse

Reactのこと

S3 Static Web Site BASIC認証

AWS S3 Static Web SiteBASIC認証したくていろいろ調べてたのですが、現時点(2018/10/18)ではできないようでした。調べていくと S3 + CloudFront + Lamda@Edgeでおなじようなことが実現とのことで試しました。

f:id:mojeld:20181018200810p:plain
こんな感じで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リソースが作成できるがいいか」みたいな文言が書いているのでチェックします。

CloudFormationIAMS3CloudFrontを作成してくれますので、S3に静的コンテンツを配置するだけです。