dharshini1316/StratusIQ
GitHub: dharshini1316/StratusIQ
一款云基础设施智能分析平台,自动检测成本与安全风险并生成可验证修复。
Stars: 52 | Forks: 0
# StratusIQ - 云成本与安全智能平台
一个用于分析云基础设施配置、检测成本浪费和安全漏洞、并生成修复工件的生产就绪平台。
## 功能
- **多源输入**:分析 Terraform 计划或扫描实时 AWS 基础设施
- **成本优化**:检测闲置资源、过度配置的实例和未使用的资产
- **安全分析**:识别错误配置、开放的安全组和合规性问题
- **依赖关系映射**:可视化资源关系和影响范围
- **优先级评分**:按影响、成本节约和风险对发现项进行排名
- **修复生成**:自动生成 Terraform 补丁和 AWS CLI 命令
- **详细说明**:理解为何标记问题以及如何修复
- **PDF 报告**:为利益相关者生成综合报告
## 快速开始
### 安装
```
cd stratusiq
pip install -r requirements.txt
```
### 运行应用程序
```
streamlit run app.py
```
应用程序将在浏览器中打开,地址为 `http://localhost:8501`
## 用法
### 选项 1:Terraform 计划分析
1. 生成 JSON 格式的 Terraform 计划:
```
terraform plan -out=tfplan
terraform show -json tfplan > plan.json
```
2. 在 StratusIQ UI 中上传 `plan.json` 文件
3. 点击“分析基础设施”
### 选项 2:AWS 实时扫描
1. 配置具有只读权限的 AWS 凭证(参见下方的 IAM 策略)
2. 在 UI 中选择“AWS 只读扫描”
3. 选择区域并点击“扫描 AWS 基础设施”
## AWS 扫描的 IAM 策略
使用 `examples/iam_readonly_policy.json` 中的 IAM 策略创建只读角色:
```
aws iam create-policy \
--policy-name StratusIQReadOnly \
--policy-document file://examples/iam_readonly_policy.json
```
## 检测规则
### 成本优化(6 条规则)
1. 空闲 EC2 实例(CPU < 10%)
2. 过度配置的 EC2(CPU < 30%)
3. 未挂载的 EBS 卷
4. 未使用的弹性 IP
5. 利用率低的大型实例
6. 孤立 EBS 快照
### 安全(8 条规则)
1. 安全组开放到 0.0.0.0/0 的风险端口
2. 公开 S3 存储桶
3. 缺少 S3 公共访问阻断
4. 具有通配符操作的 IAM 策略
5. 具有通配符资源的 IAM 策略
6. 未加密的 EBS 卷
7. CloudTrail 已禁用
8. 旧的 IAM 访问密钥
## 架构
```
stratusiq/
├── app.py # Main Streamlit application
├── config.py # Configuration and pricing data
├── scanner/ # Input parsers
│ ├── terraform_parser.py # Terraform plan JSON parser
│ └── aws_scanner.py # AWS API scanner
├── engine/ # Detection rules
│ ├── rule_engine.py # Rule orchestrator
│ ├── cost_rules.py # Cost optimization rules
│ └── security_rules.py # Security rules
├── graph/ # Dependency analysis
│ └── dependency_graph.py # NetworkX graph builder
├── scoring/ # Priority calculation
│ └── priority_scoring.py # Scoring algorithm
├── fixes/ # Remediation generation
│ ├── terraform_patch_generator.py
│ └── cli_fix_generator.py
├── llm/ # Explanation engine
│ └── explanation_engine.py # Finding explanations
├── dashboard/ # UI components
│ ├── findings_table.py # Findings table
│ ├── detail_view.py # Finding details
│ └── graph_view.py # Dependency graph viz
├── report/ # Report generation
│ └── report_generator.py # PDF report builder
└── utils/ # Utilities
├── helpers.py
└── logging_utils.py
```
## 优先级评分算法
```
priority_score = (cost_savings_weight × estimated_savings)
+ (severity_weight × severity_score)
- (change_risk_weight × risk_score)
```
权重:
- 成本节约:1.0
- 严重性:0.5
- 变更风险:0.3
## 安全设计
- 仅使用只读 IAM 权限
- 不存储凭证
- 日志中脱敏敏感字段
- 所有扫描的审计追踪
- 不自动执行修复
## 示例工作流
1. **扫描**:上传 Terraform 计划或扫描 AWS
2. **审查**:使用过滤器浏览发现项表格
3. **分析**:查看详细证据和影响
4. **修复**:复制 Terraform 补丁或 CLI 命令
5. **报告**:为利益相关者生成 PDF
## 使用示例数据进行测试
示例 Terraform 计划位于 `examples/terraform_sample_plan.json`:
```
# 在 UI 中上传 examples/terraform_sample_plan.json
```
这将检测到:
- 过度配置的 m5.4xlarge 实例
- 端口 22 上开放到 0.0.0.0/0 的安全组
- 未挂载的 EBS 卷
- 未加密的 EBS 卷
- 公开 S3 存储桶
- 具有通配符主体的 IAM 角色
## 要求
- Python 3.8+
- Streamlit 1.31+
- boto3(用于 AWS 扫描)
- networkx(用于依赖关系图)
- plotly(用于可视化)
- reportlab(用于 PDF 报告)
## 许可证
MIT 许可证
## 支持
如有疑问或问题,请在 GitHub 上打开一个议题。
标签:AWS, DPI, ECS, IAM策略, Kubernetes, PDF报告, Streamlit, Terraform, 云基础设施, 优先级评分, 依赖映射, 关键词:云成本, 关键词:基础设施即代码, 关键词:多源输入, 关键词:安全合规, 关键词:自动修复, 关键词:风险可视化, 只读扫描, 性能优化, 成本优化, 智能运维, 检测绕过, 模块化设计, 漏洞修复, 特权检测, 生产就绪, 网络安全培训, 自动化修复, 访问控制, 资源回收, 逆向工具