Как использовать команду docker trust revoke для удаления подписей изображений

DockerDockerBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабораторном занятии мы рассмотрим, как управлять подписями к изображениям с использованием Docker Content Trust, с особым вниманием уделив команде docker trust revoke. Сначала мы проверим подписанное изображение, чтобы понять, как отображаются и проверяются подписи.

После проверки мы научимся отзывать подписи с определенного подписанного тега изображения. Затем мы проверим, что отзыв прошел успешно, проверив изображение еще раз. Наконец, мы покажем, как отзывать подписи со всех тегов в репозитории и убедимся, что все подписи были удалены. В этом лабораторном занятии вы получите практический опыт по управлению доверием, связанным с вашими Docker-изображениями.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/tag("Tag an Image") docker/ImageOperationsGroup -.-> docker/images("List Images") subgraph Lab Skills docker/inspect -.-> lab-555254{{"Как использовать команду docker trust revoke для удаления подписей изображений"}} docker/pull -.-> lab-555254{{"Как использовать команду docker trust revoke для удаления подписей изображений"}} docker/tag -.-> lab-555254{{"Как использовать команду docker trust revoke для удаления подписей изображений"}} docker/images -.-> lab-555254{{"Как использовать команду docker trust revoke для удаления подписей изображений"}} end

Проверка подписанного изображения для просмотра его подписей

На этом этапе мы научимся проверять подписанное Docker-изображение, чтобы просмотреть его подписи. Docker Content Trust позволяет вам проверять целостность и издателя изображений. Когда изображение подписано, это означает, что издатель криптографически подписал изображение, и вы можете проверить эту подпись, чтобы убедиться, что изображение не было изменено.

Сначала нам нужно включить Docker Content Trust. Это можно сделать, установив переменную окружения DOCKER_CONTENT_TRUST в значение 1.

export DOCKER_CONTENT_TRUST=1

Теперь давайте загрузим подписанное изображение. Мы будем использовать изображение docker/trusttest, которое специально разработано для тестирования Docker Content Trust.

docker pull docker/trusttest:latest

Когда вы загружаете подписанное изображение с включенным Docker Content Trust, Docker проверяет подпись. Если подпись действительна, загрузка будет успешной. Если подпись недействительна или отсутствует, загрузка завершится с ошибкой.

Для проверки подписей подписанного изображения мы используем команду docker trust inspect, за которой следует имя изображения.

docker trust inspect docker/trusttest:latest

Эта команда выведет информацию о подписях изображения, включая подписчиков и их ключи. Вы должны увидеть детали о подписях, связанных с тегом latest изображения docker/trusttest. Этот вывод подтверждает, что изображение подписано и показывает, кто его подписал.

Отзыв подписей с определенного подписанного тега

На этом этапе мы научимся отзывать подписи с определенного тега подписанного Docker-изображения. Отзыв подписи означает аннулирование существующей подписи для конкретного тега изображения. Это полезно, если ключ был скомпрометирован или если вам нужно удалить определенную версию изображения из списка доверенных.

Для отзыва подписей с определенного тега мы используем команду docker trust revoke, за которой следует имя изображения и тег. Мы отозвем подпись для тега latest изображения docker/trusttest.

docker trust revoke docker/trusttest:latest

При выполнении этой команды вас попросят подтвердить отзыв. Введите y и нажмите Enter, чтобы продолжить.

Are you sure you want to revoke signature for docker/trusttest:latest? (y/n) y

После подтверждения Docker отозвонит подпись для указанного тега. Это действие обновляет данные о доверии для изображения в реестре.

Повторно проверьте изображение, чтобы подтвердить отзыв подписи

На этом этапе мы снова проверим изображение, чтобы убедиться, что подпись для тега latest была успешно отозвана. После отзыва подписи на предыдущем этапе данные о доверии для этого конкретного тега должны быть удалены или помечены как недействительные.

Мы будем использовать ту же команду docker trust inspect, как и раньше, чтобы проверить подписи для изображения docker/trusttest:latest.

docker trust inspect docker/trusttest:latest

На этот раз вывод должен показать, что для тега latest нет подписей. Вы можете увидеть информацию о других тегах, если они существуют и подписаны, но раздел для latest должен показать, что нет действительных подписей. Это подтверждает, что отзыв был успешным.

Если вы попытаетесь загрузить изображение docker/trusttest:latest с включенной переменной DOCKER_CONTENT_TRUST=1 после отзыва подписи, загрузка должна завершиться с ошибкой, так как изображение больше не является доверенным для этого конкретного тега.

Отзыв подписей со всех тегов в репозитории

На этом этапе мы научимся отзывать подписи со всех тегов в определенном Docker-репозитории. Это полезно, когда вам нужно полностью удалить доверие к целому репозиторию, возможно, из-за инцидента безопасности или решения больше не использовать изображения из этого источника.

Для отзыва подписей со всех тегов в репозитории мы используем команду docker trust revoke, за которой следует имя репозитория без указания тега. Мы отозвем все подписи для репозитория docker/trusttest.

docker trust revoke docker/trusttest

При выполнении этой команды вас попросят подтвердить, что вы хотите отозвать подписи для всех тегов в репозитории. Введите y и нажмите Enter, чтобы продолжить.

Are you sure you want to revoke all signatures for docker/trusttest? (y/n) y

После подтверждения Docker отозвонит подписи для всех тегов, связанных с репозиторием docker/trusttest. Это действие эффективно удаляет данные о доверии для всего репозитория в реестре.

Проверьте репозиторий, чтобы убедиться, что все подписи удалены

На этом последнем этапе мы снова проверим репозиторий docker/trusttest, чтобы убедиться, что все подписи были успешно удалены со всех его тегов. После отзыва всех подписей на предыдущем этапе данные о доверии для всего репозитория должны быть удалены.

Мы будем использовать команду docker trust inspect, на этот раз указав только имя репозитория без какого-либо тега.

docker trust inspect docker/trusttest

Теперь вывод этой команды должен показать, что для репозитория docker/trusttest не найдено ни одной подписи. Это подтверждает, что отзыв всех подписей был успешным.

Это завершает лабораторную работу по отзыву подписей Docker-изображений с использованием Docker Content Trust. Вы научились отзывать подписи для определенного тега и для всего репозитория.

Резюме

В этой лабораторной работе мы научились управлять подписями изображений с использованием Docker Content Trust. Мы начали с включения Docker Content Trust и загрузки подписанного изображения (docker/trusttest:latest), чтобы понять, как Docker проверяет подписи во время процесса загрузки. Затем мы использовали команду docker trust inspect для просмотра подписей, связанных с изображением, подтвердили его подписанный статус и определили подписчиков.

Затем мы изучили, как отзывать подписи. Мы научились использовать команду docker trust revoke для удаления подписей с определенного тега изображения (docker/trusttest:latest) и проверили отзыв, еще раз проверив изображение. Наконец, мы расширили эти знания, чтобы отзывать подписи со всех тегов в репозитории и подтвердили полное удаление подписей с помощью проверки. Эта лабораторная работа дала практический опыт в проверке и отзыве подписей Docker-изображений, которые являются важными навыками для сохранения целостности и надежности контейнерных изображений.