Skip to content

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

API で設定する

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

Rulesets API でオーバーライドを定義し、HTTP DDoS Attack Protection マネージドルールセットを設定します。

各ゾーンでは、HTTP DDoS Attack Protection マネージドルールセットがデフォルトで有効です。そのため、マネージドルールセットを ddos_l7 フェーズのルールセットに明示的にデプロイする必要はありません。オーバーライドを設定する場合に限り、フェーズのルールセットにルールを作成してマネージドルールセットをデプロイします。

Terraform を使う場合は、Terraform での DDoS マネージドルールセットの設定 を参照してください。

HTTP DDoS Attack Protection マネージドルールセットのオーバーライドを設定する

オーバーライドを使って、HTTP DDoS Attack Protection マネージドルールセットを設定します。オーバーライドでは、デフォルトとは異なるアクションや感度レベルを定義できます。利用できるアクションと感度レベルの値は、ルールセットパラメーター を参照してください。

オーバーライドのスコープは、ルールセット、タグ、またはルールです。タグとルールの設定は、ルールセットの設定より優先されます。

オーバーライドはゾーンレベルとアカウントレベルで作成できます。アカウントレベルのオーバーライドでは、1 つのルールでアカウント内の複数ゾーンに同じオーバーライドを適用できます。たとえば、特定のマネージドルールセットのルールの感度を下げたり、複数ゾーンで IP リスト を除外したりできます。ただし、ゾーンに HTTP DDoS Attack Protection マネージドルールセットのオーバーライドがある場合、そのゾーンではアカウントレベルのオーバーライドは評価されません。

複数のルールを作成する

ddos_l7 フェーズのエントリポイントルールセットに複数のルールを作成し、受信リクエストの集合ごとに異なるオーバーライドを定義します。各ルールの式は、HTTP DDoS 対策をカスタマイズしたいトラフィックに合わせて設定します。

オーバーライドを作成するフェーズエントリポイントルールセットのルールは、ルール式と感度レベルに一致するまで順に評価されます。Cloudflare はリクエストに一致した最初のルールを適用します。そのため、エントリポイントルールセット内のルールの順序は非常に重要です。

API 呼び出しの例

ゾーンレベルの設定例

次の PUT の例は、ゾーンレベルで ddos_l7 フェーズのフェーズルールセットを新規作成(または既存のものを更新)します。リクエストには、HTTP DDoS Attack Protection マネージドルールセットのデフォルト動作を調整するオーバーライドがいくつか含まれます。オーバーライドの内容は次のとおりです。

  • マネージドルールセットのすべてのルールは、アクション managed_challenge と感度レベル medium を使います。
  • <TAG_NAME> のタグが付いたすべてのルールは、感度レベル low になります。
  • ID が <MANAGED_RULESET_RULE_ID> のルールは、アクション block を使います。
リクエストbash
curl --request PUT \
https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/phases/ddos_l7/entrypoint \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
  "description": "Execute HTTP DDoS Attack Protection managed ruleset in the zone-level phase entry point ruleset",
  "rules": [
    {
      "action": "execute",
      "action_parameters": {
        "id": "<MANAGED_RULESET_ID>",
        "overrides": {
          "sensitivity_level": "medium",
          "action": "managed_challenge",
          "categories": [
            {
              "category": "<TAG_NAME>",
              "sensitivity_level": "low"
            }
          ],
          "rules": [
            {
              "id": "<MANAGED_RULESET_RULE_ID>",
              "action": "block"
            }
          ]
        }
      },
      "expression": "true"
    }
  ]
}'

レスポンスは、作成(または更新)したフェーズのエントリポイントルールセットを返します。

レスポンス

{
	"result": {
		"id": "<PHASE_ENTRY_POINT_RULESET_ID>",
		"name": "default",
		"description": "Execute HTTP DDoS Attack Protection managed ruleset in the zone-level phase entry point ruleset",
		"kind": "zone",
		"version": "1",
		"rules": [
			{
				"id": "<RULE_ID>",
				"version": "1",
				"action": "execute",
				"action_parameters": {
					"id": "<MANAGED_RULESET_ID>",
					"version": "latest",
					"overrides": {
						"action": "managed_challenge",
						"categories": [
							{
								"category": "<TAG_NAME>",
								"sensitivity_level": "low"
							}
						],
						"rules": [
							{
								"id": "<MANAGED_RULESET_RULE_ID>",
								"action": "block"
							}
						],
						"sensitivity_level": "medium"
					}
				},
				"expression": "true",
				"last_updated": "2021-06-16T04:14:47.977741Z",
				"ref": "<RULE_REF>",
				"enabled": true
			}
		],
		"last_updated": "2021-06-16T04:14:47.977741Z",
		"phase": "ddos_l7"
	}
}

Rulesets API でマネージドルールセットのオーバーライドを定義する方法は、Ruleset Engine のドキュメントの マネージドルールセットをオーバーライドする を参照してください。

アカウントレベルの設定例

次の PUT の例は、アカウントレベルで ddos_l7 フェーズのフェーズルールセットを新規作成(または既存のものを更新)します。この例では、allowlisted_ips IP リスト に含まれる IP アドレスからのリクエストに対して、次の設定のルールオーバーライドを 1 件定義します。

  • HTTP DDoS Attack Protection マネージドルールセット(ID は <MANAGED_RULESET_ID>)に属する、ID <MANAGED_RULESET_RULE_ID> のルールは、感度レベル eoffEssentially Off)になり、アクション log を実行します。
リクエストbash
curl --request PUT \
https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets/phases/ddos_l7/entrypoint \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
  "description": "Disable a managed ruleset rule for allowlisted IP addresses",
  "rules": [
    {
      "expression": "ip.src in $allowlisted_ips",
      "action": "execute",
      "action_parameters": {
        "id": "<MANAGED_RULESET_ID>",
        "overrides": {
          "rules": [
            {
              "id": "<MANAGED_RULESET_RULE_ID>",
              "action": "log",
              "sensitivity_level": "eoff"
            }
          ]
        }
      }
    }
  ]
}'

レスポンスは、作成(または更新)したフェーズのエントリポイントルールセットを返します。

レスポンス

{
	"result": {
		"id": "<PHASE_ENTRY_POINT_RULESET_ID>",
		"name": "default",
		"description": "Disable a managed ruleset rule for allowlisted IP addresses",
		"kind": "root",
		"version": "1",
		"rules": [
			{
				"id": "<RULE_ID>",
				"version": "1",
				"action": "execute",
				"action_parameters": {
					"id": "<MANAGED_RULESET_ID>",
					"version": "latest",
					"overrides": {
						"rules": [
							{
								"id": "<MANAGED_RULESET_RULE_ID>",
								"action": "log",
								"sensitivity_level": "eoff"
							}
						]
					}
				},
				"expression": "ip.src in $allowlisted_ips",
				"last_updated": "2022-10-16T04:14:47.977741Z",
				"ref": "<RULE_REF>",
				"enabled": true
			}
		],
		"last_updated": "2022-10-16T04:14:47.977741Z",
		"phase": "ddos_l7"
	}
}

Rulesets API でマネージドルールセットのオーバーライドを定義する方法は、Ruleset Engine のドキュメントの マネージドルールセットをオーバーライドする を参照してください。

役に立ちましたか?