安全扫描Operator,支持CIS、 STIG规则扫描
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 17 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 |
Compliance Operator - Kubernetes 集群合规扫描工具
Compliance Operator 是一个基于 Kubernetes Operator 模式的自动化合规扫描工具,支持使用 CIS Benchmark 和 DISA STIG 标准对 Kubernetes 集群进行安全合规性扫描。
📋 目录
🎯 功能特性
核心能力
-
双引擎支持
- 🔧 kube-bench: CIS Kubernetes Benchmark 扫描
- 🛡️ OpenSCAP: DISA STIG 合规扫描
-
灵活的扫描目标
- 控制平面节点(control-plane)
- 工作节点(worker)
- 所有节点(all)
-
自动化调度
- 支持 Cron 表达式定时扫描
- 可配置扫描超时时间
- 历史记录自动管理
-
报告生成
- HTML 格式可视化报告
- JSON 格式数据报告
- 节点级别详细报告
🏗️ 架构设计
┌─────────────────────────────────────────────────────────────┐
│ ComplianceScan CRD │
│ (用户定义的扫描配置:扫描器类型、目标节点、超时时间等) │
└────────────────────┬────────────────────────────────────────┘
│
│
┌────────────────────▼────────────────────────────────────────┐
│ ComplianceScanReconciler │
│ (协调器:管理扫描生命周期,创建 Job,收集结果) │
└────────────────────┬────────────────────────────────────────┘
│
┌────────────┼────────────┐
│ │ │
│ │ │
┌────▼─────┐ ┌────▼─────┐ ┌───▼──────┐
│ Job #1 │ │ Job #2 │ │ Job #3 │ (每个节点一个 Job)
│ Node-1 │ │ Node-2 │ │ Node-3 │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
│ │ │
│ │ │
┌────▼────────────▼────────────▼──────────────────────────┐
│ ResultCollector │
│ (收集 Pod 日志,解析扫描结果) │
└────────────────────┬────────────────────────────────────┘
│
│
┌────────────────────▼────────────────────────────────────┐
│ ComplianceScanResult CRD (聚合摘要) │
│ + ComplianceScanNodeResult CRD (每节点详细结果) │
└────────────────────┬────────────────────────────────────┘
│
│
┌────────────────────▼────────────────────────────────────┐
│ Report Generator │
│ (生成 HTML/JSON 报告) │
└─────────────────────────────────────────────────────────┘
扫描生命周期
Pending → Launching → Running → Collecting → Done
│ │ │ │ │
验证配置 创建Job 执行扫描 收集结果 完成
│ │
└──→ Ignored(单例保护,同类型扫描已在运行)
└──────────────────────────────┘──→ Failed(不可恢复错误)
🚀 快速开始
前提条件
- Kubernetes 集群 v1.19+
- Helm v3.2.0+(如果使用 Helm 安装)
- kubectl 配置好集群访问权限
5 分钟快速体验
1. 安装 Compliance Operator
# 使用 Helm 安装
helm install compliance-operator ./charts/compliance-operator \
--namespace compliance-operator-system \
--create-namespace
2. 创建第一个扫描
# 创建 CIS Benchmark 扫描
cat <<EOF | kubectl apply -f -
apiVersion: compliance.openfuyao.cn/v1alpha1
kind: ComplianceScan
metadata:
name: my-first-scan
spec:
scanner: kube-bench
scanType: all
benchmark: cis-1.12
timeout: 30m
maxHistory: 5
EOF
3. 查看扫描状态
# 实时监控扫描进度
kubectl get compliancescans -w
# 查看扫描结果
kubectl get compliancescanresults
4. 生成报告
# 生成 HTML 报告
kubectl exec -n compliance-operator-system deploy/compliance-operator -- \
/compliance-operator report my-first-scan --format html > report.html
📖 使用指南
🛠️ 开发指南
🤝 贡献指南
欢迎贡献代码、报告问题或提出改进建议!
贡献流程
- Fork 项目
- 创建特性分支(
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
报告问题
请在 Issues 提交问题,包含:
- 问题描述
- 复现步骤
- 期望行为
- 实际行为
- 环境信息(Kubernetes 版本、Operator 版本等)
📞 联系方式
- GitCode: https://gitcode.com/openFuyao/compliance-operator
- Issues: https://gitcode.com/openFuyao/compliance-operator/issues
- Discussions: https://gitcode.com/openFuyao/compliance-operator/discussions
🌟 致谢
感谢以下开源项目的支持:
- kubebuilder - Operator 开发框架
- controller-runtime - 控制器运行时
- kube-bench - CIS Benchmark 扫描工具
- OpenSCAP - STIG 合规扫描工具
- Helm - Kubernetes 包管理器
如果这个项目对您有帮助,请给我们一个Star ⭐!