SassTurf
BlogBuilding
Building

AWS Cloud Security for Founders: What Actually Matters (2026)

AWS cloud security basics for founders — the shared responsibility model, IAM, the S3-bucket mistakes that leak data, and why managed platforms remove most of this.

Shubham Soni
Shubham Soni
Jul 14, 2026 · 9 min read
Table of contents7 sections
  1. 01The Night I Realized I Was One Checkbox Away From a Headline
  2. 02The One Sentence That Explains All of AWS Security
  3. 03IAM: Where Most of the Danger Actually Lives
  4. 04The Public S3 Bucket: The Most Famous Way to Leak Everything
  5. 05Secrets and Keys: How People Actually Get Hacked
  6. 06The Broken-Engineer Verdict: You Probably Shouldn’t Be Here
  7. 07The Bottom Line

The Night I Realized I Was One Checkbox Away From a Headline

It was 2022. I was building on AWS — not because I needed to, but because every tutorial, every YouTube video, every “senior engineer” on Twitter said real founders run on AWS. So there I was at 1 AM, a Postgres backup dropped into an S3 bucket so I could restore it on another machine. Full database dump. Emails, hashed passwords, the works.

The next morning I read a story about a company that had leaked 120 million US households’ worth of data through a single misconfigured S3 bucket. Just… left it public. Anyone with the URL could read it. And my stomach dropped, because I genuinely could not remember whether my bucket was public. I’d clicked through the setup at 1 AM. I had no idea what I’d checked.

I spent the next hour learning AWS’s permission model in a panic instead of building my product. That’s the AWS tax nobody warns you about. Not the bill — the anxiety. So let me give you the version I wish I’d had: what actually matters in cloud security, why most of it is self-inflicted, and why a broke solopreneur probably shouldn’t be carrying this weight at all.


The One Sentence That Explains All of AWS Security

Before any tool, any checkbox, understand this. AWS runs on a shared responsibility model, and it’s the whole game:

AWS secures the cloud. You secure what’s in the cloud.

That’s it. AWS guarantees the data centers don’t get robbed, the physical servers are patched, the hypervisor isn’t leaking your neighbor’s memory into yours. That’s their half, and they’re genuinely world-class at it. Nobody breaks into Amazon’s buildings.

Your half is everything you configure: who can access your data, whether your storage is public, whether your keys are floating around in a GitHub repo. And here’s the brutal part — almost every AWS “breach” you’ve ever read about is a failure of the customer’s half, not Amazon’s. The 120-million-household leak wasn’t a hacker cracking AWS. It was someone leaving a door open that AWS handed them closed.

This is the mental model that unlocks everything else. AWS isn’t insecure. AWS is a loaded toolbox handed to you with the safety off, and it assumes you’re a DevOps team who knows which end is dangerous. When you’re a solo founder, you’re not that team. You’re the guy clicking through setup at 1 AM.


IAM: Where Most of the Danger Actually Lives

If you only learn one AWS service deeply, make it IAM — Identity and Access Management. It’s the bouncer for your entire account: who can do what, to which resources. And it’s where the real damage happens, because IAM mistakes are invisible until they aren’t.

The one principle to tattoo on your brain is least privilege: give every user, key, and service the minimum permissions it needs, and nothing more. The lazy move — the one everyone makes — is to slap AdministratorAccess on everything because it “just works.” Then that one key leaks, and the attacker doesn’t just read one bucket. They own your whole account. They can spin up a fleet of crypto-mining servers on your card, wipe your data, and lock you out.

A few things that are genuinely worth doing, in order of how much they matter:

  • Never use the root account for daily work. The root user is the god-mode login you created the account with. It can do anything, including close the account. AWS’s own guidance in 2026 is blunt: lock it away, delete its access keys, and use it only for the handful of tasks that truly require it.
  • Turn on MFA for root — though AWS is now forcing your hand here anyway. Since May 2024 they’ve required MFA to sign in as the root user of an Organizations management account, extended it to standalone accounts in June 2024, and rolled it out to member accounts through 2025. By now, if you log in as root without MFA, AWS makes you set it up within 35 days. Good. It should’ve always been this way.
  • Stop creating IAM users with long-lived access keys. This is the 2026 shift most old tutorials miss. AWS now steers you toward IAM Identity Center for human access — you log in through a central identity and get short-lived temporary credentials instead of a permanent key sitting in a config file. A temporary credential that expires in an hour is worthless to an attacker who finds it next week.

None of this is hard, exactly. It’s just more — more concepts, more screens, more things to get subtly wrong. And IAM’s failure mode is silent. You won’t get an error for granting too much access. You’ll find out when it’s a headline.


The Public S3 Bucket: The Most Famous Way to Leak Everything

S3 is object storage — where you dump files, backups, user uploads, images. It’s cheap, it’s everywhere, and it is responsible for a genuinely absurd share of the data leaks in tech history. The pattern is always the same: someone makes a bucket public, forgets, and a researcher (or worse) finds it with a scan.

The good news: AWS finally fixed the footgun. Since April 2023, every new S3 bucket has Block Public Access enabled by default, and ACLs are disabled by default. You now have to deliberately go make a bucket public — clicking through multiple “are you sure” warnings — to recreate the classic leak. The default is locked.

