
pipelinecomponents/checkovPipeline Components: Checkov 是一个预安装 Checkov 工具的 Docker 镜像,旨在为 GitLab CI/CD 等自动化环境提供便捷的基础设施即代码(IaC)安全与合规性扫描能力。Checkov 工具安装于容器内 /app/ 路径,支持用户在使用前根据需求自定义配置。
在 GitLab CI 流水线中,可直接引用该镜像作为扫描阶段的执行环境。以下为基础配置示例:
yamlcheckov: stage: linting # 建议放在代码检查阶段 image: registry.gitlab.com/pipeline-components/checkov:latest # 或指定具体版本 script: - checkov -d . # 扫描当前目录下的所有 IaC 文件
参数说明:
stage: linting:将扫描任务绑定到流水线的 "linting" 阶段(需确保该阶段已定义)。image:指定镜像地址,可通过 :latest 使用最新版,或通过 :x.y.z 指定具体语义化版本。script:执行 Checkov 扫描命令,-d . 表示扫描当前工作目录下的所有文件。通过 docker run 命令可在本地环境快速启动扫描,需将待扫描的 IaC 文件目录挂载到容器内:
bash# 扫描当前目录下的 IaC 文件 docker run --rm -v $(pwd):/app pipelinecomponents/checkov:latest checkov -d /app # 扫描指定目录并输出 JSON 格式报告 docker run --rm -v $(pwd):/app pipelinecomponents/checkov:latest checkov -d /app/src --output json
参数说明:
--rm:扫描完成后自动删除容器。-v $(pwd):/app:将本地当前目录挂载到容器内 /app 路径(Checkov 工作目录)。checkov -d /app:执行 Checkov 扫描,-d /app 指定扫描容器内 /app 目录(即本地挂载的目录)。如需通过 Docker Compose 管理扫描任务,可参考以下配置(适用于固定目录的定期扫描):
yamlversion: '3' services: checkov-scan: image: pipelinecomponents/checkov:latest volumes: - ./iac-files:/app # 本地 IaC 文件目录挂载到容器 /app command: checkov -d /app --config-file /app/.checkov.yaml # 使用自定义配置文件
Checkov 支持通过命令行参数自定义扫描行为,常用参数如下:
| 参数 | 说明 | 示例 |
|---|---|---|
-d <directory> | 指定扫描目录 | checkov -d ./terraform |
--config-file | 指定配置文件路径(定义跳过规则等) | --config-file .checkov.yaml |
--output <format> | 指定输出格式(json、junitxml、sarif 等) | --output junitxml |
--soft-fail | 扫描发现问题时不返回非零退出码(不阻断流水线) | --soft-fail |
--skip-check <id> | 跳过指定规则(如 CKV_AWS_21) | --skip-check CKV_AWS_21 |
本项目采用 语义化版本控制(Semantic Versioning) 管理镜像版本,版本号格式为 MAJOR.MINOR.PATCH,确保版本变更的可预测性。
本镜像项目基于 MIT 许可证 开源,由 Robbert Müller 维护。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务