不可变身份
SHA-256 摘要确保升级的工件与扫描和批准的工件字节相同。
摘要优先版本控制
发布是在创建时解决的OCI开放容器计划 — 容器镜像格式和注册中心的行业标准 摘要捆绑。标签是人类可读的别名;摘要是加密真理。
这对您的业务意味着什么
保证测试内容与部署内容完全一致——逐字节对应。不可变内容哈希消除标签漂移,为审计员提供防篡改的部署验证。
可变标签会造成歧义。同一个标签可以随着时间推移指向不同的内容。Digest-first基于不可变内容哈希(SHA-256摘要)而非可变标签的发布标识——确保逐字节一致的部署版本控制消除了这种不确定性。
SHA-256 摘要确保升级的工件与扫描和批准的工件字节相同。
对工件的任何修改都会更改其摘要。拉取时间不匹配 = 部署失败。篡改是不可能隐藏的。
通过链接扫描、批准和部署的加密证明,准确了解哪个工件部署在何处、何时以及为何。
回滚返回到精确的已知良好摘要,而不是“无论最新指向现在”。保证相同的字节。
Stella 中的版本捆绑了多个组件,每个组件均由其 OCI开放容器计划 — 容器镜像格式和注册中心的行业标准 摘要标识。该版本本身具有便于人类阅读的语义版本。
示例版本捆绑
Release: myapp-v2.3.1
组件:
api: sha256:abc123...
worker: sha256:def456...
frontend: sha256:789abc...
从 CLI
$ stella release show myapp-v2.3.1 --json
创建版本时,Stella 立即将所有标签解析为其当前摘要。从那时起,该版本就不再可变。
不变性保证
创建版本后,其摘要集无法更改。每次都会将完全相同的字节部署到每个环境。
每次部署都会生成不可变的内容实现可重复性、审计和回滚的工件。
Docker Compose 文件,其中所有镜像引用都固定到特定摘要。包括用于可追溯性的 Stella 元数据标签。
image: registry.example.com/myapp/api@sha256:abc123...
labels:
stella.release.id: "rel-uuid"
stella.digest: "sha256:abc123..."
放置在部署目标上的 JSON 元数据文件,指示当前版本、组件、部署策略和要回滚的先前版本。
"release": { "name": "myapp-v2.3.1" }
"deployment": { "strategy": "rolling" }
"previous": { "digest": "sha256:789..." }
"signature": "base64-encoded-signature"
每个版本都将安全证据与正在部署的确切摘要绑定。证据通过晋级随发布一起传播。
| 证据字段 | 内容 |
|---|---|
| sbomDigest | 为此摘要生成的 SBOM软件物料清单 - 软件中所有软件包和依赖项的完整列表 的 SHA-256 |
| scanVerdict | 通过证据参考进行策略评估的通过/失败结果 |
| reachabilityProof | 此摘要的签名可达性图的 CAS URI |
| policyHash | 用于评估的策略版本的哈希 |
确定性重放:给定相同的版本和策略哈希,重新评估会产生位相同的判定。审计员可以在几个月后验证决策。
安装 Stella Ops 并通过具有完整证据绑定的内容哈希开始版本控制版本。