compliance-operator:基于 Kubernetes Operator 的安全扫描项目

安全扫描Operator,支持CIS、 STIG规则扫描

分支1Tags0
文件最后提交记录最后更新时间
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
17 天前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前

Compliance Operator - Kubernetes 集群合规扫描工具

License Go Version Kubernetes Helm

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

📖 使用指南

请参考:Compliance Operator 用户指南

🛠️ 开发指南

请参考:Compliance Operator 开发者指南

🤝 贡献指南

欢迎贡献代码、报告问题或提出改进建议!

贡献流程

  1. Fork 项目
  2. 创建特性分支(git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

报告问题

请在 Issues 提交问题,包含:

  • 问题描述
  • 复现步骤
  • 期望行为
  • 实际行为
  • 环境信息(Kubernetes 版本、Operator 版本等)

📞 联系方式

🌟 致谢

感谢以下开源项目的支持:


如果这个项目对您有帮助,请给我们一个Star ⭐!

项目介绍

安全扫描Operator,支持CIS、 STIG规则扫描

定制我的领域