A practitioner's checklist for securing AWS, ordered by impact so you fix the things attackers actually exploit first.
Most AWS breaches are not exotic. They come from a leaked access key with far too many permissions, an S3 bucket left public, or a CloudTrail nobody ever turned on. This is a checklist you can work through account by account, ordered so the highest-impact controls come first. If you only read one section, read "Start here."
AKIA... keys are the number one cause of AWS compromise. Replace them with IAM roles, and for CI/CD use OIDC federation so pipelines assume a role with no stored secret.Everything below expands on these and fills in the rest.
Identity is the real perimeter in AWS. Get this wrong and the network controls barely matter.
deny, grant the specific actions a role needs, and use IAM Access Analyzer to generate policies from real CloudTrail activity instead of guessing.A small guardrail: deny any action that is not backed by MFA.
{
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"BoolIfExists": { "aws:MultiFactorAuthPresent": "false" }
}
}
Treat the network as defense in depth, not the main gate.
0.0.0.0/0 on sensitive ports. SSH (22), RDP (3389), and database ports should never be open to the world. Use Session Manager instead of public SSH so you can drop port 22 entirely.aws s3control put-public-access-block \
--account-id 123456789012 \
--public-access-block-configuration \
BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true
You cannot respond to what you cannot see.
Controls that hold across dozens of accounts, not just one.
If you are staring at an account and do not know where to begin, do these five in order: rotate out every static access key, enable CloudTrail and GuardDuty in all regions, apply account-level S3 Block Public Access, enforce MFA and lock the root account, then bring the account under an Organization with a handful of SCPs. That sequence removes the paths attackers use most, and it buys you the visibility to work through the rest of this list calmly.
Cloud security and application security are the same discipline seen from two sides. Once the AWS platform is locked down, the code running on it becomes the next target, so pair this with your application security best practices and keep both moving together.
Get the latest tutorials, guides, and insights on AI, DevOps, Cloud, and Infrastructure delivered directly to your inbox.
Small language models now handle most agent steps at a fraction of the cost, so pick per step instead of defaulting to a frontier model.
A practitioner's comparison of Trivy, Grype, and Snyk for finding CVEs in container images, plus how to wire scanning into CI without drowning in noise.
Explore more articles in this category
A service mesh solves real problems and creates new ones. This is the map: what it actually does, when it earns its cost, and how the options compare.
Your pipeline holds the keys to production and signs off on everything you ship, so harden both the pipeline itself and the artifacts it builds.
A practical, layer-by-layer checklist for securing Kubernetes clusters, workloads, networking, secrets, and the software supply chain.
Evergreen posts worth revisiting.