The Most Common AWS Misconfiguration Is One Line
We mapped every publicly disclosed AWS incident with a known root cause. The same handful of one-line mistakes explains almost all of them.
The recurring pattern is a resource policy with Principal *: buckets, KMS keys, ECR repos, SNS topics, Lambda URLs. One line grants the world access, and scanners rarely flag the non-S3 ones.
We went through the public record: ramimac's catalog of disclosed AWS incidents from 2014 to 2024, plus the 2026 cases Sysdig, Truffle Security and others documented. The same shapes repeat. A bucket policy with Principal * (LA Times 2018, Twilio 2020, PREMINT 2022). A shared snapshot (Imperva 2019, DNC 2016).
In This Guide
The pattern behind the incidents
The one-line killers, by blast radius
Why scanners miss them
The fix is also one line
4 Tips to Get Started
Search every resource policy for Principal *, not just S3. KMS, ECR, SNS and SQS have the same trap.
iam:PassRole with Resource * is the privilege escalation line. Anyone with it can become any role in the account.
NotAction in a policy means everything except X. Read it twice; it usually grants more than intended.
One CloudTrail region means half your events are unlogged. Multi-region is one checkbox.
Ready to Stop Worrying About Infra?
Knowledge is the first step. Get a free 1-hour diagnostic and see where your infrastructure leaks time, money, and focus.
Related Guides
Is My S3 Bucket Public? How to Check in One Command
One command tells you if your S3 bucket is public, and one curl proves it. The policy check shows intent, the anonymous request shows reality.
Terraform State File Leak: Every Secret in Plaintext
terraform.tfstate stores database passwords, IAM keys and TLS private keys in plaintext. sensitive=true hides nothing. Here is how leaks happen and the check.
Docker Socket Mounted in a Container: Root on the Host, No Exploit Needed
A container with /var/run/docker.sock mounted controls the host daemon and can mount your entire filesystem. No kernel exploit required. Here is the mechanism and the check.
pull_request_target: The GitHub Actions Trigger That Leaks Secrets
pull_request_target runs your workflow with its secrets on attacker-controlled PR code. One checkout line turns a fork PR into a credential leak.
Ron Cohen — DevOps engineer & founder, roqy.io
Content reviewed by the roqy.io team. Our guides are based on publicly available data.
Disclaimer: This content is for informational and educational purposes only. It does not constitute professional advice or a guarantee of specific results. Infrastructure needs vary by team, stack, and stage. Consult a qualified engineer for advice tailored to your situation.
Frequently Asked Questions
What is the most common AWS misconfiguration?
Public S3 buckets and over-broad IAM policies. The pattern behind most disclosed incidents: a resource policy with Principal *, an IAM key committed to a repo, or a snapshot shared to another account. Each is one line of config with account-wide blast radius.
Why is iam:PassRole with Resource * dangerous?
It lets any principal holding it assume any role in the account, including admin roles. An attacker with a modest set of permissions plus this line escalates to full control. It is the classic user-to-admin escalation and almost no scanner highlights it.
How do I find these lines in my account?
A read-only audit: list every resource policy and every identity policy, and grep for Principal *, Resource *, NotAction, and cross-account principals. The roqy audit skill ships these checks with the exact commands and a verdict model.
Get the DevOps Ecosystem Behind You
One accountable engineer. Full platform behind him. Month-to-month, no lock-in.