Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

レート制限ルール

最終更新 Markdown で表示Agent セットアップ

レート制限ルールでは、式に一致するリクエストのレート制限と、その上限に達したときに実行するアクションを定義できます。Web サイトや API の不正利用を防ぐために使います。たとえば、ログインエンドポイントをブルートフォース攻撃から守る、または 1 クライアントが一定時間内に呼べる API 回数の上限を設ける、といった用途です。

新しいセキュリティダッシュボード では、レート制限ルールは セキュリティルール の種類の 1 つです。セキュリティルールは、指定したフィルターに一致する受信リクエストに対して、セキュリティ関連のアクションを実行します。

一部の Enterprise のお客様は、アカウントレベルで レート制限ルールセット を作成し、複数の Enterprise ゾーンへデプロイできます。

ルールのパラメーター

Cloudflare の Ruleset Engine で評価されるほかのルールと同様、レート制限ルールには次の基本パラメーターがあります。

  • Rules language で、一致させるトラフィックの条件を指定する です。
  • ルールに一致し、追加の条件も満たしたときに実行する内容を指定する アクション です。レート制限ルールでは、レートが指定した上限に達したときにアクションが実行されます。

これら 2 つのパラメーターに加え、レート制限ルールでは次の追加パラメーターが必要です。

  • 特性(Characteristics): このルールのレートを Cloudflare が追跡する方法を定義するパラメーターの集合です。
  • 期間(Period): レートを評価するときに考慮する期間(秒)です。
  • 期間あたりのリクエスト数(Requests per period): この期間内に、レート制限ルールをトリガーするリクエスト数です。
  • 継続時間(Duration)(または mitigation timeout): レートに達したあと、このフィールドで定義した期間、以降のリクエストをブロックします。
  • アクションの動作(Action behavior): 既定では、この期間中のリクエストレートに関係なく、設定した継続時間(または mitigation timeout)のあいだ、Cloudflare はルールアクションを適用します。一部の Enterprise のお客様は、最大レートを超える リクエストをスロットル するようルールを設定できます。レートが設定した上限より低いときは、受信リクエストを許可します。

必須パラメーターと任意パラメーターの詳細は、レート制限のパラメーター を参照してください。

Cloudflare が上記のパラメーターを使って受信リクエストのレートをどう判定するかは、Cloudflare がリクエストレートを判定する方法 を参照してください。

ほかのアプリセキュリティ機能との関係

カスタムルール、Managed Rules、Super Bot Fight Mode など、複数のアプリケーションセキュリティ機能を使っている場合は、これらの機能がどのように連携するか、どの順序で実行されるかを把握することが重要です。詳細は セキュリティ機能の相互運用性 を参照してください。

注意事項

  • レート制限ルールは順番に評価されます。Block などの一部のアクションは、ほかのルールの評価を止めます。アクションとその動作の詳細は アクション を参照してください。

  • レート制限ルールは、正確な件数のリクエストだけをオリジンサーバーへ届けるための機能ではありません。リクエストの検出からレートカウンターの更新まで、最大で数秒の遅れが出ることがあります。この遅れのため、Cloudflare がブロックや Challenge などの緩和アクションを適用する前に、上限を超えたリクエストがオリジンへ届く場合があります。カウンターの仕組み(データセンター単位のスコープを含む)は、リクエストレートの算出 を参照してください。

  • 検証済みボットにレート制限ルールを適用すると、Search Engine Optimization(SEO)に影響することがあります。詳細は SEO を改善する を参照してください。


利用可否

機能 Free Pro Business アプリケーションセキュリティ付き Enterprise Advanced Rate Limiting 付き Enterprise
ルール式で使えるフィールド Path、Verified Bot Host、URI、Path、Full URI、Query、Verified Bot Host、URI、Path、Full URI、Query、Method、Source IP、User Agent、Verified Bot 一般的なリクエストフィールド、リクエストヘッダーフィールド、Verified Bot、Bot Management フィールド1 一般的なリクエストフィールド、リクエストヘッダーフィールド、Verified Bot、Bot Management フィールド1、リクエストボディフィールド2
キャッシュ除外 いいえ いいえ はい はい はい
カウント特性 IP IP IP、IP with NAT support IP、IP with NAT support IP、IP with NAT support、Query、Host、Headers、Cookie、ASN、Country、Path、JA3/JA4 Fingerprint1、JSON フィールド値2、Body2、Form input value2、Custom
カスタムカウント式 いいえ いいえ はい はい はい
カウント式で使えるフィールド N/A N/A ルール式の全フィールド、レスポンスコード、レスポンスヘッダー ルール式の全フィールド、レスポンスコード、レスポンスヘッダー ルール式の全フィールド、レスポンスコード、レスポンスヘッダー
カウントモデル リクエスト数 リクエスト数 リクエスト数 リクエスト数 リクエスト数、複雑度スコア
レート制限アクションの動作 緩和期間中にアクションを実行する 緩和期間中にアクションを実行する 緩和期間中にアクションを実行する 緩和期間中にアクションを実行する、block アクションでレート超過リクエストをスロットルする 緩和期間中にアクションを実行する、block アクションでレート超過リクエストをスロットルする
カウント期間 10 秒 対応するすべての値(最大 1 分)3 対応するすべての値(最大 10 分)3 対応するすべての値(最大 65,535 秒)3 対応するすべての値(最大 65,535 秒)3
緩和タイムアウト期間 10 秒 対応するすべての値(最大 1 時間)3 対応するすべての値(最大 1 日)3 対応するすべての値(最大 1 日)3 4 対応するすべての値(最大 1 日)3 4
ルール数 1 2 5 1005 100

脚注

1: Bot Management を購入した Enterprise のお客様のみ利用できます。

2: 利用可否は WAF プランによります。

3: 対応するカウント期間 / 緩和期間の値(秒):
10、15、20、30、40、45、60(1 分)、90、120(2 分)、180(3 分)、240(4 分)、300(5 分)、480、600(10 分)、900、1200(20 分)、1800、2400、3600(1 時間)、65535、86400(1 日)。
すべての値がすべてのプランで使えるわけではありません。

4: Enterprise のお客様は、API でカスタムの緩和タイムアウト期間を指定できます。

5: Enterprise のお客様がレート制限ルールを使うには、契約に application security が含まれている必要があります。ルール数は契約内容によります。

Footnotes

  1. Bot Management を購入した Enterprise のお客様のみ利用できます。 2 3

  2. 利用可否は WAF プランによります。 2 3 4

  3. 対応する期間の値(秒):
    10、15、20、30、40、45、60(1 分)、90、120(2 分)、180(3 分)、240(4 分)、300(5 分)、480、600(10 分)、900、1200(20 分)、1800、2400、3600(1 時間)、65535、86400(1 日)。 2 3 4 5 6 7 8

  4. Enterprise のお客様は、API でカスタムの緩和タイムアウト期間を指定できます。 2

  5. Enterprise のお客様がレート制限ルールを使うには、契約に application security が含まれている必要があります。ルール数は契約内容によります。

次のステップ

次のリソースを参照してください。

Terraform の例は、Terraform でレート制限ルールを設定する を参照してください。


関連リソース

役に立ちましたか?