The Security Pass — Six Questions, Six Pieces of Evidence
coreadvancedThe security pass of a review asks six questions: who can do what, is the data encrypted, where do the secrets live, what can reach this over the network, is every action logged, and when was the code last scanned. Each question is answered with evidence you can point at — a policy, a key id, a security group rule, a scan date — not with a sentence about intent.
Think of it as
Review the account, not the diagram. A diagram shows what someone meant to build; `aws ec2 describe-security-groups` shows what is running. Every one of the six questions has a command or a console page that produces the real answer, and a review that accepts a claim instead of that output finds nothing.
What we're doing: Run the security pass over a design that has already been signed off.
- 3
- A managed policy with `FullAccess` in its name is the fastest least-privilege finding there is, and it survives most reviews because the policy name sounds official.
- 9
- Splitting encryption into two questions is what catches the common shape: encrypted at rest, and plain text on the last hop inside the VPC.
- 15
- Secrets are reviewed exhaustively or not at all — one hard-coded key is enough to make the rotation story on the other one irrelevant.
- 22
- A CIDR-based database rule grants access to every future workload placed in that range. A security group id grants it to one thing.
Why this works: Every fail here was invisible in the architecture diagram, because the diagram is a drawing of the intent and each of these is a property of the running account. The six questions are worth asking in this order because they move outward — identity, then data, then credentials, then network, then the record, then the code — and each one has a command that produces an answer nobody can argue with.
Reviewing the diagram instead of the account
Wrong
Better
What you see: A review signs off a design that is safe as drawn, and the account keeps a rule that lets any instance anywhere in the VPC open a database connection — usually discovered when an unrelated team launches something into the same range.
Why: A diagram records what someone intended at the time it was drawn. Configuration drifts away from it through console edits, emergency changes and later additions, and none of those update the picture. Reviewing the live configuration is the only pass that describes the system as it currently is.
- Six rows, each with a question on the left, the evidence that closes it in the middle, and the failing answer on the right.
- Least privilege: closed by an Access Analyzer report showing no unused permissions; fails on "we follow least privilege".
- Encryption: closed by a named KMS key id and a TLS policy; fails on "everything is encrypted".
- Secrets: closed by a Secrets Manager ARN and a rotation date; fails on a credential in an environment variable.
- Network isolation: closed by security group rules with no 0.0.0.0/0 on admin or database ports; fails on "it is in a private subnet".
- Logging: closed by an organization trail in a separate log account; fails on "CloudTrail is on".
- Vulnerability management: closed by a scan date and a named owner; fails on "Inspector is enabled".
The security pass — what to run, what closes the question
Together
Remember: Six questions: privilege, encryption, secrets, network, logging, vulnerabilities. Each is closed by an artefact — a policy, a key id, a secret ARN, a security group rule, a trail in another account, a scan date with an owner. Review the account rather than the diagram, because only one of the two drifts.
See also: least privilege and evaluation · encryption at rest vs in transit · secrets manager and parameter store · centralizing and protecting audit logs · the reliability review

