Docker Content Trust отключается: инструкция по миграции для разработчиков
Docker Content Trust (DCT) и связанный с ним сервер Notary v1 полностью прекращают работу. Это означает, что проверка подписей образов через встроенные команды Docker CLI станет невозможна. Разработчикам, которые использовали DCT для верификации целостности и происхождения контейнеров, необходимо ср

Docker Content Trust (DCT) и связанный с ним сервер Notary v1 полностью прекращают работу. Это означает, что проверка подписей образов через встроенные команды Docker CLI станет невозможна. Разработчикам, которые использовали DCT для верификации целостности и происхождения контейнеров, необходимо срочно перейти на современные альтернативы — Cosign от Sigstore или Notation от CNCF. В этой статье разберём, что именно меняется, почему это произошло и как выполнить миграцию без потери безопасности.
Почему Docker отключает Content Trust
DCT был внедрён в 2015 году как механизм подписи образов, основанный на протоколе The Update Framework (TUF) и сервере Notary. Он позволял разработчикам подписывать образы с помощью команды docker trust, а при запуске — проверять подпись через обращение к публичному серверу notary.docker.io. Однако со временем экосистема безопасности контейнеров ушла вперёд: появились более гибкие и открытые стандарты, такие как Sigstore Cosign и Notation, которые не требуют централизованного сервера для хранения метаданных. Docker ещё в 2023 году перевёл DCT в режим сопровождения, а в июле 2025 года официально объявил о полном отключении. Теперь сервер Notary остановлен, и любые попытки использовать docker trust или docker push с включённым DCT приводят к ошибкам.
Какие риски возникают при отключении DCT
Главная проблема — потеря возможности верификации образов, подписанных через DCT. Если ваши CI/CD пайплайны или политики Kubernetes (например, ImagePolicyWebhook) полагаются на проверку подписей, то после остановки сервера Notary старые подписи станут невалидными. Это может привести к тому, что доверенные образы перестанут запускаться, а цепочка поставок программного обеспечения окажется под угрозой. Кроме того, злоумышленники могут попытаться воспользоваться задержкой в миграции, чтобы внедрить неподписанные или поддельные образы. Поэтому действовать нужно незамедлительно.
Какие альтернативы предлагает Docker
Docker рекомендует два основных пути: Cosign от проекта Sigstore (под эгидой Linux Foundation) и Notation, развиваемый CNCF. Оба инструмента поддерживают современные стандарты и интегрируются с Docker Hub и другими реестрами.
Cosign использует открытый реестр Sigstore для хранения подписей, что устраняет необходимость в отдельном сервере. Подпись образа выполняется командой cosign sign, а проверка — cosign verify. Инструмент также поддерживает интеграцию с GitHub Actions и GitLab CI.
Notation, в свою очередь, встраивает подпись непосредственно в OCI-артефакт, делая её переносимой между реестрами. Для работы Notation требуется установка плагина и настройка доверенной политики. Команда notation sign подписывает образ, а notation verify проверяет его.
Как выполнить миграцию с DCT на Cosign или Notation
Процесс миграции включает несколько шагов. Во-первых, необходимо сгенерировать новые ключи для подписи. Для Cosign это делается командой cosign generate-key-pair, для Notation — notation key add. Во-вторых, нужно переподписать все образы, которые ранее были подписаны через DCT. Это можно сделать вручную или автоматизировать через скрипты. В-третьих, обновить политики верификации: например, в Kubernetes нужно заменить проверку DCT на Cosign или Notation через admission controllers. Docker предоставляет подробные руководства по миграции на официальном сайте, включая примеры для популярных CI/CD систем.
Важно отметить, что старые подписи DCT не будут автоматически перенесены. После отключения сервера Notary они станут недействительными, поэтому переподписывать образы необходимо до этой даты. Docker рекомендует завершить миграцию до 1 июля 2025 года, хотя фактически сервис уже остановлен.
Кого затронет отключение DCT
Изменение касается всех, кто использует DCT для подписи образов: от отдельных разработчиков до крупных организаций. Особенно критично это для команд, которые внедрили проверку подписей в production-среде. Например, если в Kubernetes настроен ImagePolicyWebhook, проверяющий подписи через DCT, то после отключения все образы будут отклоняться. Для российских разработчиков и компаний из СНГ ситуация осложняется возможными проблемами с доступом к Docker Hub. В таких случаях рекомендуется использовать локальные реестры (например, Harbor или Nexus) и инструменты, работающие в офлайн-режиме, такие как Cosign с самоподписанными сертификатами.
Что будет после отключения DCT
Docker сосредоточится на поддержке Cosign и Notation, интегрируя их непосредственно в интерфейс Docker Hub. Ожидается, что в будущем подпись образов станет частью стандартного рабочего процесса, а не дополнительной опцией. Разработчикам, которые ещё не начали миграцию, стоит поторопиться: после полной остановки сервера Notary восстановить старые подписи будет невозможно. Docker обещает сохранить документацию и утилиты для конвертации, но активная поддержка DCT прекращена.
Итог
Отключение Docker Content Trust — закономерный этап эволюции безопасности контейнеров. Разработчикам необходимо как можно скорее перейти на Cosign или Notation, чтобы сохранить возможность верификации образов. Это не только техническая необходимость, но и шанс улучшить безопасность цепочки поставок с помощью современных открытых стандартов. Начните с переподписания критически важных образов и обновления CI/CD пайплайнов — это займёт время, но предотвратит простои и уязвимости.