Skip to main content

AWS Well-Architected Review — automated assessment and PDF report generator

Project description

AWS WAR Lens

Automated AWS Well-Architected Review assessments. Scans your AWS account across all six pillars, produces risk-rated findings, and generates a PDF report — with optional LLM-powered narrative and prioritization.

Features

  • 175 programmatic checks across all 6 Well-Architected pillars
  • Risk-rated findings — CRITICAL / HIGH / MEDIUM / LOW / PASS
  • PDF report with executive summary, top priorities, and cross-finding correlations
  • Multi-region scanning--region all scans every opted-in region in parallel
  • No infrastructure required — runs locally or in Docker against any AWS account

Pillars

Pillar Checks
Security 61
Reliability 44
Operational Excellence 34
Performance Efficiency 14
Sustainability 11
Cost Optimization 11

Installation

pip install aws-war-lens

Note: WeasyPrint (used for PDF generation) requires native system libraries on Linux/macOS. See WeasyPrint installation docs if you hit dependency errors.

Usage

# Scan a single region (security pillar by default)
aws-war-lens --region eu-west-1

# Scan multiple pillars
aws-war-lens --region eu-west-1 --pillars security reliability cost_optimization

# Scan all opted-in regions
aws-war-lens --region all

# Skip LLM analysis (no ANTHROPIC_API_KEY needed)
aws-war-lens --region eu-west-1 --no-llm

# Use a named AWS profile
aws-war-lens --region eu-west-1 --profile myprofile

# Use explicit credentials
aws-war-lens --region eu-west-1 --access-key AKIA... --secret-key xxxx

The PDF report is saved to output/ by default. Use --output <dir> to change it.

Authentication

Credentials are resolved in this order:

  1. --access-key / --secret-key / --session-token flags
  2. --profile named profile from ~/.aws/credentials
  3. AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY environment variables
  4. Default AWS CLI profile
  5. IAM instance profile / ECS task role / Lambda execution role

LLM Analysis

Set ANTHROPIC_API_KEY in your environment (or a .env file) to enable LLM-powered narrative, executive summary, and cross-finding correlation in the report. Without it, the report renders with raw findings only.

export ANTHROPIC_API_KEY=sk-ant-...
aws-war-lens --region eu-west-1

Docker

docker run --rm \
  -e ANTHROPIC_API_KEY=sk-ant-... \
  -e AWS_ACCESS_KEY_ID=... \
  -e AWS_SECRET_ACCESS_KEY=... \
  -e AWS_SESSION_TOKEN=... \
  -v "$(pwd)/output:/app/output" \
  aws-war-lens --region eu-west-1

Available Pillars

Value Description
security IAM, S3, GuardDuty, CloudTrail, KMS, VPC, ACM, and more
reliability Auto Scaling, RDS multi-AZ, backups, Route 53, quotas
performance Instance families, Graviton, DynamoDB, CloudFront, ElastiCache
cost_optimization Idle resources, rightsizing, reserved capacity, orphaned snapshots
operational_excellence CloudWatch alarms, SSM, tagging, CI/CD, ECS configuration
sustainability Graviton adoption, Fargate, auto-scaling, S3 intelligent tiering

IAM Permissions

The scanner IAM role needs read-only access across the services it checks. A broad starting point is ReadOnlyAccess (AWS managed policy). Checks that lack permission are reported as coverage gaps in the PDF — they do not fail silently.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aws_war_lens-0.1.1.tar.gz (170.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aws_war_lens-0.1.1-py3-none-any.whl (114.0 kB view details)

Uploaded Python 3

File details

Details for the file aws_war_lens-0.1.1.tar.gz.

File metadata

  • Download URL: aws_war_lens-0.1.1.tar.gz
  • Upload date:
  • Size: 170.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for aws_war_lens-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4110062238d2c721e3132a1f4124396ab04f777f524e97b93e3726d0e76a4be3
MD5 f7ea25226631d0528413d54e05ba78ea
BLAKE2b-256 f4722f8d6a1739ec3aa49e0f1c35e366e0f46c9e2faade1be40fc1eac86d6690

See more details on using hashes here.

File details

Details for the file aws_war_lens-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: aws_war_lens-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 114.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for aws_war_lens-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 28f33c58a99da17ea51d107bbc31d22249e4e894b58691bab8d4bdcb36b2fb5a
MD5 e9c9869764c6f5ea819092989b17f593
BLAKE2b-256 f62de405f84ea3f846ed94e5aa9fa8c8800149e67565cadf41ace07de0a255b9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page