Обработка первых версий

Неизменяемая идентификация выпуска по хэшу контента

Выпуск — это пакет дайджестов OCI, разрешенный во время создания. Теги — это удобочитаемые псевдонимы; дайджесты — это криптографическая истина.

Почему Digest-First?

Изменяемые теги создают двусмысленность. Один и тот же тег может с течением времени указывать на разное содержимое. Дайджест-первый контроль версий устраняет эту неопределенность.

Неизменяемый. Идентичность

Дайджесты 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 и начните управлять версиями выпусков по хэшу контента с полной привязкой доказательств.