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, 云基础设施, 优先级评分, 依赖映射, 关键词:云成本, 关键词:基础设施即代码, 关键词:多源输入, 关键词:安全合规, 关键词:自动修复, 关键词:风险可视化, 只读扫描, 性能优化, 成本优化, 智能运维, 检测绕过, 模块化设计, 漏洞修复, 特权检测, 生产就绪, 网络安全培训, 自动化修复, 访问控制, 资源回收, 逆向工具