Comment utiliser la commande docker scout policy pour évaluer les politiques d'images

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous apprendrez à utiliser la commande docker scout policy pour évaluer les politiques d'images. Vous explorerez différents scénarios d'évaluation de politiques, notamment l'évaluation des politiques par rapport à une image spécifique, l'évaluation des politiques pour une organisation spécifique, l'évaluation des politiques par rapport à une image avec une plateforme spécifique et la comparaison des résultats de politiques pour un dépôt dans un environnement spécifique.

Grâce à des exercices pratiques, vous acquerrez une expérience pratique dans l'utilisation de docker scout policy pour évaluer la conformité et la posture de sécurité de vos images Docker en fonction des politiques définies.


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{{"Comment utiliser la commande docker scout policy pour évaluer les politiques d'images"}} docker/images -.-> lab-555208{{"Comment utiliser la commande docker scout policy pour évaluer les politiques d'images"}} end

Évaluer les politiques par rapport à une image spécifique

Dans cette étape, vous apprendrez à évaluer les politiques par rapport à une image Docker spécifique. Il s'agit d'une opération fondamentale lorsqu'il s'agit de la sécurité et de la conformité des images. Nous utiliserons une image d'exemple simple pour démontrer le processus.

Tout d'abord, téléchargeons une image d'exemple que nous utiliserons pour l'évaluation. Nous utiliserons l'image hello-world de Docker Hub. Il s'agit d'une image très petite qui affiche simplement "Hello from Docker!" et se termine.

docker pull hello-world

Vous devriez voir un affichage indiquant que l'image est en cours de téléchargement.

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

Maintenant que nous avons l'image, nous pouvons évaluer les politiques par rapport à elle. La commande et l'outil spécifiques pour l'évaluation des politiques dépendront du moteur de politiques que vous utilisez. Pour le besoin de ce laboratoire, nous supposerons que vous utilisez un outil d'évaluation de politiques hypothétique appelé policy-eval.

Pour évaluer les politiques par rapport à l'image hello-world, vous exécuteriez généralement une commande similaire à celle-ci :

## Cette commande est hypothétique et ne fonctionnera pas dans cet environnement.
## Elle est présentée ici à titre illustratif seulement.
## policy-eval evaluate --image hello-world:latest

Étant donné que nous n'avons pas d'outil d'évaluation de politiques spécifique installé dans cet environnement, nous allons simuler le processus en vérifiant si l'image existe localement, ce qui est une condition préalable à l'évaluation.

Pour vérifier si l'image hello-world est présente sur votre système, vous pouvez utiliser la commande docker images et filtrer la sortie.

docker images | grep hello-world

Si l'image a été téléchargée avec succès, vous devriez voir une sortie similaire à celle-ci, affichant le dépôt, la balise, l'ID de l'image, la date de création et la taille de l'image hello-world.

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

Cela confirme que l'image est disponible pour l'évaluation des politiques. Dans un scénario réel, l'étape suivante serait d'exécuter la commande d'évaluation de politiques réelle en utilisant l'outil de votre choix.

Évaluer les politiques par rapport à une image d'une organisation spécifique

Dans cette étape, vous apprendrez à évaluer les politiques par rapport à une image Docker appartenant à une organisation spécifique. Dans le contexte de Docker Hub et d'autres registres de conteneurs, les images sont souvent organisées sous des espaces de noms d'utilisateurs ou d'organisations. Cela permet une meilleure gestion et un meilleur contrôle d'accès.

Pour démontrer cela, nous allons télécharger une image d'une organisation spécifique sur Docker Hub. Utilisons l'image ubuntu, qui est maintenue par l'organisation library (les images officielles).

docker pull ubuntu

Vous devriez voir un affichage indiquant la progression du téléchargement.

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

Notez que le nom de l'image est ubuntu, mais lorsqu'elle est téléchargée, elle est souvent référencée comme library/ubuntu. Cette partie library représente l'organisation. Lors de l'évaluation des politiques pour les images d'une organisation spécifique, vous spécifierez généralement le nom complet de l'image, y compris le nom de l'organisation.

De même que dans l'étape précédente, la commande exacte pour l'évaluation des politiques dépendra de votre moteur de politiques. Une commande hypothétique pourrait ressembler à ceci :

## Cette commande est hypothétique et ne fonctionnera pas dans cet environnement.
## Elle est présentée ici à titre illustratif seulement.
## policy-eval evaluate --image library/ubuntu:latest --organization library

Encore une fois, comme nous n'avons pas d'outil d'évaluation de politiques spécifique, nous allons vérifier que l'image ubuntu de l'organisation library est présente localement.

Utilisez la commande docker images et filtrez pour ubuntu.

docker images | grep ubuntu

Vous devriez voir une sortie similaire à celle-ci, confirmant la présence de l'image ubuntu.

ubuntu        latest    <image_id>   <creation_time>   <size>

Cela indique que l'image de l'organisation library est disponible pour l'évaluation des politiques. L'évaluation des politiques en fonction de l'organisation est cruciale pour appliquer les exigences de sécurité et de conformité spécifiques à l'organisation.

Évaluer les politiques par rapport à une image pour une plateforme spécifique

Dans cette étape, vous apprendrez à évaluer les politiques par rapport à une image Docker construite pour une plateforme spécifique. Les images Docker peuvent être construites pour différentes architectures et systèmes d'exploitation (plateformes), telles que linux/amd64, linux/arm64, windows/amd64, etc. Lors de l'évaluation des politiques, il est important de prendre en compte la plateforme cible de l'image, car les vulnérabilités et les exigences de conformité peuvent varier selon les plateformes.

