Azure Front Door のレート制限とは
レート制限を使用すると、ソケット IP アドレスからの異常に高いレベルのトラフィックを検出してブロックできます。 Azure Front Door で Azure Web アプリケーション ファイアウォールを使用すると、一部の種類のサービス拒否攻撃を軽減できます。 レート制限により、短時間で大量の要求を送信するように誤って構成されたクライアントから保護することもできます。
ソケット IP アドレスは、Azure Front Door への TCP 接続を開始したクライアントのアドレスです。 通常、ソケット IP アドレスはユーザーの IP アドレスですが、プロキシ サーバーの IP アドレスまたは、ユーザーと Azure Front Door の間に存在する別のデバイスの IP アドレスである場合もあります。異なるソケット IP アドレスから Azure Front Door にアクセスする複数のクライアントがある場合、それぞれに独自のレート制限が適用されます。
レート制限ポリシーを構成する
レート制限は、カスタム WAF 規則を使用して構成されます。
レート制限規則を構成するときは、 "しきい値" を指定します。 しきい値は、1 分または 5 分の時間内に各ソケットの IP アドレスから許可される Web 要求の数です。
また、少なくとも 1 つの "一致条件" を指定する必要があります。これにより、Azure Front Door にレート制限をアクティブにするタイミングが通知されます。 アプリケーション内の異なるパスに適用される複数のレート制限を構成できます。
すべての要求にレート制限規則を適用する必要がある場合は、次の例のような一致条件を使用することを検討してください。
上記の一致条件は、長さが 0
より大きい Host
ヘッダーを持つすべての要求を識別します。 Azure Front Door のすべての有効な HTTP 要求には Host
ヘッダーが含まれているため、この一致条件は、すべての HTTP 要求に一致する効果があります。
レート制限と Azure Front Door サーバー
多くの場合、同じクライアントからの要求は、同じ Azure Front Door に届きます。 その場合、各クライアント IP アドレスのレート制限に達すると、ただちに要求がブロックされます。
同じクライアントからの要求が、レート制限のカウンターをまだ更新していない別の Azure Front Door サーバーに届く可能性もあります。 たとえば、クライアントが要求ごとに新しい TCP 接続を開き、各 TCP 接続が別の Azure Front Door サーバーにルーティングされることもあります。
しきい値が十分に低い場合、新しい Azure Front Door サーバーへの最初の要求はレート制限のチェックを通過します。 したがって、低いしきい値 (たとえば、1 分あたりの要求が約 200 件未満) の場合、しきい値を超える一部の要求が通過する場合があります。
レート制限のしきい値と時間枠を決定する際には、いくつかの考慮事項に留意してください。
- DDoS攻撃を防ぐには、許容されるリクエスト数のしきい値が最小で、ウィンドウ サイズが大きいことが最も効果的な構成です。 攻撃者がしきい値に達すると、レート制限期間の残りの期間はブロックされるため、この構成は、より効果的です。 したがって、攻撃者が 1 分間の最初の 30 秒間にブロックされた場合、残りの 30 秒間だけレートが制限されます。 5 分間の最初の 1 分間で攻撃者がブロックされた場合、残りの 4 分間はレートが制限されます。
- 時間枠のサイズを大きく (1 分ではなく 5 分など)、しきい値を大きく (たとえば、100 ではなく 200) 設定すると、短い時間枠のサイズと低いしきい値を使用するよりも、レート制限のしきい値に近い値を適用する方が正確になる傾向があります。
- Azure Front Door WAF のレート制限は、一定期間で動作します。 レート制限のしきい値に違反すると、そのレート制限ルールに一致するすべてのトラフィックが、一定期間の残りの期間ブロックされます。
次のステップ
- Azure Front Door WAF でレート制限を構成します。
- レート制限のベスト プラクティスを確認します。