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.
- 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
countiregionwe wszystkich skanerach - Modularna Architektura - Kod podzielony na dedykowane moduły
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) |
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.
- Python 3.8+
- Biblioteka
boto3 - Poświadczenia AWS w
~/.aws/credentials(uprawnieniaReadOnlyAccess)
# Instalacja zależności
pip install boto3
# Uruchomienie (nowy modułowy sposób)
python3 auditor.py
Raport aws_pulse_report.html otworzy się automatycznie.
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
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