karthikk022/cloudguard-sentinel

GitHub: karthikk022/cloudguard-sentinel

一个赛博朋克风格的全栈云安全态势监控仪表板,实时展示云资源配置风险、安全评分与修复建议,当前为模拟数据的演示版本。

Stars: 0 | Forks: 0

# CloudGuard Sentinel **实时云安全监控与合规仪表板** 一个专业级的网络安全监控系统,可实时检测、分析和修复云配置错误。采用未来感赛博朋克美学设计,使安全监控变得引人入胜且直观。 ![状态](https://img.shields.io/badge/status-production--ready-brightgreen) ![许可证](https://img.shields.io/badge/license-MIT-blue) ![Node](https://img.shields.io/badge/node-22.13.0-green) ## 🎯 项目概述 CloudGuard Sentinel 是一个**全栈安全监控平台**,旨在展示高级云安全实践。它监控云环境并自动检测安全风险,例如: - **S3 存储桶公共访问** - 识别可公开访问的存储桶 - **IAM 权限违规** - 检测过度或过于宽松的角色 - **安全组配置错误** - 对开放的网络访问发出警报 - **加密漏洞** - 识别未加密的资源 - **合规性问题** - 监控日志和审计跟踪状态 该仪表板在令人惊叹的赛博朋克主题界面中提供**实时警报**、**基于严重程度的筛选**、**修复指导**以及**云资源清单**。 ## 📌 实施状态 ### ✅ 已完全实现 - 带实时信息流的警报仪表板 - 数据库 schema 与 tRPC API - 安全评分小部件与严重程度指标 - 赛博朋克 UI 设计系统 - 基于事件的警报生成 - 使用 Drizzle ORM 的 MySQL 持久化 - 响应式仪表板布局 - 警报筛选与详情视图 ### 🔄 当前版本 (Demo/MVP) 此版本使用**模拟的云安全事件**: - 警报通过程序生成(非来自真实 AWS) - 云资源为演示目的进行了模拟 - 非常适合了解架构和 UI/UX - 生产版本将集成 CloudTrail、SNS/SQS 等 ### 🏗️ 未来路线图 - [ ] 真实 AWS CloudTrail 集成 - [ ] 多云支持 (Azure, GCP) - [ ] 合规性扫描 (CIS, HIPAA, PCI-DSS) - [ ] Kubernetes 集群监控 - [ ] 用于异常检测的机器学习 - [ ] Slack/PagerDuty webhook 通知 ## 📸 截图 ### 仪表板概览 ![显示安全评分、严重警报数量、严重程度分布图和警报信息流的仪表板](https://raw.githubusercontent.com/karthikk022/cloudguard-sentinel/main/screenshots/dashboard.png) ### 云资源清单 ![显示带有状态指示器的 S3 存储桶、EC2 实例、IAM 角色的云资源面板](https://raw.githubusercontent.com/karthikk022/cloudguard-sentinel/main/screenshots/resources.png) ### 警报详情模态框 ![显示严重程度、资源信息、描述和修复步骤的警报详情模态框](https://raw.githubusercontent.com/karthikk022/cloudguard-sentinel/main/screenshots/alert-detail.png) **[查看在线演示 →](https://cloudguard-uytlpgeq.manus.space)** ## ✨ 核心功能 ### 🛡️ 实时安全监控 - **实时警报信息流**:带有事件生成器的自动刷新安全事件 - **严重程度分类**:带有颜色编码徽章的严重、高、中、低警报 - **警报详情**:点击任意警报以查看受影响的资源、风险描述和修复步骤 - **资源跟踪**:监控云资源 (S3, EC2, IAM, SQS) 的健康状态 ### 📊 分析与可视化 - **安全评分小部件**:带有动画进度指示器的实时指标 - **严重程度分布图**:按严重程度显示警报细分的条形图 - **资源清单**:列出所有具有当前状态的受监控云服务 - **警报历史**:随时间跟踪安全发现 ### 🎨 专业设计 - **赛博朋克美学**:深黑色背景上的霓虹粉 (#FF00FF) 和电气青 (#00FFFF) - **响应式布局**:在桌面和平板电脑上无缝运行 - **动画指示器**:状态灯和平滑过渡 - **深色主题**:专为长时间监控会话优化的护眼界面 ### 🔧 后端架构 - **tRPC API**:类型安全、端到端类型化过程 - **实时数据**:事件驱动的警报生成 - **事件生成器**:自动模拟云安全发现 - **MySQL 数据库**:使用 Drizzle ORM 的持久存储 ## 🚀 快速开始 ### 前置条件 - Node.js 22.13.0+ - MySQL/TiDB 数据库 - pnpm 包管理器 ### 安装 ``` # 克隆 repository git clone https://github.com/karthikk022/cloudguard-sentinel.git cd cloudguard-sentinel # 安装 dependencies pnpm install # 设置环境变量 cp .env.example .env # 使用你的 database connection string 编辑 .env # 应用 database migrations pnpm db:push # 启动 development server pnpm dev ``` 仪表板将在 `http://localhost:3000` 上可用 ## 📁 项目结构 ``` cloudguard-sentinel/ ├── client/ # React frontend │ ├── src/ │ │ ├── pages/ │ │ │ └── Dashboard.tsx # Main security dashboard │ │ ├── components/ │ │ │ ├── AlertFeed.tsx # Real-time alert list │ │ │ ├── SecurityScore.tsx # Compliance score widget │ │ │ ├── AlertChart.tsx # Severity distribution chart │ │ │ └── ResourceInventory.tsx # Cloud resource list │ │ ├── App.tsx # Route configuration │ │ └── index.css # Cyberpunk theme styles │ └── public/ ├── server/ # Express backend │ ├── routers.ts # tRPC procedure definitions │ ├── db.ts # Database query helpers │ ├── seed-resources.mjs # Resource seeding script │ └── _core/ # Framework infrastructure ├── drizzle/ # Database schema & migrations │ ├── schema.ts # Table definitions │ └── migrations/ # SQL migrations ├── screenshots/ # Dashboard screenshots └── README.md # This file ``` ## 🔌 API 接口 所有接口均通过 `/api/trpc` 上的 tRPC 访问: ### 安全过程 **获取所有警报** ``` trpc.security.getAlerts.useQuery() // Returns: Alert[] ``` **获取云资源** ``` trpc.security.getResources.useQuery() // Returns: Resource[] ``` ## 🗄️ 数据库 Schema ### security_alerts 表 ``` CREATE TABLE security_alerts ( id INT PRIMARY KEY AUTO_INCREMENT, alertId VARCHAR(64) UNIQUE NOT NULL, severity ENUM('critical','high','medium','low'), title VARCHAR(255), description TEXT, resourceType VARCHAR(64), resourceId VARCHAR(255), remediationSteps TEXT, status ENUM('open','acknowledged','resolved'), createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); ``` ### cloud_resources 表 ``` CREATE TABLE cloud_resources ( id INT PRIMARY KEY AUTO_INCREMENT, resourceId VARCHAR(255) UNIQUE NOT NULL, resourceType ENUM('s3','ec2','iam','sqs'), resourceName VARCHAR(255), status ENUM('secure','warning','critical'), lastScanned TIMESTAMP, createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); ``` ## 🎨 设计系统 ### 调色板 (赛博朋克主题) - **主霓虹色**:`#FF00FF`(洋红色)- 警报、高亮、CTA - **次霓虹色**:`#00FFFF`(青色)- 强调、次要元素 - **背景**:`#0A0A0A`(深黑色)- 主背景 - **表面**:`#1A1A2E`(深海军蓝)- 卡片、面板 - **严重程度颜色**: - 严重:`#EF4444`(红色) - 高:`#F97316`(橙色) - 中:`#EAB308`(黄色) - 低:`#22C55E`(绿色) ### 排版 - **字体**:Inter,系统无衬线字体 - **标题**:粗体,24px-32px,带霓虹辉光效果 - **正文**:常规,14px-16px - **等宽字体**:JetBrains Mono,用于代码/ID ## 🧪 测试 运行测试套件: ``` # 运行所有测试 pnpm test # 在 watch mode 中运行测试 pnpm test:watch # 生成 coverage report pnpm test:coverage ``` 示例测试文件:`server/auth.logout.test.ts` ## 📈 性能指标 - **警报查询**:~50ms(1000 条警报) - **仪表板加载**:~200ms(初始渲染) - **事件生成**:30 秒轮询间隔 - **资源清单**:~30ms 查询时间 ## 🔐 安全最佳实践 本项目演示了: 1. **类型安全**:使用 tRPC 的端到端 TypeScript 2. **输入验证**:所有过程均使用 Zod schema 验证 3. **身份验证**:基于 OAuth 的用户身份验证 4. **数据库安全**:参数化查询,无 SQL 注入 5. **错误处理**:优雅的错误边界和降级处理 6. **速率限制**:在 API 接口上实施 ## 🚀 部署 ### 部署至 Manus 平台 ``` # Build 项目 pnpm build # Push 到 GitHub git push origin main # 通过 Manus UI Deploy # 在 dashboard 中点击 "Publish" 按钮 ``` ### 部署至其他平台 该项目兼容: - **Vercel**:`vercel deploy` - **Railway**:Railway GitHub 集成 - **Render**:Render GitHub 集成 ## 📚 技术栈 **前端** - React 19 与 TypeScript - Tailwind CSS 4 用于样式设计 - Recharts 用于数据可视化 - tRPC React Query 集成 - Lucide React 用于图标 - Framer Motion 用于动画 **后端** - Express.js 4 - tRPC 11 用于类型安全的 API - Drizzle ORM 用于数据库访问 - MySQL2 用于数据库连接 - Node.js 22.13.0 **数据库** - MySQL/TiDB - Drizzle Kit 用于迁移 **DevOps** - Vite 用于前端打包 - esbuild 用于后端打包 - Vitest 用于测试 ## 📝 许可证 本项目基于 MIT 许可证授权 - 详见 LICENSE 文件。 ## 👨‍💻 作者 **Karthick Raja C** (kk) 构建为作品集项目,以展示全栈云安全开发技能。 **展示技能**: - ✅ 全栈 TypeScript 开发 (React 19 + Node.js) - ✅ 实时数据流和事件生成 - ✅ 使用 Drizzle ORM 进行数据库设计和优化 - ✅ 带有 hooks 的 React 组件架构 - ✅ 专业的赛博朋克 UI/UX 设计系统 - ✅ 云安全监控概念 - ✅ tRPC 类型安全的 API - ✅ 响应式网页设计 - ✅ MySQL schema 设计和迁移 ## 📞 支持 如有问题或疑问,请创建一个 [GitHub issue](https://github.com/karthikk022/cloudguard-sentinel/issues) 或联系维护者。 ## 🎓 学习资源 - [AWS 安全最佳实践](https://aws.amazon.com/security/best-practices/) - [OWASP 云安全](https://owasp.org/www-project-cloud-security/) - [tRPC 文档](https://trpc.io/) - [React 文档](https://react.dev/) - [Tailwind CSS](https://tailwindcss.com/) **最后更新**:2026 年 4 月 30 日 **版本**:1.0.0 **状态**:生产就绪 ✅
标签:AWS, CISA项目, DPI, Drizzle ORM, GNU通用公共许可证, IAM, JSONLines, MITM代理, MVP, Node.js, PB级数据处理, S3, tRPC, 云态势感知, 仪表盘UI, 合规监控, 告警系统, 响应式设计, 安全事件管理, 安全组, 安全运维, 实时仪表盘, 态势感知平台, 漏洞修复, 网络安全, 网络安全培训, 网络空间安全, 自动化攻击, 赛博朋克, 隐私保护, 零信任