An inspection drawing
of your AWS account.
iso27001-auditor scans EC2, RDS, EKS, ECS, IAM, S3, and a dozen other services from one read-only role, then marks up the account the way an inspector marks up a drawing — pass, warn, fail, with the fix noted right on the sheet.
18 controls checked · one read-only role
What it checks
Eighteen controls across every service a typical AWS footprint runs. A service you're not using shows a clean informational line, not a false failure.
| Control | Covers | Checks |
|---|---|---|
| A.5.15 / A.5.17 | Access & authentication | Root/IAM MFA, password policy, stale keys |
| A.8.24 | Cryptography | EBS/RDS/S3 encryption, KMS rotation |
| A.8.16 | Monitoring | CloudTrail, GuardDuty, VPC Flow Logs |
| A.8.9 | Configuration management | AWS Config recorder status |
| A.8.12 | Data leakage prevention | S3 public access, open security groups |
| A.8.13 | Backup | RDS retention, AWS Backup coverage |
| A.8.20 | Network hardening | IMDSv2, public IP exposure |
| EKS / ECS | Container platforms | Control-plane logging, privileged tasks, secrets encryption |
| ECR | Registry hardening | Scan-on-push, encryption type, tag immutability |
| ElastiCache / RDS | Data stores | Encryption, public access, deletion protection |
| DynamoDB / Lambda | Serverless | Encryption type, point-in-time recovery, public function URLs |
| SQS / SNS / EFS | Messaging & storage | Encryption at rest |
| SecretsManager / ACM | Secrets & certificates | Rotation status, certificate expiry |
Get it running
One machine, one read-only role. Nothing installed in your account.
-
1
Get the code
Pulls the latest tagged release (a fixed snapshot, not the moving
mainbranch):curl -L -o iso27001-auditor.zip \ https://codeload.github.com/yousafkhamza/iso27001-auditor/zip/refs/tags/v1.0.0 unzip iso27001-auditor.zip && cd iso27001-auditor-1.0.0Or, if you have git:
git clone --branch v1.0.0 https://github.com/yousafkhamza/iso27001-auditor.git -
2
Attach a read-only role
The AWS-managed
SecurityAuditpolicy covers everything the scan needs. See ACCESS.md for the exact action list if you'd rather hand-roll it. -
3
Install and run
pip install -r requirements.txt # add --break-system-packages only if pip refuses with # "externally-managed-environment" (common on newer Debian/Ubuntu): # pip install -r requirements.txt --break-system-packages python3 iso27001_auditor.py --regions us-east-1,eu-central-1 --out ./report -
4
Read the sheet
Open
./report/iso27001-report.html. Every failing or warning control includes a fix, not just a red status. Exit code is1on any failure — wire it into CI for continuous checking.
Two roles, not one
The scan itself never needs write access. A second, separately scoped role is only required if you use the optional S3 push to publish the report — and even then it's limited to one bucket prefix, not account-wide S3 access.
Read the full access breakdown