How to Save Costs with AWS S3 Requester Pays

Arjun had been sharing large open datasets from his Amazon S3 bucket with clients around the world.

But over time, he noticed his AWS bill was rising — not from storing the data, but from downloads made by others.

“Why am I paying for the bandwidth when they are downloading my files?” he wondered.

That’s when he discovered a lesser-known S3 feature:
📦 AWS S3 Requester Pays


🧾 The Default: Bucket Owner Pays

By default, the S3 bucket owner is charged for:

  • Storage (per GB stored)
  • AND
  • Data transfer costs (when someone downloads files)

Even if someone else downloads 100 GB from Arjun’s bucket, the bill lands in his account.


💡 Enter: AWS S3 Requester Pays

With AWS S3 Requester Pays, Arjun can flip the model:

The requester (i.e., the downloader) pays for the networking costs associated with the download — not Arjun.


✅ When to Use AWS S3 Requester Pays

  • You’re hosting public or shared datasets
  • You want to offload download costs to the users
  • Your data is accessed by other AWS accounts
  • You’re distributing large files or scientific data
    (e.g., genome data, satellite images, machine learning sets)

🚫 AWS S3 Requester Pays requires:

  • The requester must be an authenticated AWS identity (IAM user/role)
  • AWS needs to know who to bill for the download
  • Are anonymous by nature
  • Anyone on the internet can access them without logging in
  • So AWS has no way to bill them — and will block the download in a Requester Pays bucket

❌ So Public URL and Requester Pay don’t work together.


🔐 Authentication Matters

Requester Pays only works if the requester is an authenticated AWS user (IAM user or role).
Public URLs — like presigned or static S3 links — won’t work, since AWS can’t identify who to bill.

If someone tries to access a Requester Pays bucket using a public link, they’ll get:

403 Access Denied – Requester Pays buckets require authentication


📌 So What Happens If Arjun Shares a Public URL?

If AWS S3 Requester Pays is enabled and someone tries to download via a public URL, they’ll get:CopyCopy

403 Access Denied – Requester Pays buckets require authentication

🧠 Alternative Approach for Public Sharing

If Arjun wants anyone on the internet to access the files freely:

  • ✅ He can make the bucket or objects public
  • ❌ But he will pay for all download costs

So it’s a tradeoff:
🔐 AWS S3 Requester Pays = access is limited to authenticated AWS users
🌐 Public access = anyone can download, but you pay


⚠️ Rules You Need to Know

  1. 🧍‍♂️ The requester must be authenticated.
    • No anonymous access
    • AWS must know who to bill
  2. 🧾 Bucket owner still pays for storage.
    • Only the data transfer cost is passed to the requester
  3. 🔐 Permissions still apply.
    • Just because it’s Requester Pays doesn’t make it public — users still need proper IAM permissions or presigned URLs

🧪 Real-World Scenario

Imagine Arjun uploads 500GB of research data to S3. He wants anyone in the research community to access it — but doesn’t want to fund the bandwidth cost.

He enables AWS S3 Requester Pays on the bucket.

Now, when other AWS users (authenticated) download the data:

  • ✅ They get access (if permissions allow)
  • ✅ Arjun pays nothing for their download bandwidth
  • ✅ They pay for the transfer on their AWS bill

“I still share my data — but now others cover the download cost. Fair deal!” Arjun smiled.


🚀 Final Thought from Arjun

“S3 Requester Pays gave me a smart way to share my data without absorbing the cost. It’s perfect when collaboration meets cloud economics.”


🧠 Frequently Asked Questions (FAQ)

1. What is AWS S3 Requester Pays?

AWS S3 Requester Pays lets the requester (the downloader) pay for data transfer and request costs, while the bucket owner only pays for storage.

2. Why should I use AWS S3 Requester Pays?

Use it when sharing large files or open datasets with other AWS users to avoid paying their bandwidth costs.

3. Can anyone access a Requester Pays bucket?

No. Only authenticated AWS users can access it. Public (anonymous) users will receive a 403 Access Denied error.

4. Does the bucket owner pay for anything?

Yes. The bucket owner still pays for storage, but not for the data transfer or request fees.

5. Can I use presigned URLs with Requester Pays?

Only if the requester is authenticated in AWS. Anonymous users cannot access Requester Pays buckets through presigned URLs.

6. What happens if I mix Requester Pays with public access?

They’re incompatible. Requester Pays requires authentication, while public access is anonymous. AWS will block public requests.

7. How do I enable AWS S3 Requester Pays?

In the AWS Console, go to your S3 bucket settings → Properties → Requester Pays → Enable.
Or use the CLI command shown above.

8. What are ideal use cases?

  • Open data sharing (research, ML datasets)
  • Cross-account downloads
  • Cost-sharing across multiple AWS teams

Follow me for more such content

Share your love
Jay Tillu
Jay Tillu
Articles: 34

Newsletter Updates

Enter your email address below and subscribe to our newsletter

Leave a Reply

Your email address will not be published. Required fields are marked *