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, 云治理, 基础设施审计, 多模态安全, 安全合规, 成本优化, 数据统计, 无后门, 浪费检测, 端口扫描, 网络代理, 资源清点, 资源监控, 足迹分析, 运营效率, 逆向工具