コンテンツにスキップ

管理されたルールセットのデプロイ

ゾーンレベルまたはアカウントレベルで管理されたルールセットをデプロイできます。

フェーズに管理されたルールセットをデプロイするには、Rulesets APIを使用します。

ゾーンレベルでフェーズに管理されたルールセットをデプロイする

以下のワークフローを使用して、ゾーンレベルでフェーズに管理されたルールセットをデプロイします。

  1. ゾーンIDを取得します。
  2. アカウントルールセットの一覧操作を呼び出して、利用可能なルールセットを取得します。管理されたルールセットはアカウントレベルに存在しますが、ゾーンにデプロイできます。デプロイしたい管理されたルールセットのルールセットIDを見つけます。
  3. 管理されたルールセットをデプロイしたいフェーズを特定します。管理されたルールセットがデプロイしたいフェーズに属していることを確認します。各Cloudflare製品がサポートする利用可能なフェーズについて詳しくは、その製品の特定のドキュメントまたはフェーズリストを参照してください。
  4. 管理されたルールセットを実行するゾーンレベルのフェーズエントリポイントルールセットにルールを追加します。

以下の例では、指定されたゾーン({zone_id})のhttp_request_firewall_managedフェーズに管理されたルールセットをデプロイするために、管理されたルールセットを実行するルールを作成します。

リクエスト
curl --request PUT \
https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/phases/http_request_firewall_managed/entrypoint \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"rules": [
{
"action": "execute",
"action_parameters": {
"id": "<CLOUDFLARE_MANAGED_RULESET_ID>"
},
"expression": "true",
"description": "私のゾーンレベルのフェーズエントリポイントでCloudflare管理ルールセットを実行"
}
]
}'
レスポンス
{
"result": {
"id": "<ZONE_PHASE_RULESET_ID>",
"name": "ゾーンレベルのフェーズエントリポイント",
"description": "",
"kind": "zone",
"version": "3",
"rules": [
{
"id": "<RULE_ID_1>",
"version": "1",
"action": "execute",
"action_parameters": {
"id": "<CLOUDFLARE_MANAGED_RULESET_ID>",
"version": "latest"
},
"expression": "true",
"description": "私のゾーンレベルのフェーズエントリポイントでCloudflare管理ルールセットを実行",
"last_updated": "2021-03-18T18:08:14.003361Z",
"ref": "<RULE_REF_1>",
"enabled": true
}
],
"last_updated": "2021-03-18T18:08:14.003361Z",
"phase": "http_request_firewall_managed"
},
"success": true,
"errors": [],
"messages": []
}

アカウントレベルでフェーズに管理されたルールセットをデプロイする

以下のワークフローを使用して、アカウントレベルでフェーズに管理されたルールセットをデプロイします。

  1. アカウントIDを取得します。
  2. アカウントルールセットの一覧操作を呼び出して、利用可能なルールセットを取得します。デプロイしたい管理されたルールセットのルールセットIDを見つけます。
  3. 管理されたルールセットをデプロイしたいフェーズを特定します。管理されたルールセットがデプロイしたいフェーズに属していることを確認します。各Cloudflare製品がサポートする利用可能なフェーズについて詳しくは、その製品の特定のドキュメントまたはフェーズリストを参照してください。
  4. 管理されたルールセットを実行するアカウントレベルのフェーズエントリポイントルールセットにルールを追加します。ルールの式内のカスタム条件を括弧で囲み、式をand cf.zone.plan eq "ENT"で終わらせて、エンタープライズプランのゾーンにのみ適用されるようにします。

以下の例では、アカウント({account_id})のhttp_request_firewall_managedフェーズに管理されたルールセットをデプロイするために、管理されたルールセットを実行するルールを作成します。管理されたルールセット内のルールは、ゾーン名がexample.comまたはanotherexample.comのいずれかと一致する場合に実行されます。

リクエスト
curl --request PUT \
https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets/phases/http_request_firewall_managed/entrypoint \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"rules": [
{
"action": "execute",
"action_parameters": {
"id": "<CLOUDFLARE_MANAGED_RULESET_ID>"
},
"expression": "(cf.zone.name in {\"example.com\" \"anotherexample.com\"}) and cf.zone.plan eq \"ENT\"",
"description": "私のアカウントレベルのフェーズエントリポイントでCloudflare管理ルールセットを実行"
}
]
}'
レスポンス
{
"result": {
"id": "<RULESET_ID>",
"name": "アカウントレベルのフェーズエントリポイント",
"description": "",
"kind": "root",
"version": "5",
"rules": [
{
"id": "<RULE_ID>",
"version": "1",
"action": "execute",
"action_parameters": {
"id": "<CLOUDFLARE_MANAGED_RULESET_ID>",
"version": "latest"
},
"expression": "(cf.zone.name in {\"example.com\" \"anotherexample.com\"}) and cf.zone.plan eq \"ENT\"",
"description": "私のアカウントレベルのフェーズエントリポイントでCloudflare管理ルールセットを実行",
"last_updated": "2021-03-18T18:30:08.122758Z",
"ref": "<RULE_REF>",
"enabled": true
}
],
"last_updated": "2021-03-18T18:30:08.122758Z",
"phase": "http_request_firewall_managed"
},
"success": true,
"errors": [],
"messages": []
}

これらの例では、管理されたルールセットはCloudflareによって構成された動作を実行します。管理されたルールセットの動作をカスタマイズするには、管理されたルールセットのオーバーライドを参照してください。