What a Cloud Security Audit Actually Checks, Step by Step
A cloud security audit should work backward from what an attacker or a careless engineer could actually do, starting with an inventory of accounts, then patching, then identity. Most audits start in the wrong place, with a spreadsheet of framework controls checked off in list order, which produces a checklist instead of a picture of real exposure.
A useful audit works backward from what an attacker, or a careless engineer, could actually do: get into an account that should have been closed, read data they shouldn't, or leave a known vulnerability unpatched for months. Here's the order that finds those problems, and roughly what Taj, MeetMyCTO's AI CTO, walks through when a founder asks for one.
Vendors Covered in this Article
Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.
Inventory what you're actually running before you audit anything
You can't audit an account you forgot exists. Start by pulling every cloud account and project from your billing console, not just the ones your team mentions in standup. Cross-reference that list against your IAM console for service accounts, API keys, and integrations, and flag anything with no clear owner tag.
Most teams find at least one forgotten staging environment or an old contractor's access token still active during this step. That alone is often worth more than the rest of the audit combined, because it's the kind of gap that doesn't show up in a compliance checklist at all.
Check patch and vulnerability remediation against a real SLA
Having a vulnerability scanner running is not the same thing as closing what it finds. Pull your last three months of scan results and check how long each finding actually sat open before someone fixed it, not how long your policy document says it should take.
If you want an external yardstick, the U.S. government's own patch directives are a reasonable one: federal agencies are required to remediate a critical, internet-facing vulnerability within 15 days and a high one within 301. A small team doesn't need to hit that exactly, but if your open findings are sitting for months, that's the gap to close first.
Review identity and secrets separately from infrastructure
It's tempting to fold access review into the infrastructure pass, but it gets skipped when you do that, because reviewing every IAM role's actual permissions is slower and less satisfying than checking a firewall rule. Do it as its own pass.
Look specifically for roles with broader permissions than anyone remembers granting, credentials that have never been rotated, and API keys embedded directly in code or config rather than a secrets manager. Any of those three, found in a real account, tells you more about your actual risk than most of the rest of the audit.
Decide what evidence to collect automatically versus by hand
A team proving three or four recurring controls to one or two customers can usually keep evidence in a shared folder and update it by hand each quarter. That changes once you're proving a growing set of controls to a growing list of customers who each want their own SOC 2 report or security questionnaire answered.
At that point, rebuilding the same screenshots every audit cycle stops being a rounding error and starts eating real engineering time, which is when it's worth automating evidence collection instead of collecting it by hand each time.
Common mistakes that make an audit worthless
A handful of habits turn a real audit into theater:
- Auditing to check a compliance box rather than to find and fix real gaps
- Assigning no owner to a finding, so it sits open until the next audit surfaces it again
- Testing against a staging environment that doesn't match production's actual configuration
- Treating the audit as a once-a-year event instead of a standing part of how you ship
Any one of these will make the next audit find the same problems as the last one.
How this looks different for a five-person team versus a fifty-person one
A five-person team can usually run the full inventory, patching, and identity review in an afternoon, because there aren't many accounts or roles to check, and the same one or two people who set things up can just look at them again. The main risk at that size is skipping the exercise entirely because everything feels too small to matter.
Once you're past a few dozen engineers, the same steps take real coordination: multiple teams own different services, roles get granted for a one-off project and never revoked, and no single person remembers what every account is for anymore. At that stage, the inventory step stops being a personal memory check and becomes a genuine cross-team exercise, which is usually the point where it's worth putting a recurring owner and a shared tool behind it rather than relying on one person's notes.
What Good Looks Like
Good here means every account, credential, and open vulnerability has a named owner and a remediation deadline that's actually tracked, not just a scan report nobody reopens.
Building The Capability (5-Stage Skill Ladder)
How to Get Started
Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.
Vanta is worth adding once you're proving the same handful of controls to customers repeatedly and don't want to rebuild evidence from scratch each time.
Drata covers similar ground to Vanta, with more built-in workflow for assigning each finding to the person who actually has to fix it.
Frequently Asked Questions
How often should we run a full cloud security audit?
Run a full pass at least twice a year, and treat access reviews and vulnerability remediation as ongoing rather than saved for the audit. Trigger an extra review after any major infrastructure change, a security incident, or when you take on a customer who requires evidence of one.
Can a small engineering team run this without hiring an outside firm?
Yes, for the inventory, patching, and identity steps above. Bring in outside help specifically when a customer or contract requires an independent report, like a SOC 2 audit or a formal penetration test, since those need a third party's signature to count.
What's the difference between a security audit and a SOC 2 audit?
A security audit is something you run for yourself to find and fix real exposure. A SOC 2 audit is an independent examiner's report that specific controls existed and worked over a period of time, meant to be handed to customers, not primarily to find new problems.
Sources
Where we quote a benchmark, we show its source. Other figures in this guide are estimates or general guidance, so check them against your own numbers.
- Security patch remediation SLAs (CISA federal mandates, used as industry norm). CISA Binding Operational Directives 19-02 and 22-01 (CISA briefing hosted at NIST CSRC), 2022.
Related Guides
Build Your Own Audit Log or Buy the Evidence Trail?
What it actually takes to build tamper evident audit logging in house, versus what a compliance platform buys you, so you can make the call with real tradeoffs.
Deciding When Your Company Actually Needs SOC 2
How to tell whether it's time to pursue SOC 2, what Type I versus Type II actually costs in time, and who should own compliance once you start.
The IaC Setup That Works Until Someone Changes Something by Hand
Infrastructure as code only reflects reality until someone makes a manual change in the console. A checklist for catching and preventing that drift.
How to Ship a Risky Change Without a 2am Rollback
A concrete walkthrough of how to plan a risky production deployment: how to split it, what to watch, and when to decide the rollback trigger.
Build or Buy for Verifying Every Device That Connects?
How to split device identity from device posture checking, what building either one in house actually costs, and where a platform earns its keep instead.
Container Security: What Actually Stops an Attacker
Why passing every image scan still isn't enough, and the four separate layers, base image, build pipeline, runtime config, and behavior, that hardening covers.