Docker Content Trust (DCT)

Docker Content Trust (DCT) предоставляет возможность использовать цифровые подписи для данных, отправляемых и получаемых из удаленных реестров Docker. Эти подписи позволяют проверять целостность и издателя определенных тегов изображений на стороне клиента или во время выполнения.

Необходимые условия

  • Последняя версия рабочего стола Docker
  • Учетная запись хаба Docker
  • Образ Docker contrainer## ДокументацияСсылка на документацию DCT здесь

Развертывание

Создайте репозиторий docker для ваших образов

  • Перейдите на Docker Hub и войдите под своей учетной записью docker hub.
  • Нажмите на Create repository и назовите его «test».
  • Он должен выглядеть примерно так.

Выполните вход в Docker в CLI с помощью команды

Docker login 
Войдите в полноэкранный режим Выйти из полноэкранного режима
  • Введите свои учетные данные, и вы готовы к работе.

Чтобы подписать образ docker, мы должны сначала сгенерировать ключ…

Чтобы сгенерировать ключ, выполните эту команду в CLI

  docker trust key generate signature
Войти в полноэкранный режим Выйти из полноэкранного режима
  • Эта «Подпись» — имя, которое вы дадите ключу, и оно будет сохранено в рабочем каталоге с расширением .pub.
  • После выполнения этой команды вам будет предложено ввести и повторить кодовую фразу.

Для создания подписи и добавления ее в репозиторий выполните эту команду

docker trust signer add --key signature.pub [signer's name] [your repository's name]
Войти в полноэкранный режим Выйти из полноэкранного режима
  • Имя репозитория будет выглядеть примерно так —> example/test
  • Вы должны ввести и повторить парольную фразу для корневого ключа и репозитория.

Подписание и отправка образов в репозиторий

  • Сначала зафиксируем наш образ контейнера.
 docker commit [Image ID] [Repository Name]
Вход в полноэкранный режим Выйдите из полноэкранного режима
  • Идентификатор образа можно узнать из
docker ps
Войти в полноэкранный режим Выйти из полноэкранного режима
  • Давайте вставим неподписанное изображение для справки — сначала пометьте изображение как unsigned-image
 docker image tag [Image ID] [Repository Name]:unsigned-image
Войти в полноэкранный режим Выйти из полноэкранного режима
  • Теперь переместите изображение с помощью
 docker push [Repository Name]:unsigned-image
Войти в полноэкранный режим Выйти из полноэкранного режима
  • Теперь подпишите метку и подпишите то же изображение.Метка изображения с
docker image tag [Image ID] [Repository Name]:signed-image
Войти в полноэкранный режим Выйти из полноэкранного режима

Подпишите изображение с помощью

docker trust sign [Repository Name]:signed-image
Войти в полноэкранный режим Выйти из полноэкранного режима
  • Снова введите кодовую фразу.

Для получения дальнейшей информации о подписанном изображении запустите

docker trust inspect --pretty [Repository Name]:signed-image
Войти в полноэкранный режим Выйти из полноэкранного режима

Нажмите на подписанное изображение с помощью

docker push [Repository Name]:signed-image

The push refers to repository [docker.io/shakunt/test]
059ff50d778b: Layer already exists
c4e64d78638e: Layer already exists
5f70bf18a086: Layer already exists
0cd0f4e90e0c: Layer already exists
e4a7f8c5002b: Layer already exists
7cc0623bd7a8: Layer already exists
f1859b30ca6b: Layer already exists
6a35d52a66fd: Layer already exists
fbd7d5451c69: Layer already exists
4fc242d58285: Layer already exists
trust-image-signed: digest: sha256:f6274d55e7ae079737180c7cb5----7387fb6a87297ef486edbc1bb16f4d0 size: 2409
Войти в полноэкранный режим Выйти из полноэкранного режима

Настройка доверительной среды и извлечение подписанных и неподписанных изображений

Чтобы настроить доверительную среду, выполните следующие действия

export DOCKER_CONTENT_TRUST=1
Войти в полноэкранный режим Выйти из полноэкранного режима

Давайте извлечем изображения

  • неподписанное изображение
docker pull [Repository Name]:unsigned-image
No valid trust data for unsigned-image
Войти в полноэкранный режим Выход из полноэкранного режима
  • подписанное изображение
docker pull [Repository Name]:signed-image
Pull (1 of 1): shakunt/test:signed-image@sha256:f6274d55e7ae079737180c7cb5b02f386edbc1bb16f4d0
docker.io/shakunt/test@sha256:f6274d55e7ae079737180c7cb5b02f3767387fb6a87bb16f4d0: Pulling from shakunt/test
Digest: sha256:f6274d55e7ae079737180c77fb6a87297ef486edbc1bb16f4d0
Status: Image is up to date for shakunt/test@sha256:f6274d551bb16f4d0
Tagging shakunt/test@sha256:f6274d55e7ae079732f3767387fb6a87297ef486edbc1bb16f4d0 as shakunt/test:signed-image
docker.io/shakunt/test:signed-image
Вход в полноэкранный режим Выйти из полноэкранного режима

Спасибо, надеюсь, этот пост помог вам!


Оцените статью
Procodings.ru
Добавить комментарий