Введение
В этом практическом занятии (лабораторной работе) вы узнаете, как использовать команду docker trust inspect для проверки информации о доверии, связанной с образами Docker. Вы научитесь проверять данные о доверии для подписанных и неподписанных тегов образов, а также для всех подписанных тегов в репозитории.
Путем выполнения практических упражнений вы получите практический опыт проверки целостности и издателя образов путем проверки их цифровых подписей. Вы научитесь интерпретировать вывод команды docker trust inspect и понять разницу в информации о доверии между подписанными и неподписанными образами. Наконец, вы узнаете, как проверять информацию о доверии для нескольких образов и просматривать вывод в удобочитаемом формате.
Проверить информацию о доверии для одного подписанного тега образа
На этом этапе вы узнаете, как проверить информацию о доверии для одного подписанного тега образа с помощью команды docker trust inspect. Функция Docker Content Trust позволяет вам проверять целостность и издателя образов, которые вы скачиваете из реестра.
Сначала давайте скачаем подписанный образ. Мы будем использовать образ docker/trusttest, который специально разработан для тестирования функции Docker Content Trust.
docker pull docker/trusttest:latest
Вы должны увидеть вывод, указывающий на то, что образ скачивается.
Теперь мы можем проверить информацию о доверии для этого конкретного тега образа. Для этого используется команда docker trust inspect.
docker trust inspect docker/trusttest:latest
Вывод этой команды покажет вам детали о подписях, связанных с тегом образа. Это включает в себя подписчиков и их ключи. Если образ подписан, вы увидите информацию о подписях. Если он не подписан, вывод будет указывать на то, что информация о доверии не найдена.
Проверить информацию о доверии для неподписанного тега образа в подписанном репозитории
На этом этапе вы узнаете, как проверить информацию о доверии для неподписанного тега образа в репозитории, содержащем подписанные образы. Это показывает, что даже если в репозитории есть подписанные теги, отдельные неподписанные теги не будут иметь информации о доверии.
Мы продолжим использовать репозиторий docker/trusttest. На предыдущем этапе мы проверили тег latest, который подписан. Теперь давайте попробуем проверить тег, который известно, что он неподписан в том же репозитории. Для этого мы будем использовать тег unsigned.
Сначала давайте попробуем скачать тег unsigned.
docker pull docker/trusttest:unsigned
Вы должны увидеть вывод, указывающий на то, что образ скачивается.
Теперь давайте проверим информацию о доверии для тега unsigned с помощью команды docker trust inspect.
docker trust inspect docker/trusttest:unsigned
При выполнении этой команды вы, скорее всего, увидите вывод, указывающий на то, что информация о доверии для этого конкретного тега не найдена. Это происходит потому, что тег unsigned, несмотря на то, что находится в репозитории с подписанными тегами, сам по себе не имеет действительной подписи. Это подчеркивает, что функция Docker Content Trust работает на уровне каждого отдельного тега.
Проверить информацию о доверии для всех подписанных тегов в репозитории
На этом этапе вы узнаете, как проверить информацию о доверии для всех подписанных тегов образов в определенном репозитории. Это полезно для получения общего представления о том, какие теги в репозитории являются надежными.
Мы продолжим использовать репозиторий docker/trusttest. На предыдущих этапах мы рассматривали отдельные теги. Теперь мы проверим весь репозиторий, чтобы увидеть все подписанные теги.
Для проверки всех подписанных тегов в репозитории используйте команду docker trust inspect, за которой следует имя репозитория без указания конкретного тега.
docker trust inspect docker/trusttest
При выполнении этой команды в выводе будут перечислены все теги в репозитории docker/trusttest, для которых есть действительная информация о доверии. Вы должны увидеть информацию для тега latest (который мы подтвердили как подписанный на этапе 1) и, возможно, другие подписанные теги, если они существуют в этом репозитории. Неподписанные теги, как тег unsigned, который мы рассмотрели на этапе 2, не будут отображаться в этом выводе.
Эта команда предоставляет удобный способ быстро узнать, какие версии образа в репозитории считаются надежными в соответствии с функцией Docker Content Trust.
Проверить информацию о доверии для нескольких образов
На этом этапе вы узнаете, как проверить информацию о доверии для нескольких тегов образов с помощью одной команды docker trust inspect. Это полезно, когда вы хотите проверить статус доверия сразу для нескольких конкретных образов.
Мы проверим информацию о доверии как для подписанного тега latest, так и для неподписанного тега unsigned из репозитория docker/trusttest одной командой.
Для проверки нескольких образов просто перечислите имена образов (включая тег) после команды docker trust inspect, разделяя их пробелами.
docker trust inspect docker/trusttest:latest docker/trusttest:unsigned
При выполнении этой команды в выводе будет показана информация о доверии для каждого указанного тега образа. Вы должны увидеть детали подписи для docker/trusttest:latest и уведомление о том, что информация о доверии для docker/trusttest:unsigned не найдена. Это подтверждает, что вы можете эффективно проверить статус доверия нескольких образов за одну операцию.
Проверить информацию о доверии в удобочитаемом формате
На этом этапе вы узнаете, как отобразить информацию о доверии в более удобочитаемом формате, используя флаг --pretty с командой docker trust inspect. По умолчанию вывод находится в формате JSON, который полезен для скриптинга, но менее удобен для быстрого просмотра человеком.
Мы снова проверим информацию о доверии для подписанного образа docker/trusttest:latest, но на этот раз добавим флаг --pretty.
docker trust inspect --pretty docker/trusttest:latest
При выполнении этой команды вывод будет отформатирован таким образом, чтобы его было легче прочитать и понять. Обычно информация будет представлена в виде таблицы, в которой четко показаны детали об образе, подписчиках и их ключах.
Сравнив этот вывод с выводом в формате JSON по умолчанию из этапа 1, вы увидите, как флаг --pretty делает информацию о доверии более доступной для просмотра человеком. Это особенно полезно, когда вы вручную проверяете статус доверия образа.
Резюме
В этом практическом занятии мы научились использовать команду docker trust inspect для проверки информации о доверии к образам. Мы начали с проверки данных о доверии для одного подписанного тега образа, изучив детали связанных подписей и подписчиков. Затем мы исследовали, как проверка неподписанного тега образа в подписанном репозитории показывает, что только подписанные теги имеют информацию о доверии.
Мы углубили свои знания, проверив информацию о доверии для всех подписанных тегов в репозитории и для нескольких образов одновременно. Наконец, мы научились отображать информацию о доверии в более удобочитаемом формате, что облегчает интерпретацию деталей подписания. Эти шаги дали практический опыт в проверке целостности и издателя Docker-образов с использованием Docker Content Trust.



