不可變身份
SHA-256 摘要確保升級的工件與掃描的工件字節相同,並且
摘要優先版本控制
發布是在創建時解決的OCI 摘要捆綁。標籤是人類可讀的別名;摘要是加密真理。
這對您的業務意味著什麼
保證測試內容與部署內容完全一致——逐位元組對應。不可變內容雜湊消除標籤漂移,為稽核員提供防篡改的部署驗證。
可變標籤會產生歧義。隨著時間的推移,相同的標籤可能指向不同的內容。摘要優先版本控制消除了這種不確定性。
SHA-256 摘要確保升級的工件與掃描的工件字節相同,並且
對工件的任何修改都會更改其摘要。拉動時間不匹配 = 部署失敗。篡改是不可能隱藏的。
通過鏈接掃描、批准和部署的加密證明,準確了解哪個工件部署在何處、何時以及為何。
回滾返回到精確的已知良好摘要,而不是“無論什麼:到目前為止的最新點”。保證相同字節。
Stella 中的版本捆綁了多個組件,每個組件均由其 OCI 摘要標識。該版本本身俱有便於人類閱讀的語義版本。
示例發布包
Release: myapp-v2.3.1
元件:
api: sha256:abc123...
worker: sha256:def456...
frontend: sha256:789ghi...
從CLI
$ stella release create --name myapp-v2.3.1 --components api:v2.3.1,worker:v2.3.1
stella release list --environment production\nstella release show myapp-v2.3.1 --components 當您創建版本時,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 並通過具有完整證據綁定的內容哈希開始版本控製版本。