79 lines
2.9 KiB
Markdown
79 lines
2.9 KiB
Markdown
# 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 快速定位有安全漏洞的组件
|