- クラウド技術
CloudFrontにWAF設定方法
- #AWS
目的
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
今回ご紹介するのは、CloudfrontにWAFを設定して許可するIPのみにサーバーに接続できるように環境を作成する手順です。
WAFとは
ユーザーが定義する条件に基づきウェブリクエストを許可、ブロック、または監視 (カウント) するルールを設定することで、ウェブアプリケーションを攻撃から保護するのを助ける Web アプリケーションファイアウォールです。
IP sets作成
https://console.aws.amazon.com/wafv2/homev2/ip-sets?region=global
CloudFrontはGlobal領域なので、「Global(CloudFront)」を選択してIP setsを作成します。
IP set name
名前を設定します。
Region
Globalでなければ、変更してください。
IP version
IPv4,IPv6を、両方は登録できないので、IPv6も使う為にはIPv6用のIPsetを作る必要があります。
IP address
単一のIPとCIDRを利用してIP範囲を設定可能です。
区分は行単位です。
テストの為、三つのIP setを作って見ました。
Web ACLs 作成
保護されたリソースが応答する Web リクエストをきめ細かく制御して、保護されたリソースで応答できます。Amazon CloudFront、Amazon API Gateway、Application Load Balancer、AWS AppSyncリソースの使用料金を見積もることができます。
Web ACLsもIP setsと同じように「Global(CloudFront)」を選択してWeb ACLsを作成します。
Resource typeは
「CloudFront distributions」を選択し、「Next」を押してください。
Add rules > Add my own rules and rule groups を選択してルールを追加します。
Rule type
上記で作ったIP setsを利用する為、IP setを選択します。
IP set
上記で作ったIP setを選択します。
Action
選択したIP setを許可する為「Allow」を選択します。
TEST-IP-Rule2はBlockにされているのでTEST-IP-Rule2に入っているIPは全て拒否されます。
Default action
ルールで決められなかったIPを許可するか拒否するかを選択します。
今回は決めたIP以外は拒否する為、「Block」を選択しました。
「Next」を押して次の設定に行きます。
ルールの順番を決めます。
例えば上のようだったらTEST-IP-Ruleは127.0.0.1/30を設定して127.0.0.0~127.0.0.3のIPが許可になりますが、TEST-IP-Rule2が127.0.0.1を拒否するとWAFに許可するIPは127.0.0.0、127.0.0.2、127.0.0.3なります。
TEST-IP-RuleがTEST-IP-Rule2上にあるとTEST-IP-Rule2は拒否にしても上のルールで許可されるので、
127.0.0.0~127.0.0.3のIP全部が許可されます。
設定したら「Next」を押して次に進んでください。
CloudWatchにMetricを記録してアラートの設定もできると思います。
必要な方は設定してください。
Web ACLの設定が終わりました。「Create web ACL」を押して作成してください。
CloudFrontにWAFを設定
設定したいCloudFrontのAWSコンソール画面で「編集」ボタンを押してください。
「AWS WAF ウェブACL」に作った「web ACL」を設定したら完了です。
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>