1. 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | configure-container-scan-harness-harness-skills |
| 作者/维护者 | Harness(harness 官方组织) |
| 来源链接 | https://github.com/harness/harness-skills/tree/main/skills/configure-container-scan |
| 许可证 | Apache-2.0(GitHub API 获取,仓库级;SKILL.md 自身也声明 license: Apache-2.0) |
| GitHub Stars / Forks | 合集仓库整体 75 / 15(GitHub API 获取;该数字属整个 harness-skills 合集,不代表本技能自身热度,取证方式见第 7 章) |
| 最新版本 | SKILL.md 声明 version 1.0.0;子目录提交于 2026-05-27(GitHub API 获取) |
| 安装方式 | 克隆仓库 + 配置 Harness MCP v2 Server(详见第 10 章) |
2. 功能介绍与亮点
configure-container-scan 用自然语言向已有的 Harness 流水线插入一个容器镜像扫描步骤,覆盖 Harness 原生 SCA 扫描器与多款第三方扫描器,一次对话即可完成从选型到写入流水线 YAML 的全过程。
- 扫描器选择面广:Harness SCA(默认,零配置)、Aqua Trivy、Grype 两款开源扫描器,以及 Snyk、Prisma Cloud、Anchore Enterprise、Black Duck、Wiz 五款商业扫描器,逐一给出各自的凭据字段要求
- 镜像来源全覆盖:Harness 内部镜像仓库、Docker Hub/ECR/GCR 等第三方仓库、以及同一流水线阶段内本地构建的镜像三种来源均支持
- 插入位置灵活:可插入既有 CI 阶段、既有 SecurityTests 阶段,或在两者都不存在时自动新建一个含委托节点配置的 SecurityTests 阶段
- 凭据处理规范:商业扫描器所需的 API Token 一律通过 Harness 平台自身的
<+secrets.getValue(...)>密钥引用语法接入,技能本身不接触、不落盘明文凭据;密钥不存在时会提示先用/create-secret创建,而不是继续硬编码占位值 - 故障排查覆盖 6 类场景:从流水线找不到、扫描步骤权限报错、镜像拉取失败到扫描器鉴权失败、结果页无数据、YAML 校验报错,逐项给出诊断路径
3. 适用场景
所属分类:安全与合规
适合已在使用 Harness CI/CD、且尚未在流水线中配置容器镜像漏洞扫描的工程与安全团队:需要在部署前对 Docker 镜像做漏洞扫描、且希望在 Harness 原生扫描器与 Trivy、Snyk 等主流第三方扫描器之间按需选型时使用,尤其适合不熟悉 Harness STO 扫描步骤 YAML 语法、想用自然语言一次性把扫描步骤接入既有流水线的工程师。
4. 跨 Agent 兼容性
- Claude Code:原生支持——仓库根目录 CLAUDE.md 导入 AGENTS.md,skills 自动发现,README 给出具体安装步骤
- Codex:官方支持——README 明确列出 OpenAI Codex 的设置步骤(读取根目录 AGENTS.md 作为系统指令)
- OpenClaw:未验证——抓取材料未点名
- Hermes Agent:未验证——抓取材料未点名
5. 推荐理由
把“给流水线接入容器镜像扫描”这件事从查文档、手写 YAML 变成一次自然语言对话:向导逐步确认插入位置、扫描器类型与镜像来源,八款扫描器(含两款开源、五款商业)覆盖面在同类工具里少见,商业扫描器的凭据接入方式统一走 Harness 平台自有密钥引用,不经手明文,适合团队已用 Harness 但还没补上容器扫描这一环的场景。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 7 | Harness 官方出品;本子技能未见官方技能文档站专章收录,自身 1 次提交,仓库整体 75 stars;未见独立于官方渠道的第三方讨论 |
| 可用性 | 8 | 向导步骤清晰、扫描器与镜像来源的字段说明详尽、故障排查覆盖 6 类场景;需要预先配置好 Harness 账号与 MCP v2 Server,商业扫描器还需另外准备好凭据 |
| 安全性 | 9 | 见下方检查清单 |
| 综合 | 8.0 | 三项均值 |
安全检查清单:
| 检查项 | 结果 |
|---|---|
| ① Shell 命令与权限范围 | 不执行任意 shell 命令,全部通过 harness_get/harness_update 等 MCP 工具调用完成,操作对象限定于用户指定的既有流水线 |
| ② 联网外发 | 仅通过用户自行配置的 Harness MCP v2 Server 与用户自己的 Harness 账号通信,未见其他外发目标 |
| ③ 凭据存储 | 商业扫描器凭据一律通过 Harness 平台的 <+secrets.getValue(...)> 密钥引用接入,技能正文不要求粘贴或落盘明文凭据;密钥不存在时引导用户先行创建 |
| ④ 可疑指令 | 全文未发现提示注入或隐蔽指令;“仅作用于既有流水线,不代为新建独立流水线”等规则是明确的防越权护栏 |
| ⑤ 作者信誉 | Harness 为知名商业 CI/CD 平台厂商(NASDAQ: FROG),harness 为其官方 GitHub 组织 |
| ⑥ License | Apache-2.0,明确(仓库级) |
| ⑦ 维护时间 | 子目录自 2026-05-27 单次提交后无更新,仓库整体最近一次提交为 2026-07-07,非弃置项目但近期改动放缓 |
7. 跟同类 Skills 相比的优势
| 方案 | 定位 | 差异 |
|---|---|---|
| configure-container-scan(本技能) | 向既有 Harness 流水线插入容器镜像扫描步骤,可在 8 款扫描器间选型 | 扫描对象是容器镜像,聚焦“把扫描接入流水线”这一配置动作 |
| scan-secrets(GitGuardian 官方出品) | 检测代码仓库中的硬编码密钥与凭据泄漏 | 扫描对象是源码中的密钥而非容器镜像,与本技能可在同一安全流水线中互补而非替代 |
| create-sbom(同仓库姊妹技能) | 向流水线插入 SBOM 生成步骤 | 产出软件物料清单而非漏洞扫描结果,是供应链安全的另一环节 |
| enforce-sbom(同仓库姊妹技能) | 对已生成的 SBOM 执行策略门禁,可为 CI-only 流水线自动补 CD 部署阶段 | 校验对象是 SBOM 是否合规,前提依赖 SBOM 已存在,不做镜像漏洞扫描 |
8. 用户评价
该技能所在仓库目前仅有 Harness 内部工程师的提交与合并记录,第三方平台尚无独立的具名用户评价。
9. 其他补充
同仓库还有 create-sbom、sign-artifact、verify-sign、enforce-sbom、manage-supply-chain 等姊妹技能,分别覆盖 SBOM 生成、制品签名验证与供应链整体规划,可与本技能搭配组成完整的流水线安全防线。
10. 安装使用方式
git clone https://github.com/harness/harness-skills.git
cd harness-skills
claude
在 ~/.claude/settings.json 中加入 Harness MCP v2 Server 配置:
{
"mcpServers": {
"harness-mcp-v2": {
"command": "npx",
"args": ["-y", "harness-mcp-v2"],
"env": { "HARNESS_API_KEY": "<your-api-key>" }
}
}
}
安装后无需重启;在对话中输入 /configure-container-scan 并描述需求(如“给 backend-api 流水线加一个 Trivy 容器扫描步骤,镜像在 ECR 上”)即可触发。
11. 注意事项
- 必须已有 Harness 账号并配置好 Harness MCP v2 Server(含 API Key),无法离线或脱离 Harness 平台使用
- 只能作用于已存在的流水线,不会代为创建新流水线
- 选用商业扫描器(Snyk、Prisma Cloud、Anchore Enterprise、Black Duck、Wiz)前需先在 Harness 平台准备好对应的密钥
- 文档示例区块中仍保留旧斜杠命令名
/create-container-scan,与当前技能名configure-container-scan不一致,属文档残留,使用时以 SKILL.md 声明的技能名为准 - OpenClaw、Hermes Agent 的兼容性未见官方声明,跨 agent 使用前建议自行验证