Skip to content

gniemczyk/aws-cli-pulse-auditor

Repository files navigation

AWS Global Pulse - Infrastructure & Cost Auditor

AWS Global Pulse to modularny silnik audytowy, który skanuje Twoje środowisko AWS pod kątem marnotrawstwa kosztów, problemów operacyjnych oraz inwentaryzacji zasobów.

🚀 Kluczowe Funkcjonalności

  • Paginacja AWS API - Automatyczne pobieranie wszystkich zasobów (nawet >1000)
  • Cache'owanie wyników - Szybsze skanowanie przez eliminację powtórzeń API
  • Lazy Loading - Bezpieczne importy modułów z obsługą błędów
  • Dashboard HTML - Czysty, jasny motyw, kafelkowy układ usług i intuicyjne filtrowanie
  • Ujednolicony format danych - Spójne pola count i region we wszystkich skanerach
  • Modularna Architektura - Kod podzielony na dedykowane moduły

📊 Zakres Audytu

Aplikacja skanuje następujące usługi AWS:

Kategoria Usługi
Compute EC2 (health checks), Load Balancers, NAT Gateways, Lambda, ECS
Storage EBS (volumes, snapshots), EFS
Database RDS (status, public access), DynamoDB (provisioned capacity)
Container EKS (deprecated versions), ECR (old images)
Networking VPC (limits), Security Groups (open ports), API Gateway, Route53, CloudFront
Security IAM (old keys, unused roles), KMS, Secrets Manager, S3 (public buckets)
Messaging SQS (old messages), SNS
Monitoring CloudWatch (large log groups)
Cache ElastiCache (deprecated versions)

⚙️ Konfiguracja Parametrów Skanowania

Wszystkie progi, limity i założenia skanowania są zdefiniowane w pliku config.py:

# Przykłady konfigurowalnych parametrów:
- STATUS_PRIORITY          # Priorytety statusów (OK, INFO, WARNING, CRITICAL...)
- LAMBDA_CONFIG          # Lista przestarzałych runtime'ów
- EKS_CONFIG             # Przestarzałe wersje Kubernetes
- SECURITY_GROUP_CONFIG  # Krytyczne i bezpieczne porty
- IAM_CONFIG             # Progi wieku kluczy i ról
- SQS_CONFIG             # Próg wieku wiadomości
- CLOUDWATCH_CONFIG      # Próg dużych grup logów
- KMS_CONFIG             # Próg wieku kluczy bez rotacji
- ELASTICACHE_CONFIG     # Przestarzałe wersje Redis/Memcached
- EFS_CONFIG             # Próg dużych niezamontowanych FS
- THRESHOLDS             # VPC quota, snapshot days, CPU thresholds
- COST_CONFIG            # Szacunkowe koszty AWS (EIP, EBS, NAT...)

Aby zmienić parametry skanowania - edytuj odpowiednie sekcje w config.py przed uruchomieniem audytu.

📋 Wymagania

  • Python 3.8+
  • Biblioteka boto3
  • Poświadczenia AWS w ~/.aws/credentials (uprawnienia ReadOnlyAccess)

🛠️ Użycie

# Instalacja zależności
pip install boto3

# Uruchomienie (nowy modułowy sposób)
python3 auditor.py

Raport aws_pulse_report.html otworzy się automatycznie.

📁 Struktura Projektu

aws-cli-pulse-auditor/
├── __init__.py           # Pakiet Python z lazy loading
├── auditor.py            # Główny orchestrator audytu
├── config.py             # PARAMETRY SKANOWANIA - progi, limity, koszty, wersje
├── scanners/             # Moduł skanerów AWS
│   ├── __init__.py       # Rejestr skanerów
│   ├── base.py           # Klasy bazowe z paginacją i cache
│   ├── ec2.py            # EC2, EBS, VPC, Security Groups
│   ├── compute.py        # Load Balancers, NAT, Lambda, ECS
│   ├── container.py      # EKS, ECR
│   ├── database.py       # RDS, DynamoDB
│   ├── storage.py        # ElastiCache, EFS
│   ├── messaging.py      # SQS, SNS
│   ├── networking.py     # API Gateway, Route53, CloudFront
│   ├── monitoring.py     # CloudWatch
│   ├── security.py       # KMS, Secrets Manager
│   └── global_services.py # S3, IAM
├── report_generator.py   # Generator HTML z wykresami
├── template.html         # Szablon raportu (czysty jasny układ HTML)
├── requirements.txt      # Zależności Python
├── README.md
├── README_TESTING.md     # Dokumentacja testów
└── LICENSE

🛡️ Bezpieczeństwo

Skrypt jest bez-zależnościowy (poza boto3) i nie wysyła danych poza Twoją przeglądarkę. Dzięki ThreadPoolExecutor, skanowanie regionów odbywa się równolegle.


Autor: Grzegorz N
Data: Kwiecień 2026

About

Modularny audytor infrastruktury i kosztów AWS - skanuje środowisko pod kątem marnotrawstwa, luk bezpieczeństwa oraz problemów operacyjnych. Generuje interaktywny dashboard HTML.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors