gniemczyk/aws-cli-pulse-auditor
GitHub: gniemczyk/aws-cli-pulse-auditor
模块化的 AWS 基础设施审计工具,一键扫描云环境中的成本浪费、安全风险和运营问题并生成交互式 HTML 仪表盘报告。
Stars: 0 | Forks: 0
# AWS Global Pulse - 基础设施与成本审计工具
**AWS Global Pulse** 是一个模块化的审计引擎,可扫描您的 AWS 环境,以发现成本浪费、运营问题并进行资源盘点。
## 🚀 核心功能
- **AWS API 分页** - 自动获取所有资源(甚至超过 1000 个)
- **结果缓存** - 通过减少重复 API 调用来加快扫描速度
- **Lazy Loading** - 带有错误处理的安全模块导入
- **HTML 仪表盘** - 简洁的浅色主题,服务磁贴布局和直观的过滤功能
- **统一数据格式** - 所有扫描器中保持一致的 `count` 和 `region` 字段
- **模块化架构** - 代码被划分为专用模块
## 📊 审计范围
应用程序会扫描以下 AWS 服务:
| 类别 | 服务 |
|-----------|--------|
| **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) |
## ⚙️ 扫描参数配置
**所有扫描的阈值、限制和假设** 均在 **`config.py`** 文件中定义:
```
# 可配置参数示例:
- 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...)
```
**要更改扫描参数** - 请在运行审计之前编辑 `config.py` 中的相应部分。
## 📋 要求
- Python 3.8+
- `boto3` 库
- 位于 `~/.aws/credentials` 的 AWS 凭证(需要 `ReadOnlyAccess` 权限)
## 🛠️ 使用方法
```
# 安装依赖
pip install boto3
# 运行(新的模块化方式)
python3 auditor.py
```
报告 `aws_pulse_report.html` 将自动打开。
## 📁 项目结构
```
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
```
## 🛡️ 安全性
该脚本是**零依赖**的(除了 boto3),并且不会将数据发送到您的浏览器之外。得益于 `ThreadPoolExecutor`,各区域的扫描可以并行进行。
**作者:** Grzegorz N
**日期:** 2026 年 4 月
标签:AWS, DPI, EC2, EKS, FinOps, HTML仪表盘, IaC, IAM, Lambda, Python, RDS, S3, 云治理, 基础设施审计, 多模态安全, 安全合规, 成本优化, 数据统计, 无后门, 浪费检测, 端口扫描, 网络代理, 资源清点, 资源监控, 足迹分析, 运营效率, 逆向工具