antgroup/CloudRec
GitHub: antgroup/CloudRec
CloudRec 是一款开源的多云安全态势管理平台,通过自动化资产发现和 OPA 策略引擎帮助企业持续监控和修复云环境安全风险。
Stars: 175 | Forks: 23
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 的认证。

```
docker exec -it cloudrec-cloud-rec-1 bash
nohup ./collectors --accessToken "${AccessToken}" > logs/task.log 2>&1 < /dev/null &
```
# 🏗 架构

# 📚 核心概念
## 📡 采集器
```
# 采集器名称,若未配置,则使用主机名
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, 上游代理, 云环境防护, 云资源配置检测, 动态调试, 图计算, 域名枚举, 域名枚举, 多云安全管理, 安全合规, 安全态势管理, 开源安全工具, 日志审计, 结构化提示词, 网络代理, 请求拦截, 逆向工程平台, 配置错误检测, 风险识别