Run this quarterly, and additionally after any change to the automation account, the branch protection rules, the pipeline, or the set of people who can trigger a production run.
It overlaps the secrets review deliberately but asks a different question. The secrets review asks what credentials exist and who can read them. This one asks what the automation is allowed to do, who can make it do something, and whether you would find out if somebody did.
What a failure means
Every critical item describes a way somebody could cause a change to the
fleet without the estate noticing, or a way a compromise of one thing becomes a
compromise of everything. Ansible is a lateral-movement tool with a friendly
interface, and the difference between that being a benefit and a liability is
this list.
Findings here are usually not urgent in the sense of an outage, and are usually expensive to fix, which is why they need a named owner and a date rather than a resolution before the review closes.
Access this needs
The host-side items go through the command module and read: sudo -l,
sshd -T, cat authorized_keys, grep. They need become on the targets.
The repository items are static reads. Nothing here writes.
Two items - branch protection and trigger access - are checked in the version control and CI systems, not from a shell, and two more - the network path and the detection - are attested by a person.
Where the evidence goes
Record the findings, the owner and the agreed date for each, in whatever register your organisation uses for security findings rather than in the repository. The items with no command - branch protection, trigger access, network path, detection, decommissioned trust - need the name of the person who confirmed them, because those are the five that an auditor will ask about and the five that a command cannot answer.
Sign-off
- Reviewer: ________________ Date: ___________
- Platform owner: ___________ Date: ___________
- Security owner: ___________ Date: ___________