Дайджест-Перша версія

Ідентифікація незмінного випуску за хешем вмісту

Реліз — це набір OCI дайджестів, вирішених під час створення. Теги – це зрозумілі людині псевдоніми; дайджести є криптографічною правдою.

Чому Digest-First?

Змінні теги створюють неоднозначність. Той самий тег може вказувати на різний вміст з часом. Створення перших версій дайджесту усуває цю невизначеність.

Immutable Identity

Дайджести SHA-256 гарантують, що просуваний артефакт є байтно ідентичним артефакту, відсканованому та схваленому.

Виявлення втручання

Будь-яка модифікація артефакту змінює його дайджест. Невідповідність часу підключення = помилка розгортання. Втручання неможливо приховати.

Аудиторський слід

Точно знати, який артефакт було розгорнуто, де, коли та чому — за допомогою криптографічного підтвердження, що пов’язує сканування, схвалення та розгортання.

Значний відкат

Відкат повертає до точних завідомо-якісних дайджестів, а не до «незалежно від того, що :latest вказує на зараз». Ті самі байти, гарантовано.

Структура випуску

Випуск у Stella об’єднує кілька компонентів, кожен з яких визначається своїм дайджестом 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

Розділення тегів до дайджесту

Коли ви створюєте випуск, Stella негайно перетворює всі теги на їхні поточні дайджести. З цього моменту випуск є незмінним.

  • Теги на кшталт :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, створеного для цього дайджесту
scanVerdictРезультат оцінки політики «Пройшов/не пройшов» із посиланнями на докази
reachabilityProofCAS URI підписаного графіка досяжності для цього дайджесту
policyHashХеш версії політики, яка використовується для оцінки

Детерміноване відтворення: враховуючи той самий випуск і хеш політики, повторна оцінка дає бітово-ідентичні вердикти. Аудитори можуть перевіряти рішення через місяці.

Готові до незмінної ідентифікації випуску?

Установіть Stella Ops і почніть керувати версіями випусків за хешем вмісту з повним зв’язуванням доказів.