Версиониране по дайджест

Неизменна идентичност на релийза по хеш на съдържанието

Релийзът е пакет от OCI дайджести, разрешени при създаването. Таговете са четими от човека псевдоними; дайджестите са криптографска истина.

Защо версиониране по дайджест?

Променливите тагове създават двусмислие. Същият таг може да сочи към различно съдържание във времето. Версионирането по дайджест елиминира тази неопределеност.

Неизменна идентичност

SHA-256 дайджестите гарантират, че промотираният артефакт е байт-идентичен със сканирания и одобрения.

Откриване на подправяне

Всяка модификация на артефакта променя неговия дайджест. Несъвпадение при изтегляне = неуспех на внедряване. Подправянето е невъзможно да се скрие.

Одитна пътека

Знайте точно кой артефакт е бил внедрен къде, кога и защо — с криптографско доказателство.

Смислено връщане

Връщането се връща към точните известни добри дайджести, не към „каквото :latest сочи сега“. Същите байтове, гарантирано.

Структура на релийза

Релийзът в Стела пакетира множество компоненти, всеки идентифициран по своя OCI дайджест. Самият релийз има семантична версия за четимост от човека.

Примерен пакет от релийз

Релийз: 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

Разрешаване от таг към дайджест

Когато създавате релийз, Стела незабавно разрешава всички тагове до техните текущи дайджести. От този момент релийзът е неизменяем.

  • Тагове като :v2.3.1 се разрешават до sha256:abc123... при създаването
  • Ако някой качи нов образ към същия таг, вашият релийз не е засегнат
  • Заявките към регистъра винаги използват @sha256:digest синтаксис — без повторно разрешаване на тагове

Гаранция за неизменност

След като релийзът е създаден, неговият набор от дайджести не може да се промени. Същите байтове ще бъдат внедрени във всяка среда, всеки път.

Генерирани артефакти

Всяко внедряване генерира неизменяеми артефакти, които позволяват възпроизводимост, одит и връщане.

compose.stella.lock.yml

Docker Compose файл с всички референции към образи, закачени към конкретни дайджести. Включва Stella метаданни етикети за проследимост.

image: registry.example.com/myapp/api@sha256:abc123...

labels:

stella.release.id: "rel-uuid"

stella.digest: "sha256:abc123..."

stella.version.json

JSON метаданни файл, поставен на целите за внедряване, указващ текущия релийз, компоненти, стратегия за внедряване и предишна версия за връщане.

"release": { "name": "myapp-v2.3.1" }

"deployment": { "strategy": "rolling" }

"previous": { "digest": "sha256:789..." }

"signature": "base64-encoded-signature"

Свързване на доказателства

Всеки релийз свързва доказателства за сигурност към точните дайджести, които се внедряват. Доказателствата пътуват с релийза през промотиране.

Поле за доказателствоСъдържание
sbomDigestSHA-256 на SBOM, генериран за този дайджест
scanVerdictPass/fail резултат от оценка на политика с референции към доказателства
reachabilityProofCAS URI на подписан граф на достижимост за този дайджест
policyHashХеш на версията на политиката, използвана за оценка

Детерминистично възпроизвеждане: При същия релийз и хеш на политика, повторната оценка произвежда бит-идентични присъди. Одиторите могат да проверят решения месеци по-късно.

Готови ли сте за неизменна идентичност на релийза?

Инсталирайте Стела и започнете да версионирате релийзи по хеш на съдържанието с пълно свързване на доказателства.