summaryrefslogtreecommitdiff
path: root/README.nfo
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-08-02 15:29:30 -0500
committerChristian Cleberg <[email protected]>2026-08-02 15:29:30 -0500
commit0c41e5e1f3f1333c051c8ff0422784e334714e77 (patch)
tree2ac21e41c77f85067f4cebae2735f2c8f448fe6d /README.nfo
parent87ea6f21e5ccdc78a7956a5e302208091f56d2ab (diff)
downloadaws-summary-report-0c41e5e1f3f1333c051c8ff0422784e334714e77.tar.gz
aws-summary-report-0c41e5e1f3f1333c051c8ff0422784e334714e77.tar.bz2
aws-summary-report-0c41e5e1f3f1333c051c8ff0422784e334714e77.zip
convert readme to nfo; fold nested readme; relicense to 0bsdHEADmain
Diffstat (limited to 'README.nfo')
-rw-r--r--README.nfo81
1 files changed, 81 insertions, 0 deletions
diff --git a/README.nfo b/README.nfo
new file mode 100644
index 0000000..8e7f8b6
--- /dev/null
+++ b/README.nfo
@@ -0,0 +1,81 @@
+┌──────────────────────────────────────────────────────────────┐
+│ A W S S U M M A R Y [ KRZ ] krz.sh │
+└──────────────────────────────────────────────────────────────┘
+
+WHAT
+ python tool. sends one plaintext email a day summarizing an aws
+ account: billing, security hub findings, route 53 health checks,
+ cloudwatch alarms, s3 audit, expiring acm certs, config compliance,
+ cloudfront changes, waf blocks.
+
+ built for solo or small-team accounts. add a section by dropping
+ new_section.py in sections/ and listing it in config.toml.
+
+CONFIGURE
+ edit config.toml:
+
+ [aws]
+ profile = "default"
+ region = "us-east-1"
+
+ [email]
+ subject = "Daily AWS Report"
+
+ [report]
+ sections = ["acm"]
+
+ no aws profile yet:
+
+ aws configure --profile default
+
+RUN
+ python main.py
+
+ or with uv (installs deps, makes a venv):
+
+ uv run main.py
+
+ emails are plaintext with ascii tables via tabulate.
+
+INSTALL
+ python 3.11+.
+
+ pip install -r requirements.txt
+ # or: uv sync
+
+ needs boto3 and tabulate. the iam user or role needs read access to
+ cost explorer, security hub, s3, cloudfront, cloudwatch, route 53,
+ acm, config, waf, and ses if sending from aws.
+
+STRUCTURE
+ config.toml aws profile, region, email, report options
+ main.py entry point; builds and sends the report
+ email_formatter.py formats the email body
+ utils.py shared helpers
+ pyproject.toml metadata and dependencies
+ sections/ one generator per section
+ acm.py expiring certs
+ cloudfront.py distribution changes
+ cloudwatch.py alarms
+ config.py config compliance
+ costexplorer.py billing
+ route53.py health checks
+ s3.py bucket audit
+ securityhub.py findings
+
+ each section implements get_section(config) -> str. add, remove, or
+ order sections in config.toml.
+
+TODO
+ - csv or html export
+ - slack or teams notifications
+ - lambda deployment
+
+LICENSE
+ 0bsd. see LICENSE.
+
+┌──────────────────────────────────────────────────────────────┐
+│ krz.sh │
+└──────────────────────────────────────────────────────────────┘