INTEGRITY Documentation

Ownership challenge FAQ

The ownership challenge is a one-time verification that proves you have read access to a destination bucket before Cloudflare pushes logs to it. This mechanism prevents you from accidentally configuring a Logpush job that pushes data to a bucket you do not control.

How it works

When you create a Logpush job to a storage destination, Cloudflare requires you to prove ownership of that destination:

  1. You request an ownership challenge for your destination_conf.
  2. Cloudflare writes a JWT to an ownership-challenge.txt file in your bucket.
  3. You read the token from your bucket and submit it with your job creation request.
  4. Cloudflare validates the token and creates the job.

For step-by-step instructions, refer to Manage Logpush with cURL.

What the challenge protects against

The ownership challenge primarily protects you from accidental misconfiguration. Without this verification, you could inadvertently configure a job to push to a bucket you did not intend—for example, pushing to a bucket that is actually owned by someone else.

The challenge also prevents malicious scenarios where someone could:

Challenge token structure

The ownership challenge is a JSON Web Token (JWT) containing claims that bind it to a specific context. The token includes:

When you submit the challenge token, Cloudflare validates that all claims match your job creation request. This prevents the token from being reused for a different account, zone, or destination.

Security considerations

Can a compromised token be exploited?

In practice, an attack using a compromised ownership challenge token is extremely unlikely. An attacker would need:

  1. Access to your Cloudflare account (to match the object ID in the token)
  2. Knowledge of the exact bucket name and paths/prefixes (to match the destination fingerprint)
  3. To act within 7 days (before the challenge expires)

Your bucket's IAM/access controls and Cloudflare account security are the primary security layers, not the ownership challenge token.

Best practices

Which destinations require an ownership challenge?

Destination Ownership challenge required
AWS S3 Yes (or use access key/secret key)
Google Cloud Storage Yes
Azure Blob Storage Yes
Sumo Logic Yes
S3-compatible storage No
HTTP endpoints No
Datadog No
Splunk No
New Relic No

For destinations that do not require an ownership challenge, Cloudflare uses alternative authentication methods such as API keys or tokens.