harbor镜像审计依赖内置审计日志与漏洞扫描集成,需完成启用、配置、触发、查看四环节;默认开启基础审计日志并支持trivy自动扫描,提供web/api查询及周期性检查机制。

Harbor 的镜像审计能力不是靠手动翻日志实现的,而是依托其内置的审计日志系统与漏洞扫描集成机制,配合策略配置和定期检查形成闭环。实战中关键在于启用、配置、触发、查看四个环节,缺一不可。
开启并配置审计日志功能
Harbor 默认开启基础审计日志(记录用户登录、项目创建、镜像推送/拉取等操作),但需确认配置生效:
- 检查
/etc/harbor/harbor.yml中audit_log段是否启用:audit_log:<br> location: /var/log/harbor/audit.log<br> max_size: 100M<br> max_backup: 10
- 日志默认按天轮转,保留最多10个备份文件;路径需确保 Harbor 容器有写权限
- 重启服务使配置生效:
sudo docker-compose down && sudo docker-compose up -d
启用镜像漏洞扫描并关联审计行为
审计不只是“谁干了什么”,更要回答“推上来的镜像是不是安全的”。Harbor 通过集成 Trivy(推荐)或 Clair 实现自动扫描:
使用 Python 脚本下载 Docker 镜像并打包为 tar 文件。用户说“下载镜像”“拉取镜像”“pull xxx”“帮我下载 nginx 镜像”等时触发。支持 SOCKS5 代理直连(推荐)和国内镜像站加速两种模式。
- 安装时启用扫描器:离线包默认含 Trivy;若自定义部署,需在
harbor.yml中配置:trivy:<br> skip_update: false<br> insecure: false
- 为项目开启自动扫描:进入 Harbor Web 界面 → 项目 → “配置” → 勾选“每次推送镜像时自动扫描”
- 扫描完成后,会在镜像详情页显示 CVE 列表、严重等级(CRITICAL/HIGH/MEDIUM)及修复建议;这些结果本身也被记入审计日志(如
scan completed for image xxx)
查询与分析审计记录
审计日志不只存在文件里,Harbor 还提供 API 和 Web 界面两种方式快速检索:
-
Web 界面查询:顶部导航栏 → “系统管理” → “审计日志”,可按时间范围、操作类型(push/pull/scan/delete)、用户名、资源路径(如
project/test/repositories/nginx)筛选 -
API 批量导出(适合合规报告):
curl -u "admin:Harbor12345" "https://your-harbor/api/v2.0/systemlogs?from=1712793600&to=1712880000&operation=push"
其中时间戳为 Unix 秒级,operation支持push、pull、scan、delete等 - 典型审计场景示例:
• 查找某开发人员近7天所有镜像推送行为 → 筛选user=admin+operation=push
• 确认高危镜像是否被拉取过 → 搜索日志中含CVE-2023-XXXX和pull的条目
建立周期性审计检查机制
单次查询是快照,持续审计才形成管控力。建议落地以下三项动作:
- 每周生成《镜像安全简报》:统计各项目扫描失败率、未修复 CRITICAL 漏洞数量、TOP5 高频拉取镜像
- 设置告警阈值:例如“单个项目连续3次推送未扫描镜像”或“同一镜像被 pull 超过100次但未更新”,可通过脚本调用 API+邮件通知
- 将审计日志接入 SIEM 系统(如 ELK/Splunk):统一归集、关联分析,满足等保2.0中“安全审计”条款要求










