Cómo usar el comando docker scout policy para evaluar políticas 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, aprenderá cómo utilizar el comando docker scout policy para evaluar políticas de imágenes. Explorará diferentes escenarios de evaluación de políticas, incluyendo la evaluación de políticas contra una imagen específica, la evaluación de políticas para una organización específica, la evaluación de políticas contra una imagen con una plataforma específica y la comparación de los resultados de políticas para un repositorio en un entorno específico.

A través de ejercicios prácticos, adquirirá experiencia práctica en el uso de docker scout policy para evaluar el cumplimiento y la postura de seguridad de sus imágenes Docker en función de las políticas definidas.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/images("List Images") subgraph Lab Skills docker/pull -.-> lab-555208{{"Cómo usar el comando docker scout policy para evaluar políticas de imágenes"}} docker/images -.-> lab-555208{{"Cómo usar el comando docker scout policy para evaluar políticas de imágenes"}} end

Evaluar políticas contra una imagen específica

En este paso, aprenderá cómo evaluar políticas contra una imagen Docker específica. Esta es una operación fundamental cuando se trabaja con la seguridad y el cumplimiento de imágenes. Utilizaremos una imagen de ejemplo sencilla para demostrar el proceso.

Primero, descarguemos una imagen de muestra que usaremos para la evaluación. Utilizaremos la imagen hello-world de Docker Hub. Esta es una imagen muy pequeña que simplemente imprime "Hello from Docker!" y finaliza.

docker pull hello-world

Debería ver una salida que indique que la imagen se está descargando.

Using default tag: latest
latest: Pulling from library/hello-world
...
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

Ahora que tenemos la imagen, podemos evaluar políticas contra ella. El comando y la herramienta específicos para la evaluación de políticas dependerán del motor de políticas que esté utilizando. Para los fines de este laboratorio, asumiremos que está utilizando una herramienta hipotética de evaluación de políticas llamada policy-eval.

Para evaluar políticas contra la imagen hello-world, normalmente ejecutaría un comando similar a este:

## Este es un comando hipotético y no funcionará en este entorno.
## Se muestra aquí solo con fines ilustrativos.
## policy-eval evaluate --image hello-world:latest

Dado que no tenemos instalada una herramienta específica de evaluación de políticas en este entorno, simularemos el proceso comprobando si la imagen existe localmente, lo cual es un requisito previo para la evaluación.

Para comprobar si la imagen hello-world está presente en su sistema, puede utilizar el comando docker images y filtrar la salida.

docker images | grep hello-world

Si la imagen se descargó correctamente, debería ver una salida similar a esta, que muestra el repositorio, la etiqueta, el ID de la imagen, la fecha de creación y el tamaño de la imagen hello-world.

hello-world   latest    <image_id>   <creation_time>   <size>

Esto confirma que la imagen está disponible para la evaluación de políticas. En un escenario del mundo real, el siguiente paso sería ejecutar el comando real de evaluación de políticas utilizando la herramienta que haya elegido.

Evaluar políticas contra una imagen de una organización específica

En este paso, aprenderá cómo evaluar políticas contra una imagen Docker que pertenece a una organización específica. En el contexto de Docker Hub y otros registros de contenedores, las imágenes a menudo se organizan bajo espacios de nombres de usuarios u organizaciones. Esto permite un mejor control de acceso y gestión.

Para demostrar esto, descargaremos una imagen de una organización específica en Docker Hub. Utilicemos la imagen ubuntu, que es mantenida por la organización library (imágenes oficiales).

docker pull ubuntu

Debería ver una salida que indique el progreso de la descarga.

Using default tag: latest
latest: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest

Note que el nombre de la imagen es ubuntu, pero cuando se descarga, a menudo se la conoce como library/ubuntu. Esta parte library representa la organización. Cuando se evalúan políticas para imágenes de una organización específica, normalmente se especifica el nombre completo de la imagen, incluyendo el nombre de la organización.

Similar al paso anterior, el comando exacto para la evaluación de políticas dependerá de su motor de políticas. Un comando hipotético podría ser así:

## Este es un comando hipotético y no funcionará en este entorno.
## Se muestra aquí solo con fines ilustrativos.
## policy-eval evaluate --image library/ubuntu:latest --organization library

Nuevamente, dado que no tenemos una herramienta específica de evaluación de políticas, verificaremos que la imagen ubuntu de la organización library esté presente localmente.

Utilice el comando docker images y filtre por ubuntu.

docker images | grep ubuntu

Debería ver una salida similar a esta, lo que confirma la presencia de la imagen ubuntu.

ubuntu        latest    <image_id>   <creation_time>   <size>

Esto indica que la imagen de la organización library está disponible para la evaluación de políticas. Evaluar políticas basadas en la organización es crucial para aplicar requisitos de seguridad y cumplimiento específicos de la organización.

Evaluar políticas contra una imagen con una plataforma específica

En este paso, aprenderá cómo evaluar políticas contra una imagen Docker creada para una plataforma específica. Las imágenes Docker se pueden crear para diferentes arquitecturas y sistemas operativos (plataformas), como linux/amd64, linux/arm64, windows/amd64, etc. Al evaluar políticas, es importante considerar la plataforma de destino de la imagen, ya que las vulnerabilidades y los requisitos de cumplimiento pueden variar según la plataforma.

