ルールエンジンを使用すると、同じ構文とロジックに従って、キャッシュルール、リダイレクトルール、圧縮ルール、オリジンルール、Web Application Firewall (WAF) 保護ルールなど、さまざまなルールを作成およびデプロイできます。
概要
Edge Security Acceleration (ESA) のルールエンジンを使用すると、GUI でルールを作成できます。 ESA は、ルールで定義されたリクエストパラメーターに基づいて、受信リクエストに特定の構成を適用するかどうかを確認します。これにより、より柔軟で正確なコンテンツ配信制御が可能になります。
ルールの優先順位
特定の側面 ( ブラウザキャッシュ TTL など) に関するルールは、その側面のグローバル構成よりも優先されます。
特定の側面 ( キャッシュなど) にルールのリストがある場合、ルールは上から下に順番に適用されます。ルールリスト内の特定のルールの優先順位を変更するには、ルールリスト内の順序を変更します。
使用上の注意
単一のルール条件のサイズは 4 KB を超えることはできません。セキュリティ構成を除く、Web サイトのすべての構成情報の合計サイズは、512 KB を超えることはできません。
ルール条件は、最大深度が 2 レベルのネスト構造をサポートします。各レベルは、個別の論理演算設定をサポートします。
1 つのルール条件には、最大 20 の一致フィールドを含めることができます。
適用対象 パラメーターの説明
ルールを作成するときは、[適用対象] パラメーターで次のオプションを使用できます。
[すべてのリクエスト]: 作成されたルールは、Web サイトのすべてのトラフィックに適用されます。
[フィルターされたリクエスト]: 作成されたルールは、カスタム式に一致するトラフィックにのみ適用されます。このオプションを選択して、リクエストを正確にフィルタリングできます。
ルール構文
式: 特定の特性を持つリクエストをフィルタリングするために使用されます。
論理演算子: 複数の式を組み合わせるために使用されます。
複数の式を指定して組み合わせることで、ビジネス要件に基づいてリクエストをフィルタリングできます。
論理演算子
論理演算子は、ルール条件内の式を接続して論理演算を実行します。次の論理演算子がサポートされています。
and: ルール条件内のすべての式が true の場合にのみ、ルール条件が一致します。
or: ルール条件内の式のいずれかが true の場合、ルール条件が一致します。
式
単純な式には、次の表で説明されているパラメーターが含まれています。
パラメーター | 対応する構文パラメーター | 説明 | 必須 |
一致フィールド | Field | 一致フィールド。 | はい |
一致値 | Value | 一致値。 | はい |
比較演算子 | Comparison_operator | 比較演算子。 | はい |
式の構文
単純な式
構文: <field><comparison_operator><value>
例: http.request.uri.path matches"/image\.(jpg|png)$"
複合式
定義: 論理演算子で接続された複数の式
構文: <expreesion><logical_operator><expression>
例: http.host eq "www.example.com" and http.request.uri.path eq "/content"
一致フィールド
ホスト名 ( http.host ) 一致フィールドは SSL/TLS 暗号化ルールに適用され、等しい演算子と等しくない演算子のみをサポートします。
一部のインターネットサービスプロバイダー (ISP) は、特定の地域のクライアントにプライベート IP アドレスを割り当てる場合があります。この場合、受信したリクエストはプライベート IP アドレスから送信されるため、POP はクライアントの国/地域、IP ソースアドレス、都道府県、または ISP を正確に判断できません。詳細については、「プライベート CIDR ブロックを識別する方法」をご参照ください。
一致フィールド | 説明 | 式内の変数名 | サポートされている比較演算子 | 一致値 |
リクエストメソッド | リクエストで使用されるメソッド。 | http.request.method |
| 有効な値:
|
HTTP バージョン | リクエストで使用される HTTP バージョン。 | http.request.version | 有効な値:
| |
国/地域 | クライアント IP アドレスが属する国または地域。 | ip.geoip.country |
| |
ファイル名 | クライアントによってリクエストされたファイルの名前。 | http.request.uri.path.file_name |
| |
ファイル拡張子 | クライアントによってリクエストされたファイル名のサフィックス。 | http.request.uri.path.extension |
| |
IP ソースアドレス | クライアントの IP アドレス。 | ip.src |
| |
SSL/HTTPS | リクエストで使用されるプロトコルのタイプ。 | http.request.scheme |
| 有効な値:
|
ホスト名 | リクエストに含まれるホスト名。 一致順序: URL と HOST ヘッダーの両方にホスト名が含まれている場合、リクエスト URL のホスト名が使用されます。 | http.host |
|
|
URI | リクエストの URL 内のパス。値にはリクエストパラメーターが含まれます。 | http.request.uri |
| |
完全な URI | リクエストの完全な Uniform Resource Identifier (URI)。 | http.request.full_uri |
| |
URI パス | リクエストの URL 内のパス。値にはリクエストパラメーターは含まれません。 | http.request.uri.path |
| |
URI クエリ文字列 | リクエストの URL 内のすべてのリクエストパラメーター。 | http.request.uri.query |
| |
URI クエリ文字列パラメーター | リクエストの URL 内の指定されたクエリパラメーター。 | http.request.uri.args["session"] |
| |
Cookie | リクエストに含まれる Cookie。 | http.cookie |
|
|
ユーザーエージェント | リクエストに含まれるクライアント情報。 | http.user_agent |
| |
リファラー | リソースがリクエストされた元の Web ページの URL。 | http.referer |
| |
X-Forwarded-For | リクエストの X-Forwarded-For ヘッダーの値。 | http.x_forwarded_for |
| |
ヘッダー | リクエストの指定されたヘッダー。 | http.request.headers["session"] |
| |
Cookie の値 | リクエストの指定された Cookie パラメーター。 | http.request.cookies["session"] |
| |
ISP | クライアント IP アドレスが属する ISP。 | ip.src.isp |
| 有効な値:
|
IP プロトコルバージョン | クライアント IP アドレスのプロトコルバージョン。 | ip.src.version |
| 有効な値:
|
都道府県 | 国の第 1 レベルの行政区画。 | ip.src.subdivision_1_iso_code |
|
|
ロードバランサーリージョン | ロードバランサーが存在するリージョン。 | ip.src.region_code |
|
|
リクエストタイムスタンプ | リクエストが POP に到着した時刻を示す UNIX タイムスタンプ。 | http.request.timestamp.sec |
|
|
比較演算子
演算子名 | 演算子 | 否定可能 | 値のタイプ | 備考 |
等しい | eq | いいえ | 文字列 | / |
等しくない | ne | いいえ | 文字列 | / |
含む | contains | はい | 文字列 | 演算子は、指定された文字列が含まれているかどうかを確認します。 |
正規表現に一致 | matches | はい | 文字列 | 演算子は、正規表現による一致を確認します。 Business プランと Enterprise プランのみが演算子をサポートします。 |
含まれる | in | はい | 配列 | 指定された要素のいずれかが一致する場合、式は true です。
|
で始まる | starts_with | はい | 文字列 | / |
で終わる | ends_with | はい | 文字列 | / |
長さ未満 | len-lt | いいえ | 整数 | 文字列の長さが指定された長さ条件より短い場合、一致が見つかります。 |
長さと同じ | len-eq | いいえ | 整数 | 文字列の長さが指定された長さ条件と同じ場合、一致が見つかります。 |
長さより大きい | len-gt | いいえ | 整数 | 文字列の長さが指定された長さ条件より長い場合、一致が見つかります。 |
リストに含まれる | in_list | はい | 整数 | この演算子は、アカウントレベルで作成するグローバルリストで使用されます。 |
存在する | exists | はい | ブール値 | 演算子は、キーと値のペアに指定されたキーが存在するかどうかを確認します。たとえば、ヘッダー、Cookie、およびクエリ文字列に基づくルールでこの演算子を使用できます。 |
より大きい | gt | いいえ | 整数 | 演算子は、値が整数であるルールに適用されます。 |
より小さい | lt | いいえ | 整数 | 演算子は、値が整数であるルールに適用されます。 |
以上 | ge | いいえ | 整数 | 演算子は、値が整数であるルールに適用されます。 |
以下 | le | いいえ | 整数 | 演算子は、値が整数であるルールに適用されます。 |
ワイルドカード文字
ワイルドカード文字 | 説明 |
| 1 つの文字に一致します。 |
| 任意の数の文字に一致します。 |
式の作成
デフォルトでは、式ビルダーが表示され、式を作成できます。
式ビルダーを使用する
式ビルダーを使用すると、インタラクティブな方法で式をすばやく作成できます。ただし、複雑な式を作成する場合は、式エディターに切り替える必要がある場合があります。
たとえば、リクエストメソッドに基づいて式を作成する場合は、ドロップダウンリストから式のコンポーネントを選択して、式ビルダーに式を自動的に作成させます。

式エディターを使用する
式エディターを使用すると、より複雑な式をより柔軟な方法で作成できます。
[式の編集] をクリックします。

エディターで式を入力します。
