1. 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | enforce-sbom-harness-harness-skills |
| 作者/维护者 | Harness(harness 官方组织) |
| 来源链接 | https://github.com/harness/harness-skills/tree/main/skills/enforce-sbom |
| 许可证 | Apache-2.0(GitHub API 获取,仓库级;SKILL.md 自身也声明 license: Apache-2.0) |
| GitHub Stars / Forks | 合集仓库整体 74 / 14(GitHub API 获取;该数字属整个 harness-skills 合集,不代表本技能自身热度,取证方式见第 7 章) |
| 最新版本 | SKILL.md 声明 version 1.0.0;子目录提交于 2026-06-03(GitHub API 获取) |
| 安装方式 | 克隆仓库 + 配置 Harness MCP v2 Server(详见第 10 章) |
2. 功能介绍与亮点
enforce-sbom 用自然语言向已有的 Harness 流水线插入一个 SBOM Policy Enforcement(SscaEnforcement / CdSscaEnforcement)步骤,验证 SBOM 认证(attestation)并对照 OPA SBOM 策略集评估,不合规组件会在该步骤被拦截。
- CI-only 流水线也能加 CD 门禁:若目标流水线还没有 Deploy 阶段,本技能会走 Phase 3b 自动追加一个含容器化 step group 的 Deployment 阶段,再把
CdSscaEnforcement放在部署步骤之前——是同组姊妹技能里唯一具备这个能力的一个,用户不必先手动搭好 CD 阶段 - 前提依赖如实告知、不代为捏造:明确要求 SBOM 已存在(通常来自 create-sbom)与策略集已存在(来自 create-policy),缺一样都直接引导用户先跑对应技能,而不是编造占位数据继续执行
- 来源覆盖广:容器镜像仓库(Docker、ECR、GCR、GAR、ACR)与代码仓库(Git)均支持
- 职责边界清晰:文档明确写“更新流水线后不得执行流水线、不得跑 harness_diagnose”,把“配置策略门禁”与“运行/诊断流水线”两件事分开,交给
/run-pipeline、/debug-pipeline处理 - 故障排查覆盖 6 类具体场景:从“找不到 SBOM/Orchestration 步骤”到“CD 步骤校验报错”逐条给出诊断路径
3. 适用场景
所属分类:安全与合规
适合已经在用 Harness CI/CD、且已经用 create-sbom 生成过 SBOM 的工程或安全团队:当组织要求“不合规的开源组件必须在部署前被拦截”,需要在流水线里加一道策略门禁步骤时使用,尤其适合目标流水线目前还只有 CI 阶段、需要顺带补上 CD 门禁的场景。
4. 跨 Agent 兼容性
- Claude Code:原生支持——仓库根目录 CLAUDE.md 导入 AGENTS.md,skills 自动发现,README 给出具体安装步骤
- Codex:官方支持——README 明确列出 OpenAI Codex 的设置步骤(读取根目录 AGENTS.md 作为系统指令)
- OpenClaw:未验证——抓取材料未点名
- Hermes Agent:未验证——抓取材料未点名
5. 推荐理由
把“SBOM 生成之后如何强制执行策略”这一步自动化:向导逐项确认放置位置、来源与策略集,同组同类技能里只有它能在 CI-only 流水线上自动补齐所需的 CD 部署阶段,省去用户手工搭建的步骤,适合还不熟悉 Harness SSCA YAML 语法、但需要落地“部署前拦截不合规组件”这条合规要求的工程师。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 7 | Harness 官方出品,但本子技能自身仅 1 次提交,仓库整体 74 stars 规模有限,未见独立于官方渠道的第三方讨论 |
| 可用性 | 7 | 向导步骤清晰、故障排查详尽,但前提较多(需已有 SBOM、已有策略集、配置好的 MCP v2 Server),CI-only 流水线走 CD 门禁时还会追加一个 Deploy 阶段,配置复杂度略高于同组仅插入单一步骤的姊妹技能 |
| 安全性 | 9 | 见下方检查清单 |
| 综合 | 7.7 | 三项均值 |
安全检查清单:
| 检查项 | 结果 |
|---|---|
| ① Shell 命令与权限范围 | 不执行任意 shell 命令,全部通过 harness_get/harness_update/harness_list 等 MCP 工具调用完成;正文明确“更新流水线后不得执行流水线、不得跑 harness_diagnose” |
| ② 联网外发 | 仅通过用户自行配置的 Harness MCP v2 Server 与用户自己的 Harness 账号通信,未见其他外发目标 |
| ③ 凭据存储 | 依赖 Harness MCP Server 自身的 API Key 配置(环境变量),技能正文不要求粘贴或落盘明文凭据 |
| ④ 可疑指令 | 全文未发现提示注入或隐蔽指令;多条规则(如“不得因用户选 CD 就拒绝或强制改回 CI”“不得修改无关步骤/变量/失败策略”)是明确的防越权护栏 |
| ⑤ 作者信誉 | Harness 为知名商业 CI/CD 平台厂商(NASDAQ: FROG),harness 为其官方 GitHub 组织 |
| ⑥ License | Apache-2.0,明确(仓库级) |
| ⑦ 维护时间 | 子目录提交于 2026-06-03,仓库整体最近一次提交为 2026-07-07,非弃置项目 |
7. 跟同类 Skills 相比的优势
| 方案 | 定位 | 差异 |
|---|---|---|
| enforce-sbom(本技能) | 把 SBOM 策略门禁步骤插入既有流水线,可为 CI-only 流水线自动补 CD 部署阶段 | 只负责“执行策略”这一动作,需要 SBOM 与策略集已存在,不负责生成两者 |
| create-sbom(同仓库姊妹技能) | 向流水线插入 SBOM 生成步骤 | 负责“生成”而非“执行策略”,是 enforce-sbom 的前置步骤 |
| verify-sign(同仓库姊妹技能) | 验证已签名制品的 Cosign 签名 | 校验对象是签名而非 SBOM 组件合规性,二者可在同一流水线并行使用 |
| manage-supply-chain(同仓库姊妹技能) | 一站式配置 SBOM/签名/SLSA/OPA 策略并给出合规仪表盘 | 覆盖整条供应链安全链路的初始规划,不做单个策略门禁步骤的精细放置 |
| supply-chain-risk-auditor(Trail of Bits 出品) | 引入第三方依赖前做静态尽调,标记维护者单一、久未更新、历史 CVE 等风险 | 分析对象是依赖库本身、发生在“要不要引入”阶段,不做已构建制品的流水线内策略拦截 |
8. 用户评价
该技能所在仓库目前仅有 Harness 内部工程师的提交与合并记录,第三方平台尚无独立的具名用户评价。
9. 其他补充
同仓库还有 create-sbom、sign-artifact、verify-sign、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>" }
}
}
}
安装后无需重启;在对话中输入 /enforce-sbom 并描述需求(如“给 backend-api 流水线的 SBOM 生成步骤后面加上策略执行,用 sbom_prod_rules 策略集”)即可触发。
11. 注意事项
- 必须已有 Harness 账号并配置好 Harness MCP v2 Server(含 API Key),无法离线或脱离 Harness 平台使用
- 只能作用于已存在的流水线,且要求 SBOM 与策略集均已存在(分别由 create-sbom、create-policy 生成),不会代为创建
- CD 阶段门禁要求容器化 step group,若流水线原本没有 Deploy 阶段,本技能会追加一个,使用前建议了解这一行为再确认
- OpenClaw / Hermes Agent 的兼容性未见官方声明,跨 agent 使用前建议自行验证