# 06-制品管理规范 ## 1. 制品全生命周期 ``` 开发构建 → 安全扫描 → 存储管理 → 测试 → 部署 ``` ### 总体原则 - 源代码及需求来源可追溯 - 制品安全质量可管控 - 存储管理安全可靠 - 制品唯一可信(部署 = 测试通过版本) - 操作及流转日志可审计 ## 2. 开发构建 - **【强制 C1】** 开发构建须连接统一制品库,第三方依赖从统一制品库代理下载 - **【强制 C1】** 构建制品必须上传到统一制品库 - **【强制 C3】** 制品须收集构建信息(构建时间、人员、工具、第三方依赖) - **【强制 C3】** 制品须通过元数据关联代码仓库、分支、commit id - **【强制 C4】** 制品须进一步关联对应需求或缺陷 ## 3. 安全扫描 - **【强制 C3】** 制品关联源代码质量及安全扫描信息 - **【强制 C4】** 根据扫描结果确定制品能否进入测试 - **【强制 C2】** 制品关联第三方组件安全漏洞扫描 - **【强制 C2】** 存在高中危漏洞且可修复时必须在开发阶段修复 - **【强制 C3】** 制品关联第三方组件许可协议扫描 ## 4. 存储管理 ### 仓库类型选择 | 场景 | 仓库类型 | |------|----------| | 云原生应用 | docker 仓库(镜像)+ helm 仓库(配置) | | 直接部署安装 | generic 仓库 | | 项目构建依赖 | 对应类型:maven/npm/go/pypi | ### 仓库命名格式 ``` 项目名[-子项目名]-生命周期-制品类型-仓库类型 ``` 示例:`myproject-snapshot-maven-local` 生命周期:snapshot(开发快照)/ release(生产发布) ### 权限与审计 - **【强制 C1】** 设置严格的访问权限(管理员、读写、只读三类) - **【强制 C2】** 上传/下载/修改/删除必须留痕,日志保存 ≥ 6 个月 ## 5. 版本管理 - **【强制 C1】** 制品版本号与源代码版本号保持一致 - **【强制 C1】** 开发测试阶段使用快照版本(SNAPSHOT) - **【强制 C1】** 快照版本测试完成后发布正式版本做回归测试 - **【强制】** 正式版本号不允许覆盖升级 ### 制品晋级 - **【强制 C3】** 测试和安全检查通过后从快照仓库自动晋级到发布仓库 - **【强制 C4】** 晋级到生产仓库前可增加人工审核 ### 清理 - **【强制 C1】** 快照仓库最多保留 10 个版本 - 生产发布仓库已部署版本建议永久保存 ## 6. 第三方组件管理 - **【强制 C1】** 统一制品库作为第三方组件依赖源 - **【强制 C2】** 通过 SCA 工具对第三方组件进行安全扫描 - **【强制 C4】** 制定第三方组件使用规范:黑名单拦截、基线管控、新增组件审批 ## 7. 制品溯源 - **【强制 C3】** 制品元数据包括:构建信息、关联源码、安全扫描结果、测试结果 - **【推荐 C0】** 收集制品软件物料清单(SBOM) - **【推荐 C0】** 通过 SBOM 快速定位有安全漏洞的组件