Para demostrar esto, intentaremos descargar una imagen para una plataforma específica. Utilizaremos la imagen alpine, que es una distribución Linux ligera, y especificaremos la plataforma linux/arm64.

docker pull --platform linux/arm64 alpine

Debería ver una salida que indique el proceso de descarga para la plataforma especificada.

Using default tag: latest
latest: Pulling from library/alpine
...
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest

Aunque haya especificado linux/arm64, Docker puede descargar la imagen para la arquitectura de su host si está disponible una imagen multi-arquitectura y la plataforma especificada no tiene un manifiesto específico. Sin embargo, el comando demuestra cómo se intentaría descargar una imagen para una plataforma específica.

Al evaluar políticas para una plataforma específica, su herramienta de evaluación de políticas normalmente tendría una opción para especificar la plataforma de destino. Un comando hipotético podría ser así:

## Este es un comando hipotético y no funcionará en este entorno.
## Se muestra aquí solo con fines ilustrativos.
## policy-eval evaluate --image alpine:latest --platform linux/arm64

Para verificar que tiene una imagen alpine disponible localmente (independientemente de la arquitectura específica descargada por Docker), puede utilizar el comando docker images y filtrar por alpine.

docker images | grep alpine

Debería ver una salida similar a esta, lo que confirma la presencia de la imagen alpine.

alpine        latest    <image_id>   <creation_time>   <size>

Evaluar políticas basadas en la plataforma de la imagen es esencial para garantizar que sus imágenes cumplan con los requisitos y sean seguras para los entornos específicos donde se desplegarán. Diferentes plataformas pueden tener diferentes bibliotecas y configuraciones del sistema, lo que puede generar vulnerabilidades específicas de la plataforma.

Comparar resultados de políticas para un repositorio en un entorno específico

En este paso, aprenderá sobre el concepto de comparar los resultados de políticas para imágenes dentro de un repositorio, posiblemente en diferentes entornos. Aunque no podemos realizar comparaciones reales de políticas sin un motor de políticas dedicado, podemos entender el proceso y los requisitos previos.

Un "repositorio" en Docker se refiere a una colección de imágenes relacionadas, a menudo con diferentes etiquetas (como latest, 1.0, dev, etc.). Por ejemplo, el repositorio ubuntu en Docker Hub contiene varias versiones de la imagen de Ubuntu.

Comparar los resultados de políticas para un repositorio en un entorno específico generalmente implica:

  1. Evaluar políticas para múltiples imágenes dentro de ese repositorio.
  2. Considerar el entorno donde se desplegarán las imágenes (por ejemplo, desarrollo, pre-producción, producción). Diferentes entornos pueden tener diferentes requisitos de políticas.
  3. Analizar y comparar los informes de evaluación de políticas para las imágenes en el contexto del entorno de destino.

Para simular tener múltiples imágenes de un repositorio, descarguemos otra etiqueta de la imagen ubuntu. Descargaremos la etiqueta 20.04.

docker pull ubuntu:20.04

Debería ver una salida que indique la descarga de la imagen ubuntu:20.04.

20.04: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:20.04
docker.io/library/ubuntu:20.04

Ahora tiene dos imágenes del repositorio ubuntu: ubuntu:latest (que descargamos en un paso anterior) y ubuntu:20.04.

Para ver ambas imágenes, puede listar todas las imágenes ubuntu:

docker images | grep ubuntu

Debería ver una salida similar a esta, que muestra ambas etiquetas:

ubuntu        latest    <image_id_latest>   <creation_time_latest>   <size_latest>
ubuntu        20.04     <image_id_20.04>    <creation_time_20.04>    <size_20.04>

En un escenario real de comparación de políticas, evaluaría las políticas tanto contra ubuntu:latest como contra ubuntu:20.04. La herramienta de evaluación de políticas generaría informes para cada imagen. Luego, compararía estos informes, posiblemente filtrando o analizando los resultados en función de los requisitos de un entorno específico (por ejemplo, "políticas del entorno de producción").

Un comando hipotético para comparar los resultados de políticas podría ser así:

## Este es un comando hipotético y no funcionará en este entorno.
## Se muestra aquí solo con fines ilustrativos.
## policy-eval compare --repository ubuntu --environment production

Dado que no podemos realizar la comparación real, la verificación de este paso se centrará en garantizar que tenga disponibles localmente tanto la imagen ubuntu:latest como la ubuntu:20.04, que son las imágenes necesarias para tal comparación.

Resumen

En este laboratorio, aprendimos el proceso fundamental de evaluar políticas contra una imagen Docker específica. Comenzamos descargando una imagen de muestra, hello-world, para demostrar el requisito previo de tener la imagen localmente antes de la evaluación de políticas. Luego, simulamos el proceso de evaluación de políticas verificando la presencia de la imagen utilizando docker images. Este primer paso sentó las bases para entender cómo apuntar a una imagen específica para las comprobaciones de políticas.

A partir de la evaluación básica, exploramos cómo perfeccionar las comprobaciones de políticas teniendo en cuenta factores como la organización a la que pertenece la imagen y la plataforma específica para la que se creó. Finalmente, aprendimos cómo comparar los resultados de la evaluación de políticas para un repositorio en diferentes entornos, destacando la importancia del contexto en la aplicación de políticas y el cumplimiento.