Skip to content

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

ダッシュボードでレート制限ルールを作成する

最終更新 Markdown で表示Agent セットアップ
  1. Cloudflare ダッシュボードで Security rules ページを開きます。

    Security rules を開く ↗
  2. 空のルールを新規作成する場合は、Create rule > Rate limiting rules を選択します。既存ルールを複製する場合は、その横の三点リーダー > Duplicate を選択します。

  3. Rule name に、わかりやすいルール名を入力します。

    Cloudflare ダッシュボードの Create rate limiting rule ページ
  4. Field ドロップダウンで HTTP プロパティを選びます。各リクエストについて、Field で選んだプロパティの値が、Operator で選んだ演算子を使って Value に指定した値と比較されます。

  5. (任意)Cache status の下で Also apply rate limiting to cached assets をオフにすると、レート判定の対象をオリジンに到達するリクエストだけにできます。

  6. With the same characteristics の下で、レート制限用のリクエストカウンターを定義する特性を 1 つ以上追加します。値の組み合わせごとに、レートを判定するカウンターが用意されます。詳細は Cloudflare がリクエストレートを決める方法 を参照してください。

  7. (任意)レートカウンターを増やす条件を式で指定する場合は、Use custom counting expression を有効にして式を設定します。デフォルトでは、カウント用の式はルール式と同じです。カウント用の式には レスポンスフィールド を含められます。

  8. When rate exceeds の下で、レート判定に使うリクエスト数の上限と期間を定義します。

  9. Then take action の下で、Choose action ドロップダウンリストからルールアクションを選びます。たとえば Block を選ぶと、指定した条件に合うリクエストが上限に達したとき、Cloudflare はそのリクエストを拒否します。

  10. (任意)Block アクションを選んだ場合は、設定したレート制限を超えたリクエストに対して カスタムレスポンスを設定 できます。

  11. Duration ドロップダウンで緩和のタイムアウトを選びます。レートに達したあと、選んだアクションを Cloudflare が適用し続ける期間です。

    有料アドオン付きの Enterprise のお客様は、選んだ期間だけアクションを適用する代わりに、リクエストをスロットル できます。リクエストをスロットルするには、With the following behavior の下で Throttle requests over the maximum configured rate を選びます。

  12. ルールを保存してデプロイするには Deploy を選択します。まだデプロイしない場合は Save as Draft を選択します。

ブロックしたリクエストのカスタムレスポンスを設定する

ルールで Block アクションを選ぶと、任意でカスタムレスポンスを定義できます。

カスタムレスポンスには次の 3 つの設定があります。

  • With response type: リストからコンテンツタイプ、またはデフォルトの rate limiting レスポンスを選びます。利用できるカスタムレスポンスタイプは次のとおりです。

    ダッシュボードの値 API の値
    Custom HTML "text/html"
    Custom Text "text/plain"
    Custom JSON "application/json"
    Custom XML "text/xml"
  • With response code: レスポンスの HTTP ステータスコードを 400〜499 の範囲で選びます。デフォルトのレスポンスコードは 429 です。

  • Response body: レスポンスの本文です。選んだレスポンスタイプに合わせて、有効な本文を設定します。フィールドの最大サイズは 30 KB です。

役に立ちましたか?