Выбор ответа Junior Секреты и Vault обновлено

Секрет в Dockerfile

Вопрос

В Dockerfile есть ENV DB_PASSWORD=s3cr3t, а в следующем слое ENV DB_PASSWORD=. Пароль в безопасности?

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

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

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

Коротко

Правильный ответ: Нет: значение видно в истории слоёв и метаданных образа. Каждая инструкция оставляет след в метаданных образа, их видно через docker history.

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

  1. Нет: значение видно в истории слоёв и метаданных образаправильный ответ
  2. Да: последний ENV перезаписал значение во всех слоях
  3. Да, если образ хранится только в приватном реестре компании
  4. Да, если собрать с --squash: промежуточные слои исчезнут

Разбор

Каждая инструкция оставляет след в метаданных образа, их видно через docker history. Приватный реестр сужает круг читателей, но образ скачивают многие системы. Для секретов при сборке есть RUN --mount=type=secret, а в рантайме секрет передают через переменные или файлы при запуске, не зашивая в образ.

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

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