Cómo usar el comando docker trust revoke para eliminar firmas de imágenes

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos cómo gestionar las firmas de imágenes utilizando Docker Content Trust (Confianza en el contenido de Docker), centrándonos específicamente en el comando docker trust revoke. Comenzaremos inspeccionando una imagen firmada para entender cómo se muestran y verifican las firmas.

Después de la inspección, aprenderemos cómo revocar las firmas de una etiqueta firmada específica de una imagen. Luego, verificaremos que la revocación fue exitosa inspeccionando la imagen nuevamente. Finalmente, demostraremos cómo revocar las firmas de todas las etiquetas dentro de un repositorio y confirmaremos que se han eliminado todas las firmas. Este laboratorio brinda experiencia práctica en la gestión de la confianza asociada con sus imágenes 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{{"Cómo usar el comando docker trust revoke para eliminar firmas de imágenes"}} docker/pull -.-> lab-555254{{"Cómo usar el comando docker trust revoke para eliminar firmas de imágenes"}} docker/tag -.-> lab-555254{{"Cómo usar el comando docker trust revoke para eliminar firmas de imágenes"}} docker/images -.-> lab-555254{{"Cómo usar el comando docker trust revoke para eliminar firmas de imágenes"}} end

Inspeccionar una imagen firmada para ver sus firmas

En este paso, aprenderemos cómo inspeccionar una imagen Docker firmada para ver sus firmas. Docker Content Trust (Confianza en el contenido de Docker) te permite verificar la integridad y el publicador de las imágenes. Cuando una imagen está firmada, significa que el publicador ha firmado criptográficamente la imagen, y puedes verificar esta firma para asegurarte de que la imagen no ha sido manipulada.

Primero, necesitamos habilitar Docker Content Trust. Esto se hace configurando la variable de entorno DOCKER_CONTENT_TRUST en 1.

export DOCKER_CONTENT_TRUST=1

Ahora, vamos a descargar una imagen firmada. Utilizaremos la imagen docker/trusttest, que está específicamente diseñada para probar Docker Content Trust.

docker pull docker/trusttest:latest

Cuando descargas una imagen firmada con Docker Content Trust habilitado, Docker verifica la firma. Si la firma es válida, la descarga tendrá éxito. Si la firma es inválida o está ausente, la descarga fallará.

Para inspeccionar las firmas de una imagen firmada, usamos el comando docker trust inspect seguido del nombre de la imagen.

docker trust inspect docker/trusttest:latest

Este comando mostrará información sobre las firmas de la imagen, incluyendo los firmantes y sus claves. Deberías ver detalles sobre las firmas asociadas a la etiqueta latest de la imagen docker/trusttest. Esta salida confirma que la imagen está firmada y muestra quién la firmó.

Revocar firmas de una etiqueta firmada específica

En este paso, aprenderemos cómo revocar las firmas de una etiqueta específica de una imagen Docker firmada. Revocar una firma significa invalidar la firma existente para una etiqueta de imagen en particular. Esto es útil si una clave se ve comprometida o si necesitas eliminar la confianza en una versión específica de una imagen.

Para revocar las firmas de una etiqueta específica, usamos el comando docker trust revoke seguido del nombre de la imagen y la etiqueta. Revocaremos la firma de la etiqueta latest de la imagen docker/trusttest.

docker trust revoke docker/trusttest:latest

Cuando ejecutes este comando, se te pedirá que confirmes la revocación. Escribe y y presiona Enter para continuar.

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

Después de confirmar, Docker revocará la firma de la etiqueta especificada. Esta acción actualiza los datos de confianza de la imagen en el registro.

Inspeccionar la imagen nuevamente para verificar la revocación

En este paso, inspeccionaremos la imagen nuevamente para verificar que la firma de la etiqueta latest se haya revocado exitosamente. Después de revocar la firma en el paso anterior, los datos de confianza de esta etiqueta específica deben ser eliminados o marcados como inválidos.

Usaremos el mismo comando docker trust inspect que antes para verificar las firmas de la imagen docker/trusttest:latest.

docker trust inspect docker/trusttest:latest

Esta vez, la salida debe indicar que no hay firmas para la etiqueta latest. Podrías ver información sobre otras etiquetas si existen y están firmadas, pero la sección de latest debe mostrar que no hay firmas válidas. Esto confirma que la revocación fue exitosa.

Si intentas descargar la imagen docker/trusttest:latest con DOCKER_CONTENT_TRUST=1 habilitado después de revocar la firma, la descarga debe fallar porque la imagen ya no es de confianza para esa etiqueta específica.

Revocar firmas de todas las etiquetas en un repositorio

En este paso, aprenderemos cómo revocar las firmas de todas las etiquetas dentro de un repositorio específico de imágenes Docker. Esto es útil cuando necesitas eliminar por completo la confianza en un repositorio entero, quizás debido a un incidente de seguridad o a la decisión de dejar de usar imágenes de esa fuente.

Para revocar las firmas de todas las etiquetas en un repositorio, usamos el comando docker trust revoke seguido del nombre del repositorio, sin especificar una etiqueta. Revocaremos todas las firmas del repositorio docker/trusttest.

docker trust revoke docker/trusttest

Cuando ejecutes este comando, se te pedirá que confirmes que deseas revocar las firmas de todas las etiquetas en el repositorio. Escribe y y presiona Enter para continuar.

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

Después de confirmar, Docker revocará las firmas de todas las etiquetas asociadas con el repositorio docker/trusttest. Esta acción elimina efectivamente los datos de confianza para el repositorio entero en el registro.

Inspeccionar el repositorio para verificar que todas las firmas se hayan eliminado

En este último paso, inspeccionaremos nuevamente el repositorio docker/trusttest para verificar que todas las firmas se hayan eliminado exitosamente de todas sus etiquetas. Después de revocar todas las firmas en el paso anterior, los datos de confianza para el repositorio entero deben haber desaparecido.

Usaremos el comando docker trust inspect, esta vez especificando solo el nombre del repositorio sin ninguna etiqueta.

docker trust inspect docker/trusttest

La salida de este comando ahora debe indicar que no se encontraron firmas para el repositorio docker/trusttest. Esto confirma que la revocación de todas las firmas fue exitosa.

Con esto se concluye el laboratorio sobre la revocación de firmas de imágenes Docker utilizando Docker Content Trust. Has aprendido cómo revocar firmas para una etiqueta específica y para un repositorio entero.

Resumen

En este laboratorio, aprendimos cómo gestionar las firmas de imágenes utilizando Docker Content Trust. Comenzamos habilitando Docker Content Trust y descargando una imagen firmada (docker/trusttest:latest) para entender cómo Docker verifica las firmas durante el proceso de descarga. Luego, utilizamos el comando docker trust inspect para ver las firmas asociadas con la imagen, confirmando su estado de firma e identificando a los firmantes.

Posteriormente, exploramos cómo revocar firmas. Aprendimos a usar el comando docker trust revoke para eliminar las firmas de una etiqueta de imagen específica (docker/trusttest:latest) y verificamos la revocación inspeccionando la imagen nuevamente. Finalmente, extendimos este conocimiento para revocar las firmas de todas las etiquetas dentro de un repositorio y confirmamos la eliminación completa de las firmas a través de una inspección. Este laboratorio proporcionó experiencia práctica en la inspección y revocación de firmas de imágenes Docker, habilidades esenciales para mantener la integridad y confiabilidad de las imágenes de contenedores.