K8s系列六:HarborGuard 容器安全扫描平台部署与实战

🗺️ 系列目录:
  1. K8s系列一:Ubuntu 22.04 从零搭建集群(Flannel + Containerd) 
  2. K8s系列二:安装 Dashboard – 原生 Web 控制台配置 
  3. K8s系列三:安装 Rancher – 企业级多集群管理平台 
  4. K8s系列四:安装 Kuboard – 国产可视化运维工具
  5. K8s系列五:Elkeid入侵检测系统 容器 K8s 安全部署与检测
  6. K8s系列六:HarborGuard 容器安全扫描平台部署与实战 👈 当前篇章

一、HarborGuard 简介
1.1 项目介绍

HarborGuard 是一个集成多种主流安全工具的容器安全扫描平台,提供统一的 Web 界面,用于:

  • 镜像漏洞扫描
  • SBOM清单生成
  • 镜像安全基线检查

项目地址:https://github.com/HarborGuard/HarborGuard

1.2 核心能力

HarborGuard 本质上是一个“安全工具聚合平台”,集成了多个业内主流工具:

工具 功能
Trivy 漏洞扫描(最常用)
Grype 补充漏洞扫描
Syft SBOM 生成
Dockle Docker 安全基线检查
OSV Scanner 开源漏洞扫描
Dive 镜像层分析
1.3 优势总结
  • 一站式集成 Trivy、Grype、Syft、Dockle、OSV Scanner、Dive 6 大安全工具
  • 自动漏洞分级(Critical/High/Medium/Low),风险一目了然
  • 交互式散点图、历史对比、实时扫描进度可视化
  • 支持 SQLite / PostgreSQL 双数据库,轻量 / 企业场景通用
  • 环境变量一键配置,支持 RESTful API、批量报告导出
  • 现代技术栈:React 19 + Next.js 15 + TypeScript,易二次开发
二、实验环境
  • 操作系统:Ubuntu 22.04 LTS(Jammy)
  • 部署方式:Docker Compose(一键启动,自带 PostgreSQL)
  • 访问端口:3000
  • 数据持久化:/data/harborguard

  • 三、部署 HarborGuard
    3.1 拉取镜像
    docker pull registry.cn-hangzhou.aliyuncs.com/jeson/harborguard:latest
    3.2 创建目录
    mkdir -p /data/harborguard/{data,postgres-data}
    cd /data/harborguard
    chmod -R 755 /data/harborguard
    3.3 创建 docker-compose.yml
    cat > docker-compose.yml << 'EOF'
    services:
      postgres:
        image: postgres:15
        container_name: harborguard-db
        restart: unless-stopped
        environment:
          POSTGRES_USER: harborguard
          POSTGRES_PASSWORD: harborguard
          POSTGRES_DB: harborguard
        volumes:
          - ./postgres-data:/var/lib/postgresql/data
        healthcheck:
          test: ["CMD-SHELL", "pg_isready -U harborguard"]
          interval: 5s
          timeout: 5s
          retries: 5
    
      harborguard:
        image: registry.cn-hangzhou.aliyuncs.com/jeson/harborguard:latest
        container_name: harborguard
        restart: unless-stopped
        ports:
          - "8080:3000"
        depends_on:
          postgres:
            condition: service_healthy
        environment:
          DATABASE_URL: postgresql://harborguard:harborguard@postgres:5432/harborguard
          NODE_ENV: production
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
          - ./data:/data
    EOF
    3.4 启动服务
    docker compose up -d
    
    docker ps
    docker logs -f harborguard

    四、访问 HarborGuard
    浏览器访问:
    http://你的服务器IP:8080
    五、基本使用教程
    5.1 开始扫描本地镜像
    1. 左侧菜单点击 New Scan
    2. 选择 Local(本地 Docker 镜像)
    3. 选择要扫描的镜像 → 点击 Start Scan
    5.2 查看扫描结果
    • 总镜像数、风险评分、漏洞统计(Critical/High/Medium/Low)
    • 镜像漏洞分析散点图
    • 可按级别筛选、查看详情、导出报告

    六、总结

      HarborGuard 是一个非常实用的开源项目,它将多种原本分散的容器安全工具整合到统一的平台中,大幅降低了容器安全扫描的使用门槛。通过本次实践,我主要完成了以下几个目标:

    6.1 快速部署落地

      基于 Docker Compose,我在测试环境中快速完成了 HarborGuard 及其 PostgreSQL 依赖的部署。整体过程简单清晰,对现有环境无侵入,适合作为轻量级安全平台进行引入。

    6.2  安全能力直观化

      通过 HarborGuard 提供的 Web 界面,我可以方便地对本地 Docker 镜像发起扫描,并直观查看漏洞分级、依赖关系(SBOM)以及安全基线检查结果,相比单独使用命令行工具(如 Trivy),体验有明显提升。

    6.3  补齐容器安全链路

      结合前面的 K8s 系列实践,目前整体已经形成了一条较为完整的运维与安全路径:

      集群搭建 → 可视化管理 → 容器安全扫描

      在实际生产环境中,可以进一步将 HarborGuard 集成到 CI/CD 流水线中,在镜像构建阶段自动进行安全扫描,从源头控制高危漏洞进入集群,逐步实现“安全左移”。


    七、后续优化方向

    基于当前实践,后续我计划在以下几个方向继续深入:

    7.1 集成 CI/CD 流水线

    将 HarborGuard 的扫描能力接入现有的 CI/CD 体系,例如:

    • GitLab CI
    • Jenkins

    实现镜像构建 → 自动扫描 → 不合规阻断的流程。

    7.2 建立安全告警机制

    结合监控体系(如 Prometheus + Alertmanager),对高危漏洞实现自动告警,例如:

    • 邮件通知
    • 企业微信 / 飞书告警

    提升安全响应效率。

    7.3 扩展扫描场景

    除了本地镜像外,后续可以进一步探索:

    • 扫描 Docker Hub 公共镜像
    • 扫描私有镜像仓库(如 Harbor)
    • 结合镜像准入策略(Admission Controller)