| [ Web Proxy ] |
| Viewing: https://developers.cloudflare.com/waf/managed-rules/payload-logging/configure-api/ | [Back] [Original] |
Use the Rulesets API to configure payload logging for a managed ruleset via API.
Use the Get a zone entry point ruleset operation to obtain the following IDs:
http_request_firewall_managed phase.execute rule deploying the WAF managed ruleset, for which you want to configure payload logging.Use the Update a zone ruleset rule operation to update the rule you identified in the previous step.
Include a matched_data object in the rule's action_parameters object to configure payload logging. The matched_data object has the following structure:
"action_parameters": {
// ...
"matched_data": {
"public_key": "<PUBLIC_KEY_VALUE>"
}
}
Replace <PUBLIC_KEY_VALUE> with the public key you want to use for payload logging. You can generate a public key in the command line or in the Cloudflare dashboard.
Account-level configuration
To configure payload logging for a managed ruleset deployed at the account level (only available on Enterprise plans), use the following API operations instead:
This example configures payload logging for the Cloudflare Managed Ruleset, which is already deployed for a zone with ID $ZONE_ID.
Invoke the Get a zone entry point ruleset operation to obtain the rules currently configured in the entry point ruleset of the http_request_firewall_managed phase.
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
--request GET \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
{
"result": {
"id": "060013b1eeb14c93b0dcd896537e0d2c", // entry point ruleset ID
"name": "default",
"description": "",
"source": "firewall_managed",
"kind": "zone",
"version": "3",
"rules": [
// (...)
{
"id": "1bdb49371c1f46958fc8b985efcb79e7", // `execute` rule ID
"version": "1",
"action": "execute",
"expression": "true",
"last_updated": "2024-01-20T14:21:28.643979Z",
"ref": "1bdb49371c1f46958fc8b985efcb79e7",
"enabled": true,
"action_parameters": {
"id": "efb7b8c949ac4650a09736fc376e9aee", // "Cloudflare Managed Ruleset" ID
"version": "latest"
}
}
// (...)
],
"last_updated": "2024-01-20T14:29:00.190643Z",
"phase": "http_request_firewall_managed"
},
"success": true,
"errors": [],
"messages": []
}
Save the following IDs for the next step:
060013b1eeb14c93b0dcd896537e0d2cexecute rule deploying the Cloudflare Managed Ruleset: 1bdb49371c1f46958fc8b985efcb79e7To find the correct rule in the rules array, search for an execute rule containing the ID of the Cloudflare Managed Ruleset (...376e9aee) in action_parameters > id.
Note
To get the IDs of existing WAF managed rulesets, refer to Available managed rulesets or use the List account rulesets operation.
Invoke the Update a zone ruleset rule operation to update the configuration of the rule you identified. The rule will now include the payload logging configuration (matched_data object).
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/060013b1eeb14c93b0dcd896537e0d2c/rules/1bdb49371c1f46958fc8b985efcb79e7" \
--request PATCH \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"action": "execute",
"action_parameters": {
"id": "efb7b8c949ac4650a09736fc376e9aee",
"matched_data": {
"public_key": "Ycig/Zr/pZmklmFUN99nr+taURlYItL91g+NcHGYpB8="
}
},
"expression": "true"
}'
The response will include the complete ruleset after updating the rule.
For more information on deploying managed rulesets via API, refer to Deploy a managed ruleset in the Ruleset Engine documentation.
To disable payload logging for a managed ruleset:
Use the Update a zone ruleset rule operation to update the rule deploying the managed ruleset (a rule with "action": "execute").
Modify the rule definition so that there is no matched_data object in action_parameters.
For example, the following PATCH request updates the rule with ID $RULE_ID deploying the Cloudflare Managed Ruleset so that payload logging is disabled:
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules/$RULE_ID" \
--request PATCH \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"action": "execute",
"action_parameters": {
"id": "efb7b8c949ac4650a09736fc376e9aee"
},
"expression": "true"
}'
For details on obtaining the entry point ruleset ID and the ID of the rule to update, refer to Configure and enable payload logging.
| Web Proxy Viewer | New URL | Original Page |