待機室バイパスルール
待機室バイパスルールは、Cloudflareのルールセットエンジンに基づいて構築され、待機室APIを介して管理される待機室ルールの一種です。待機室バイパスルールを使用すると、待機室を適用したくない特定のトラフィックやサイトまたはアプリケーションの領域を指定できます。各バイパスルールは、待機室のトラフィックを正確に制御するために、個々の待機室レベルで作成および管理されます。
バイパスルールを適用したい場所を示すには、以下のフィールドカテゴリからCloudflareのルールセットエンジンを介して利用可能なフィールドを使用してカスタムロジックを記述します。
- 標準フィールド
cf.threat_scoreおよびcf.bot_managementで始まるフィールドを除く動的フィールド- URIおよび引数値フィールド
- HTTPリクエストヘッダーフィールド
- HTTPリクエストボディフィールド
バイパスルールに記述された式に一致するすべてのトラフィックに待機室が適用されず、アクティブユーザーとしてカウントされないことに注意してください。イベントの事前キューイング、拒否キューイングメソッド、またはキュー全体など、待機室の機能はこのトラフィックには適用されません。バイパス待機室ルールを作成および有効にする際には、この点に留意してください。オリジンを圧倒したり、重大なトラフィックの急増を引き起こすことがないと確信できるトラフィックにのみバイパスルールを使用してください。
- パス/URLの除外: 待機室に設定したパスの下で特定のパスやURLをバイパスします。これらのパスに待機室を適用したくない場合。
- 管理者バイパス: 内部サイト管理者が常に待機室をバイパスできるようにします。通常、IPアドレスで識別されます。
- 地理ターゲティング: 特定の国をキューから除外します。
- クエリ文字列の除外: 待機室に設定したパスの下で特定のクエリ文字列を除外します。
- ファイル拡張子の除外: 待機室HTMLテンプレートで使用する
.jsなどの特定のファイル拡張子に待機室が適用されないようにします。
除外したいクエリ文字列やパスに加えて、サブリクエストがヒットする可能性のあるパスやファイルタイプも式に含めて、これらのアセットやパスに待機室が適用されないようにしてください。そうしないと、これらのサブリクエストは待機室のクッキーを取得します。なぜなら、まだ待機室の対象となっているからです。
これには、画像、JavaScriptファイル、CSSファイルなどが含まれる可能性があります。また、リクエストが.js、.css、.pngなどで終わる場合に待機室をバイパスするようにルールを設定することもできるため、これらのアセットが保存されている各パスを手動で設定する必要はありません。
例条件: ends_with(http.request.uri.path, ".js")
新しいバイパスルールを作成するには:
- Cloudflareダッシュボード ↗にログインし、アカウントとドメインを選択します。
- アプリケーション内で、トラフィック > 待機室に移動します。
- 待機室を展開し、ルールを管理を選択します。
- 新しいバイパスルールを作成を選択します。
- ルール名にルールの説明的な名前を入力します。
- 受信リクエストが一致する場合の下で、ルール式を定義します。フィールドドロップダウンリストを使用してHTTPプロパティを選択します。各リクエストについて、フィールドで選択したプロパティの値が、値で指定した値と演算子で選択した演算子を使用して比較されます。
- その後の下で、バイパス待機室アクションが自動的に選択されます。保存する前に、式を確認し、式に一致するトラフィックが待機室を適用したくないトラフィックであることを確認してください。
- ルールを保存して展開するには、保存して展開を選択します。ルールを展開する準備ができていない場合は、下書きとして保存を選択します。
- 比較演算子は、式で定義された値が、式が真を返すために実際のHTTPリクエスト値とどのように関連する必要があるかを指定します。
- 論理演算子は、2つの式を組み合わせて複合式を形成し、優先順位の順序を使用して式がどのように評価されるかを決定します。
- グルーピングシンボルは、式を整理し、演算子の優先順位を強制し、式をネストすることを可能にします。
例や使用法については、ルール言語ドキュメントの演算子とグルーピングシンボルを参照してください。
待機室APIを介して、待機室のバイパスルールを管理、削除、作成できます。待機室APIのバイパスルールは、bypass_waiting_roomアクションを利用する待機室ルールです。
APIを介してバイパス待機室ルールを作成する際は、次の点に注意してください。
- ルールを適用したい待機室をすでに作成して保存していること。
- 待機室をバイパスしたいトラフィックを示す式を定義すること。
- ルールアクションを
bypass_waiting_roomに設定すること。
待機室APIのCloudflare APIベースURLに次のエンドポイントを追加して待機室ルールを作成します。新しい待機室ルールは、既存のルールの後に追加されます。
POST zones/{zone_id}/waiting_rooms/{room_id}/rules次の必須およびオプションのパラメータを使用してバイパスルールを構成します。
- 説明(オプション) - このバイパスルールの目的を記録するための説明を付けます。
- 式(必須) - バイパスルールを適用するトラフィックを示すルール式を定義します。
- アクション(必須) - 式が真と評価されたときに取るアクションを定義します。これを
bypass_waiting_roomに設定します。 - 有効(オプション) - これはデフォルトでtrueになります。ルールを展開したくない場合は、これをfalseに設定する必要があります。
待機室の下のパスとそのすべてのサブパスをバイパスする
待機室がexample.com/に設定されていて、example.com/bypassmeおよびそのすべてのサブパスを訪れるトラフィックをバイパスしたい場合。この例では、js、css、またはpngのサブリクエストも待機室をバイパスして、バイパスされるパスでアセットが正しく読み込まれるようにします。この例では、すべてのリクエストがjs、css、またはpngで終わる場合、サブパスに関係なく待機室をバイパスします。これが意図した使用ケースでない場合は、式を変更して特定の要件やサイトアーキテクチャに合わせてください。
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/waiting_rooms/{room_id}/rules" \--header "Authorization: Bearer <API_TOKEN>" \--data '{ "description": "subpath bypass", "expression": "starts_with(http.request.uri.path, \"/bypassme\") or ends_with(http.request.uri.path, \".js\") or ends_with(http.request.uri.path, \".css\") or ends_with(http.request.uri.path, \".png\")", "action": "bypass_waiting_room"}'定義されたIPリストが待機室をバイパスできるようにする
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/waiting_rooms/{room_id}/rules" \--header "Authorization: Bearer <API_TOKEN>" \--data '{ "description": "ip list bypass", "expression": "ip.src in $bypass_ip_list", "action": "bypass_waiting_room"}'待機室APIを介して、待機室ルールAPI呼び出しを使用してバイパスルールを管理することもできます。
- 待機室ルールのリスト: 待機室のルールをリストします。
- 待機室ルールの置き換え: 待機室のすべてのルールを置き換えます。
- 待機室ルールのパッチ: 待機室のルールを更新します。
- 待機室ルールの削除: 待機室のルールを削除します。