AWS WAFの公開設定を色々とためしてみました!
事前準備
- Amazon CloudFrontとAmazon S3を組み合わせて公開
Amazon CloudFront #001 - Amazon S3と組み合わせて公開
Amazon CloudFrontと組み合わせた公開
AWS WAFとAmazon CloudFrontを組み合わせて公開する方法です。
AWSコンソール → WAF & Shieldをクリック。
「Create web ACL」をクリック。
任意名称を設定。リソースタイプにCloudFrontを選択。対象のCloudFrontディストリビューションを選択。その他は今回はデフォルトのまま設定。
内容を確認し「Create web ACL」をクリック。
作成されたWeb ACLをクリック。
Web ACLの詳細を確認できます。
指定IPのみ公開
AWS WAFで指定IPのみ公開する方法です。
事前準備として、Web ACLの設定。
「IP sets」をクリック。
「Create IP set」をクリック。
任意名称を設定。リージョンにCloudFrontを選択。IPv4を選択。対象のIPアドレスを設定。 → 「Create IP set」をクリック。
作成されたIP設定をクリック。
IP設定の詳細を確認できます。
「Web ACLs」をクリック → 対象のWeb ACLをクリック。
「Rules」をクリック → 「Add rules」をクリック → 「Add my own rules and rule groups」をクリック。
IP setを選択。任意名称を設定。IP setに設定したIP設定を選択。Source IP addressを選択。ActionはAllowを設定 → 「Add rule」をクリック。
「Save」をクリック。
Rulesに設定されたのを確認できます。次にデフォルトルールの「Edit」をクリック。
Default actionはBlockを選択。Response codeは403を設定 → 「Save」をクリック。
設定されてるかを確認します。
設定したIPからURLにアクセスするとWebSiteが表示されます。指定IP以外はWebSiteが表示されません。
Basic認証公開
AWS WAFでBasic認証で公開する方法です。
事前準備として、Web ACLの設定。
「Web ACLs」をクリック → 対象のWeb ACLをクリック。
「Rules」をクリック → 「Add rules」をクリック → 「Add my own rules and rule groups」をクリック。
Rule builderを選択。任意名称を設定。タイプはRegular ruleを選択。Statementはキャプチャ内容で設定。String to matchにはユーザー名とパスワードをbase64で変換した値を格納。ActionはBlockを設定。Custom responseはキャプチャ内容で設定 → 「Add rule」をクリック。
「Save」をクリック。
作成されたルールをクリック。
ルールの詳細を確認できます。
URLにアクセスするとユーザーとパスワードの入力画面が表示されます。
設定したユーザーとパスワードを入力するとWebSiteが表示されます。
リクエスト制限
AWS WAFでリクエスト制限する方法です。
事前準備として、Web ACLの設定。
「Web ACLs」をクリック → 対象のWeb ACLをクリック。
「Rules」をクリック → 「Add rules」をクリック → 「Add my own rules and rule groups」をクリック。
Rule builderを選択。任意名称を設定。タイプはRate-based ruleを選択。Request rate detailsはRate limitを今回は100で設定。ActionはBlockを設定 → 「Add rule」をクリック。
「Save」をクリック。
作成されたルールをクリック。
ルールの詳細を確認できます。
5分以内に100回以上動的にアクセスしてみます。
5分間に指定回数以上アクセスがあるとブロックされます。指定回数以下になるとアクセスが可能になります。
AWS WAFを利用することで、Amazon CloudFrontと組み合わせた公開や、今回試したIP制限・Basic認証・リクエスト制限以外にもさまざまな設定が可能です。
次回は、Amazon Route 53も組み合わせた方法も紹介できたらと思います。
AWS WAFとAmazon CloudFrontについて、他にも記事を書いています。よろしければぜひ。
tags - AWS WAF
tags - Amazon CloudFront