AWS WAFにレート制限(Rate-based Rule)を設定する方法
生徒
「先生、AWS WAFでアクセスが多すぎるときに制限をかける方法があるって聞いたんですが、それはどうやるんですか?」
先生
「いい質問ですね。それはレート制限、英語ではRate-based Rule(レート ベースド ルール)と呼ばれる仕組みです。短時間に大量のリクエストを送ってくるユーザーを制御するために使います。」
生徒
「それを使えばDDoS攻撃や不正アクセスを防ぐことができるんですか?」
先生
「そうです。完全に防ぐことは難しいですが、一定の制限をかけることで被害を減らすことができます。では、具体的な仕組みと設定方法を見ていきましょう。」
1. レート制限(Rate-based Rule)とは?
レート制限とは、一定の時間内に特定のIPアドレスから送られてくるリクエストの数を監視し、上限を超えた場合に自動的に制御する仕組みです。例えば「5分間に1000リクエストを超えたらブロックする」といったルールを設定できます。
AWS WAF(エーダブリューエス ワフ)はWeb Application Firewall(ウェブ アプリケーション ファイアウォール)の略で、こうしたルールを簡単に導入できるのが特徴です。
2. レート制限が必要な理由
Webアプリケーションは通常、多数のユーザーからアクセスされます。しかし攻撃者は短時間に大量のリクエストを送り、システムを負荷でダウンさせることがあります。このような行為を防ぐのがレート制限です。
具体的な攻撃例として、DDoS(ディードス)攻撃や総当たりログイン攻撃があります。こうした攻撃に対して、レート制限ルールを使うと安全性を大幅に高められます。
3. レート制限ルールの仕組み
レート制限ルールは「カウント」と「アクション」の組み合わせで動作します。
- カウント(読み方はカウント)…指定時間内のリクエスト数を監視
- アクション(読み方はアクション)…許可、ブロック、カウントを設定
例えば「5分間で2000リクエストを超えたらブロック」というように条件を指定できます。
4. AWSマネジメントコンソールでの設定手順
AWSマネジメントコンソールを使うと、初心者でも簡単にレート制限ルールを設定できます。手順は次の通りです。
- AWSマネジメントコンソールにログイン
- AWS WAFのダッシュボードを開く
- 「Web ACL(ウェブ アクセス コントロール リスト)」を選択
- 「ルールを追加」をクリック
- 「レートベースルール」を選択し、しきい値を入力(例:2000リクエスト/5分)
- アクションを「ブロック」または「許可」に設定
- 保存して有効化
この流れを押さえておけば、シンプルに制御を追加できます。
5. 実際に使える活用例
レート制限ルールはさまざまな場面で役立ちます。例えば以下のようなケースです。
- ログインページに対する総当たり攻撃を防止
- API(エーピーアイ)の呼び出し回数を制限
- 特定のボットによるアクセスを制御
これにより、正規のユーザーを守りながら攻撃を最小限に抑えることができます。
6. レート制限と他ルールの組み合わせ
レート制限は単独で使うよりも、他のルールと組み合わせると効果的です。例えばIP制限ルールと併用して「特定の国からのアクセスは500回を超えたらブロック」といった制御が可能です。
また、カスタムルールやルールグループと組み合わせて使うと、よりきめ細かい防御が実現できます。
7. 運用時の注意点
レート制限は便利ですが、設定値を間違えると正規のユーザーまでブロックしてしまう恐れがあります。特にアクセスが集中するECサイトやイベントサイトでは注意が必要です。
まずは「カウント」モードでテストし、しきい値が妥当かどうかを確認してから「ブロック」に変更するのが安全です。
8. 初心者が押さえるべきポイント
初心者はまず、少し緩めの制限を設定して様子を見るのが良いでしょう。ログを活用して「どのくらいのアクセスが通常なのか」を把握することが大切です。その上で必要に応じて制限値を調整しましょう。
レート制限はAWS WAFを使ったセキュリティ対策の基本であり、他のセキュリティルールと組み合わせることで強力な防御が可能になります。