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

Секрет в ENV образа

Вопрос

Разработчик положил ключ API в Dockerfile как ENV PAYMENT_KEY=..., а потом удалил строку в следующей версии. Ключ в безопасности?

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

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

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

Коротко

Правильный ответ: Нет: старые версии образа и их история содержат ключ; его нужно отозвать. ENV записывается в конфигурацию образа и виден в docker inspect и истории.

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

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

Разбор

ENV записывается в конфигурацию образа и виден в docker inspect и истории. Все собранные ранее версии с ключом лежат в реестре, кешах CI и на серверах. Утёкший секрет считается скомпрометированным: его отзывают и заменяют, а не прячут. Приватность реестра не защищает от тех, у кого есть доступ к pull.

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

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