Skip to main content

aws-audit — the AWS security checklist I run on client accounts

A free, read-only AWS security & cost audit CLI. Point it at an account and it runs the same 30-point checklist a fractional CTO uses before a paid audit, then prints a prioritized findings report. It only makes Describe/List/Get calls — nothing is ever created, modified, or deleted, and no data leaves your machine.

$ aws-audit

  AWS Security Audit  ·  aws-audit
  Account 123456789012  ·  regions: us-east-1
  ────────────────────────────────────────────────────────────────

   CRITICAL  [IAM-1] Root account MFA  — FAIL
      Root account does NOT have MFA enabled.
      fix: Enable a hardware or virtual MFA device on the root user and stop using root.

   HIGH  [IAM-2] Long-lived IAM access keys  — FAIL
      2 active access key(s) older than 90 days.
      affected: deploy-bot:7Q4A (412d), ci-user:9F1C (203d)
      fix: Rotate or delete keys older than 90 days; prefer IAM Identity Center (SSO).
  ...
  1 fail  ·  3 warn  ·  18 pass

  Want this done for you — and the issues fixed? → https://services.itsdavidg.co

Install

pipx install aws-audit-checklist     # recommended
# or
pip install aws-audit-checklist

Usage

aws-audit                       # uses your default AWS credential chain + region
aws-audit --profile myprofile   # a named profile
aws-audit --all-regions         # run regional checks in every enabled region
aws-audit --markdown report.md  # export a Markdown report
aws-audit --json                # machine-readable output
aws-audit --strict              # exit non-zero if anything FAILs (CI gate)

You only need read-only credentials. A built-in AWS managed policy like SecurityAudit or ReadOnlyAccess is more than enough. Checks you lack permission for are reported as "could-not-check" rather than failing the run.

What it checks (30-point checklist)

Area Examples
Identity (IAM) root MFA, access keys > 90 days, console users without MFA, password policy
Network security groups exposing SSH/RDP to 0.0.0.0/0
Data S3 public buckets & default encryption, EBS encryption-by-default, RDS public/encrypted/backups
Logging multi-region CloudTrail, GuardDuty, AWS Config
Cost signals unattached EBS volumes, unused Elastic IPs

The full human-readable checklist (with the items not yet automated — incident runbooks, multi-AZ, IaC, off-account backups) is here: the 30-point AWS Security Checklist PDF.

Why this exists

I'm David Gomez — I do fractional-CTO work and run AWS security/cost audits. I kept running this same checklist by hand on every account, so I open-sourced the automatable parts. If you want the whole thing done for you — including the manual items and actually fixing what it finds, with a guarantee — that's my AWS Complete Security Audit.

License

MIT. Use it freely. No warranty — it's a helper, not a substitute for a real review.

Metadata

Release files for aws-audit-checklist 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aws-audit-checklist 0.1.0
File Size Uploaded Provenance Actions
aws_audit_checklist-0.1.0.tar.gz 11.3 kB Without provenance Details for aws_audit_checklist-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for aws-audit-checklist 0.1.0
File Interpreter ABI Platform Actions
aws_audit_checklist-0.1.0-py3-none-any.whl Python 3 none any Details for aws_audit_checklist-0.1.0-py3-none-any.whl

Total release size: 22.6 kB

Release files / aws_audit_checklist-0.1.0.tar.gz

Download URL aws_audit_checklist-0.1.0.tar.gz
Size 11.3 kB
Tags Source
SHA-256 checksum
How to use checksums
79db76e299f3eeda0faa072e800ebcf88549b51bee77c0ae7d1406d810bb38cb
BLAKE2b-256 checksum
How to use checksums
71f295d7c91184e8323ed60a3873a1f680deab9d8e0164c59a05bcda2028a68f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / aws_audit_checklist-0.1.0-py3-none-any.whl

Download URL aws_audit_checklist-0.1.0-py3-none-any.whl
Size 11.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6dfdabcd529f9899b0d5122eeb43135dd21f5b3991f73e32e3da8d4d4f303f23
BLAKE2b-256 checksum
How to use checksums
8dc7abfd3ce55b9960f2e0ba10f84e551cc24a42fef6204b4507d55190f14e7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Security for aws-audit-checklist 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page