sanyasachdeva1/cloudguard-automator
GitHub: sanyasachdeva1/cloudguard-automator
一款 AWS 云安全态势扫描工具,用于检测 IAM、S3、CloudTrail 和安全组配置错误并生成风险评分与修复计划。
Stars: 0 | Forks: 0
# CloudGuard Automator
[](https://github.com/sanyasachdeva1/cloudguard-automator/actions/workflows/ci.yml)



AWS 云安全态势扫描器,可检测常见的 IAM、S3、CloudTrail 和 EC2 安全组配置错误。
它可以在演示模式下运行,也可以针对 AWS 凭证运行,分配严重程度,生成 JSON/Markdown/HTML 报告,并生成模拟运行的修复计划。
## 为什么这个项目很重要
云环境经常因为可预见的配置错误而导致问题:公开的存储、薄弱的 IAM 控制、缺失的日志记录以及暴露的网络服务。
这个项目将这些风险转化为可重复的安全检查,可以在本地运行、在演示模式下运行,或者作为 CI/安全工作流的一部分运行。
## 检查内容
| 领域 | 检查项 |
|---|---|
| IAM | MFA、密码策略、过期的访问密钥、管理员权限附加、通配符策略 |
| S3 | 公开的 ACL/策略、缺失的加密、缺失的版本控制、访问日志、Block Public Access |
| CloudTrail | 启用日志记录、多区域跟踪、日志验证、KMS 加密、管理事件 |
| EC2 安全组 | 公开的管理端口、数据库暴露、所有流量规则、IPv6 暴露、宽泛的端口范围 |
| 报告 | JSON、Markdown、HTML、风险评分、严重程度摘要 |
| 修复 | 模拟运行的 AWS CLI/手动修复指南 |
## 架构
```
flowchart LR
CLI["CLI commands"] --> Scanner["Scan orchestrator"]
Scanner --> IAM["IAM checks"]
Scanner --> S3["S3 checks"]
Scanner --> CT["CloudTrail checks"]
Scanner --> EC2["Security group checks"]
IAM --> Findings["Normalized findings"]
S3 --> Findings
CT --> Findings
EC2 --> Findings
Findings --> Risk["Risk scoring"]
Findings --> Reports["JSON / Markdown / HTML reports"]
Findings --> Remediation["Dry-run remediation plan"]
Lab["Terraform vulnerable lab"] --> Scanner
```
## 独特之处
这并不能替代 Prowler、ScoutSuite、CloudSplaining 或 AWS Security Hub。
它是一个专注的、达到作品集级别的实现,展示了 CSPM 风格的自动化是如何端到端运作的:
- 存在漏洞的 Terraform 实验环境
- Python 扫描器
- 标准化的发现结果
- 风险评分
- 控制映射
- HTML/Markdown 报告
- 模拟运行的修复计划
## 简历相关性
这个项目展示了对以下方面的实际操作经验:
- AWS 云安全态势管理
- IAM、S3、CloudTrail 和网络暴露检查
- 使用 boto3 进行 Python 安全自动化
- 风险评分和修复计划
- 基于 Terraform 的漏洞实验环境设计
- pytest 和 GitHub Actions CI
## 演示预览
项目包含了示例输出,因此无需 AWS 凭证即可查看项目:

- [Markdown 报告示例](reports/sample_report.md)
- [HTML 报告示例](reports/sample_report.html)
```
Risk score: 55/100
Risk level: medium
Critical: 1
High: 2
```
## 风险评分
发现结果会根据严重程度进行评分,从而生成一个简单的账户级别的风险摘要。严重、高、中、低级别的发现结果将贡献加权分数,最高封顶为 100 分,最终得分将被划分为信息、低、中、高或严重风险级别。
评分逻辑位于 [cloudguard_automator/risk.py](cloudguard_automator/risk.py)。
## 控制映射
CloudGuard Automator 包含轻量级的控制映射和 AWS 权限指南:
- [控制映射](docs/control_mapping.md)
- [扫描器使用的 AWS 权限](docs/aws_permissions.md)
- [实时扫描验证清单](docs/live_scan_validation.md)
## 测试
```
pip install -e ".[dev]"
pytest
```
测试套件用于验证发现结果生成、风险评分、报告渲染、Terraform 实验环境配置以及修复计划输出。
## 未来改进
- Security Hub 和 AWS Config 风格的合规性映射
- 扩展 CIS AWS Foundations Benchmark 覆盖范围
- 更多服务:KMS、EBS、Lambda 和 RDS
- GitHub Actions 定时扫描示例
- 针对选定修复项的可选应用模式
## 快速开始
```
python -m venv .venv
source .venv/bin/activate
pip install -e .
```
运行演示模式:
```
cloudguard scan --demo --format markdown --output reports/demo_report.md
cloudguard scan --demo --format html --output reports/demo_report.html
```
针对您环境中配置的 AWS 凭证运行:
```
cloudguard scan --profile default --regions us-east-1 ap-south-1 --format json
```
生成模拟运行的修复计划:
```
cloudguard remediate --demo --dry-run --format markdown --output reports/demo_remediation.md
```
在沙盒账户中运行存在漏洞的 AWS 实验环境:
```
cd terraform/lab
terraform init
terraform apply
```
然后从仓库根目录对其进行扫描:
```
cloudguard scan --profile default --regions us-east-1 --format markdown --output reports/lab_scan.md
cloudguard remediate --profile default --regions us-east-1 --dry-run --format markdown --output reports/lab_remediation.md
```
## 发现结果示例
```
HIGH: S3 bucket "company-backups" does not block public access.
Risk: Publicly exposed storage can leak sensitive files or backups.
Remediation: Enable S3 Block Public Access at the bucket or account level.
```
## 安全性
本项目最初是一个只读扫描器。修复功能将在明确的模拟运行/应用标志的控制下添加,以确保所有更改都是经过深思熟虑且可审计的。
## 许可证
本项目基于 [MIT 许可证](LICENSE) 授权。
标签:AWS, DPI, Python, 安全规则引擎, 无后门, 网络调试, 自动化, 逆向工具