Выбор ответа Middle Безопасность цепочки поставки обновлено

Тег или digest

Вопрос

Почему в Dockerfile надёжнее писать FROM python:3.13-slim@sha256:..., а не просто python:3.13-slim?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Тег можно перезаписать, digest указывает на конкретный образ. Тег это подвижный указатель: мейнтейнер обновляет 3.13-slim при каждом патче базы, а атакующий со взломанным аккаунтом может подменить его.

Варианты ответа

  1. Тег можно перезаписать, digest указывает на конкретный образправильный ответ
  2. Образ по digest скачивается быстрее, без запроса манифеста
  3. Без digest Docker не проверяет подпись образа при скачивании
  4. Теги с минорной версией запрещены в Docker Hub для базовых образов

Разбор

Тег это подвижный указатель: мейнтейнер обновляет 3.13-slim при каждом патче базы, а атакующий со взломанным аккаунтом может подменить его. Digest это хеш манифеста, сборка становится воспроизводимой. Обновления digest автоматизирует Renovate. Скорость скачивания не меняется, проверка подписи с тегом не связана, тегов с версиями никто не запрещает.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.