So the modern advice is short: leave the defaults alone. Don’t turn off Block Public Access because some Stack Overflow answer from 2019 told you to. If you need to serve files publicly, you almost never want a public bucket — you want the bucket private and a CDN in front of it, serving the files. (That’s exactly what I use Bunny for, and I wrote the whole story in the Bunny CDN review — you get S3 + CloudFront in one product without the egress bill.)

The trap today isn’t the default anymore. It’s the old buckets made before 2023, and the person who “temporarily” flips a bucket public to debug something and never flips it back. If you’re on AWS, go audit every bucket you own right now. It takes five minutes and it’s the single highest-value security thing you’ll do this month.


Secrets and Keys: How People Actually Get Hacked

Here’s the unglamorous truth after all the IAM theory: most founders don’t get owned by a clever attacker. They get owned because their AWS keys ended up somewhere public. A .env file committed to a public repo. A key hardcoded in a frontend bundle. An access key pasted into a Slack message that later got scraped.

Bots crawl GitHub in real time looking for leaked AWS keys. The window between “you push a key” and “someone is mining crypto on your account” is measured in minutes, not days. This is the most common way a small AWS account gets drained, full stop.

The hygiene that actually protects you:

  • Never commit secrets. Keep them in environment variables, and put .env in your .gitignore before your first commit, not after.
  • Rotate anything that leaks, immediately. If a key touches a public place even for a second, it’s burned. Delete it and issue a new one. Don’t rationalize.
  • Use a secrets manager, not a text file. AWS has Secrets Manager for this; a free tool like GitGuardian will also scream at you before a secret makes it into a commit. Prevention beats the 1 AM cleanup every time.

And enable CloudTrail so there’s an audit log of who did what — because if something does go wrong, “I have no logs” turns a bad day into a catastrophe.


The Broken-Engineer Verdict: You Probably Shouldn’t Be Here

Now the part I actually believe. Everything above is useful — the shared responsibility model, least privilege, secrets hygiene are real concepts that apply everywhere. Learn them. But then look at what you just signed up for as a solo founder with $0 MRR: you are now personally the security team for a platform built for companies with dedicated DevOps departments.

Read that S3 section again. AWS handed you a public-by-default footgun for years, and thousands of competent engineers still shot themselves with it. That’s not a knock on them. That’s the point: the attack surface is the complexity itself. Every IAM policy you write is a chance to get it subtly wrong. Every bucket is a checkbox you might forget.

Now compare the boring alternative. Put your app on Vercel, your backend on Railway, your database on Neon, files behind a CDN. In that world, most of this chapter doesn’t exist. There’s no public-bucket setting to forget, because there’s no bucket. There’s no over-permissioned IAM role, because there’s no IAM. Secrets live in a dashboard with a big lock icon. These platforms lock things down by default and give you maybe five settings to think about instead of five hundred. The complexity that generates AWS breaches simply isn’t there to misconfigure. (This is the same “AWS — just don’t” stance I laid out in the deployment tier list.)

“But AWS is cheaper at scale.” Sure. At scale. When you have a real team, real revenue, and a person whose whole job is IAM, go to AWS with my blessing. Until then, the cheapest thing you can do — cheaper than any security tool — is not to carry an attack surface you can’t afford to defend. If you’re just poking at AWS to learn, do it inside the free tier the right way so a stray mistake can’t bill you into the ground, and if you’re stuck choosing between the big clouds at all, I compared Azure vs AWS for a broke founder — the honest answer is you want neither yet. (On the Azure side, the equivalent security console is Defender for Cloud, formerly Azure Security Center — same “you probably don’t need it” verdict.)


The Bottom Line

Cloud security on AWS comes down to a handful of truths. AWS secures the cloud; you secure what’s in it. IAM is where the danger lives, so give the least access you can and lock the root account behind MFA. S3 is safe by default now — don’t undo it. And the thing that actually gets people hacked isn’t some genius exploit, it’s a leaked key in a public repo.

Learn all of that, because it makes you a better engineer wherever you build. But then ask the harder question: do I need to be the one holding all these checkboxes? For me, most days, the answer is no. I’d rather offload the entire category to a platform that already got it right and spend my 1 AM energy on the product instead of on whether a bucket is public.

Security you don’t have to configure is security you can’t misconfigure. That’s the whole trick.

This is the Broken Engineer Guide. I over-engineer everything, fail at business, and share the scars so you don’t collect your own. Go build something — somewhere that locks the doors for you.

Shubham Soni
Written by
Shubham Soni

A decade building, launching, and occasionally breaking SaaS products. I write SassTurf to share what actually moved the needle — free, no fluff.

Keep reading

Building

LangChain Alternatives That Actually Earn Their Place (2026)

9 min read
Building

Kubernetes Deployment: A Founder's Guide to the One File You'd Actually Write (2026)

9 min read
Email Marketing

Out of Office Email Templates That Don't Sound Like a Robot (2026)

8 min read

Enjoyed this? Get the next one.

One useful SaaS essay in your inbox each week. No fluff, unsubscribe anytime.