antgroup/CloudRec

GitHub: antgroup/CloudRec

CloudRec 是一款开源的多云安全态势管理平台,通过自动化资产发现和 OPA 策略引擎帮助企业持续监控和修复云环境安全风险。

Stars: 175 | Forks: 23

CloudRec

CloudRec 是一个开源的多云安全态势管理 (CSPM) 平台,旨在帮助组织提升其云环境的安全性。CloudRec 提供了开放且可扩展的云资产采集框架和基于 OPA 的规则管理引擎。基于 CloudRec,您可以轻松实现企业云环境下的全面资产采集、实时安全检查和风险事件运维。 # 功能特性 + [🔗丰富的检查规则 ](https://docs.cloudrec.cloud/Introductions/Detectionrules/)除了内置的高危规则外,还提供基于 OPA 的灵活规则配置引擎,并支持多种资产关联分析。 + [🔗多云支持 ](https://docs.cloudrec.cloud/Introductions/Multi-Cloudsupport/):内置支持阿里云、AWS、GCP 等云服务提供商,并可按需扩展私有云;同时提供 Collector 采集框架,可按需扩展支持其他云厂商。 + 用户友好的页面:直观的 UI 界面,方便用户进行资产管理、规则编辑、风险运维,支持多租户 ## 🌟 模块 | 功能模块 | 描述 | | ----------------------- | ------------------------------------------------------------ | | **资源发现** | 覆盖主流公有云平台,自动发现 30+ 云服务和 200+ 资源类型,提供框架级支持,可按需轻松扩展。 | | **风险检测** | 基于企业级实战规则,覆盖网络防护、身份安全、安全防护、数据保护和日志审计等多种场景。 | | **策略引擎** | 基于 OPA 的声明式策略管理,无需硬编码即可动态调整,无需重新部署 | | **修复闭环** | 集成企业微信/钉钉,告警策略可灵活配置 | # 🚀 快速开始 ### 部署 Server ``` git clone https://github.com/antgroup/CloudRec.git cd CloudRec MYSQL_ROOT_PASSWORD=$(openssl rand -base64 16) docker-compose up -d ``` 部署后访问 http://localhost:8080。 ### 部署 Collector 登录并获取 AccessToken,用于 Collector 的认证。 ![accesstoken](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/32352f9940215819.jpg) ``` docker exec -it cloudrec-cloud-rec-1 bash nohup ./collectors --accessToken "${AccessToken}" > logs/task.log 2>&1 < /dev/null & ``` # 🏗 架构 ![arch](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/3b11eaedc6215821.jpg) # 📚 核心概念 ## 📡 采集器 ``` # 采集器名称,若未配置,则使用主机名 AgentName: "Alibaba CloudHuawei Cloud, AWS,Tencent Cloud,GCP,Baidu Cloud Collector" # 服务器 URL,默认使用 http://localhost:8080,可根据实际情况调整 ServerUrl: "http://localhost:8080" # eg:@every 30s、@every 5m、@every 1h # @every 5m 表示每五分钟获取一次账户。如果当前任务已完成,则跳过此任务。 Cron: "@every 5m" # 如果 RunOnlyOnce 设置为 false,程序将立即执行一次,但程序不会退出。它将根据 Cron 周期定期运行。 # 如果 RunOnlyOnce 设置为 true,程序将立即执行一次,然后退出。 RunOnlyOnce: false # 访问令牌,用于验证请求。您可以从服务器获取它 AccessToken: "change your access token" # 部署站点。如果部署站点配置为 'S1',则只能获取该站点的 cloudAccount。如果未配置部署站点,则可以获取所有 cloudAccount。 # 例如:["S1"] # 例如:["S1","I2","TE"] Sites: [ ] # 注意风险错误信息。如果错误信息包含文本,风险将被提交到服务器 AttentionErrorTexts: [ "NoPermission", "NotAuthorized", "NotApplicable", "Forbidden.RAM", "Forbidden", "Throttling.User", "Throttling", "InvalidAccessKeyId.NotFound", "ServiceUnavailable", "Forbidden" ] ``` ## 📜 Rego 策略示例 ``` package ecs_security_groups_misconfig import rego.v1 default risk := false risk if { has_public_address count(security_groups_misconfig) != 0 } public_ip_address := input.Instance.PublicIpAddress.IpAddress has_public_address if { count(public_ip_address) > 0 } security_groups_misconfig contains sg_rule if { sg_rule := input.SecurityGroups[_].Permissions[_] parts := split(sg_rule.SourceCidrIp, "/") size := to_number(parts[1]) size <= 8 sg_rule.Direction == "ingress" sg_rule.Policy == "Accept" } ``` # **📬** 社区 [https://discord.gg/WpWT9Q8BkD](https://discord.gg/WpWT9Q8BkD) # 📜 许可证 本项目采用 Apache-2.0 许可证,全文可见 LICENSE 文档。商业使用受补充条款约束。
标签:CSPM, DevSecOps, TinkerPop, 上游代理, 云环境防护, 云资源配置检测, 动态调试, 图计算, 域名枚举, 域名枚举, 多云安全管理, 安全合规, 安全态势管理, 开源安全工具, 日志审计, 结构化提示词, 网络代理, 请求拦截, 逆向工程平台, 配置错误检测, 风险识别