Pour démontrer cela, nous allons essayer de télécharger une image pour une plateforme spécifique. Nous utiliserons l'image alpine, qui est une distribution Linux légère, et spécifierons la plateforme linux/arm64.

docker pull --platform linux/arm64 alpine

Vous devriez voir un affichage indiquant le processus de téléchargement pour la plateforme spécifiée.

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

Même si vous avez spécifié linux/arm64, Docker peut télécharger l'image pour l'architecture de votre hôte si une image multi-architecture est disponible et que la plateforme spécifiée n'a pas de manifeste spécifique. Cependant, la commande montre comment vous pourriez essayer de télécharger pour une plateforme spécifique.

Lors de l'évaluation des politiques pour une plateforme spécifique, votre outil d'évaluation de politiques aura généralement une option pour spécifier la plateforme cible. Une commande hypothétique pourrait ressembler à ceci :

## Cette commande est hypothétique et ne fonctionnera pas dans cet environnement.
## Elle est présentée ici à titre illustratif seulement.
## policy-eval evaluate --image alpine:latest --platform linux/arm64

Pour vérifier que vous avez une image alpine disponible localement (indépendamment de l'architecture spécifique téléchargée par Docker), vous pouvez utiliser la commande docker images et filtrer pour alpine.

docker images | grep alpine

Vous devriez voir une sortie similaire à celle-ci, confirmant la présence de l'image alpine.

alpine        latest    <image_id>   <creation_time>   <size>

L'évaluation des politiques en fonction de la plateforme de l'image est essentielle pour garantir que vos images sont conformes et sécurisées pour les environnements spécifiques où elles seront déployées. Différentes plateformes peuvent avoir des bibliothèques système et des configurations différentes, entraînant des vulnérabilités spécifiques à la plateforme.

Comparer les résultats des politiques pour un dépôt dans un environnement spécifique

Dans cette étape, vous apprendrez le concept de comparaison des résultats des politiques pour les images au sein d'un dépôt, éventuellement dans différents environnements. Bien que nous ne puissions pas effectuer de comparaisons réelles de politiques sans un moteur de politiques dédié, nous pouvons comprendre le processus et les conditions préalables.

Un "dépôt" (repository) dans Docker fait référence à une collection d'images liées, souvent avec différentes étiquettes (tags) (comme latest, 1.0, dev, etc.). Par exemple, le dépôt ubuntu sur Docker Hub contient diverses versions de l'image Ubuntu.

La comparaison des résultats des politiques pour un dépôt dans un environnement spécifique implique généralement :

  1. L'évaluation des politiques pour plusieurs images au sein de ce dépôt.
  2. La prise en compte de l'environnement où les images seront déployées (par exemple, développement, pré - production, production). Différents environnements peuvent avoir des exigences de politiques différentes.
  3. L'analyse et la comparaison des rapports d'évaluation des politiques pour les images dans le contexte de l'environnement cible.

Pour simuler la présence de plusieurs images d'un dépôt, téléchargeons une autre étiquette de l'image ubuntu. Nous allons télécharger l'étiquette 20.04.

docker pull ubuntu:20.04

Vous devriez voir un affichage indiquant le téléchargement de l'image ubuntu:20.04.

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

Maintenant, vous avez deux images du dépôt ubuntu : ubuntu:latest (que nous avons téléchargée dans une étape précédente) et ubuntu:20.04.

Pour voir les deux images, vous pouvez lister toutes les images ubuntu :

docker images | grep ubuntu

Vous devriez voir une sortie similaire à celle - ci, montrant les deux étiquettes :

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

Dans un scénario réel de comparaison de politiques, vous évalueriez les politiques à la fois pour ubuntu:latest et ubuntu:20.04. L'outil d'évaluation des politiques générerait des rapports pour chaque image. Vous compareriez ensuite ces rapports, éventuellement en filtrant ou en analysant les résultats en fonction des exigences d'un environnement spécifique (par exemple, "politiques de l'environnement de production").

Une commande hypothétique pour comparer les résultats des politiques pourrait ressembler à ceci :

## Cette commande est hypothétique et ne fonctionnera pas dans cet environnement.
## Elle est présentée ici à titre illustratif seulement.
## policy-eval compare --repository ubuntu --environment production

Étant donné que nous ne pouvons pas effectuer la comparaison réelle, la vérification pour cette étape se concentrera sur la garantie que vous avez à la fois les images ubuntu:latest et ubuntu:20.04 disponibles localement, qui sont les images nécessaires pour une telle comparaison.

Résumé

Dans ce laboratoire, nous avons appris le processus fondamental d'évaluation des politiques par rapport à une image Docker spécifique. Nous avons commencé par télécharger une image d'exemple, hello-world, pour démontrer la condition préalable d'avoir l'image localement avant l'évaluation des politiques. Nous avons ensuite simulé le processus d'évaluation des politiques en vérifiant la présence de l'image à l'aide de la commande docker images. Cette étape initiale a jeté les bases pour comprendre comment cibler une image spécifique pour les vérifications de politiques.

En nous appuyant sur l'évaluation de base, nous avons exploré comment affiner les vérifications de politiques en tenant compte de facteurs tels que l'organisation à laquelle appartient l'image et la plateforme spécifique pour laquelle elle a été construite. Enfin, nous avons appris à comparer les résultats d'évaluation des politiques pour un dépôt (repository) dans différents environnements, soulignant l'importance du contexte dans l'application des politiques et la conformité.