Analyser automatiquement les packages de système d'exploitation

Découvrez comment activer l'analyse automatique, transférer une image de conteneur sur Artifact Registry et afficher la liste des failles détectées dans l'image.

Artifact Analysis recherche les failles chaque fois qu'une image est transférée vers Artifact Registry. Les administrateurs de plate-forme et les développeurs d'applications peuvent utiliser cette fonctionnalité d'analyse automatique pour identifier les risques dans leur pipeline de livraison de logiciels.

Ce guide de démarrage rapide utilise un package simple accessible au public pour illustrer un type d'analyse de package. Par défaut, Artifact Analysis recherche les failles dans plusieurs types de packages une fois que vous avez activé l'API d'analyse. Les types de packages compatibles incluent : OS, Go, Java (Maven), Python et Node.js (npm).

Avant de commencer

  1. Connectez-vous à votre Google Cloud compte. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  2. Installez la Google Cloud CLI.

  3. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  4. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  5. Créez ou sélectionnez un Google Cloud projet.

    Rôles requis pour sélectionner ou créer un projet

    • Sélectionner un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
    • Créer un projet : pour créer un projet, vous avez besoin du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.
    • Créez un Google Cloud projet :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du Google Cloud projet que vous créez.

    • Sélectionnez le Google Cloud projet que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre Google Cloud projet.

  6. Vérifiez que la facturation est activée pour votre Google Cloud projet.

  7. Activez les API Artifact Registry et Container Scanning :

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin), qui contient l' serviceusage.services.enable autorisation. Découvrez comment attribuer des rôles.

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com
  8. Installez la Google Cloud CLI.

  9. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  10. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  11. Créez ou sélectionnez un Google Cloud projet.

    Rôles requis pour sélectionner ou créer un projet

    • Sélectionner un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
    • Créer un projet : pour créer un projet, vous avez besoin du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.
    • Créez un Google Cloud projet :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du Google Cloud projet que vous créez.

    • Sélectionnez le Google Cloud projet que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre Google Cloud projet.

  12. Vérifiez que la facturation est activée pour votre Google Cloud projet.

  13. Activez les API Artifact Registry et Container Scanning :

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin), qui contient l' serviceusage.services.enable autorisation. Découvrez comment attribuer des rôles.

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com

Créer un dépôt Docker dans Artifact Registry

Créez un dépôt Docker pour stocker l'exemple d'image fourni dans ce guide de démarrage rapide.

  1. Ouvrez la page Dépôts dans la Google Cloud console.

    Ouvrir la page "Dépôts"

  2. Cliquez sur Créer un dépôt.

  3. Sur la page Créer un dépôt, saisissez les paramètres suivants :

    • Nom : quickstart-docker-repo
    • Format: Docker
    • Mode: Standard
    • Type d'emplacement : Région
    • Région : us-central1
  4. Cliquez sur Créer.

La page Dépôts s'affiche. Votre dépôt quickstart-docker-repo est ajouté à la liste des dépôts.

Configurer l'authentification

Avant de pouvoir transférer ou extraire des images avec Artifact Registry, vous devez configurer Docker afin qu'il se serve de la Google Cloud CLI pour authentifier les requêtes envoyées à Artifact Registry.

Dans Cloud Shell ou votre shell local, configurez l'authentification pour les dépôts Docker dans la région us-central1 :

gcloud auth configure-docker us-central1-docker.pkg.dev

Obtenir un package

  1. Définissez le répertoire dans lequel vous souhaitez enregistrer votre image de conteneur.

  2. Copiez votre image dans votre répertoire local. Par exemple, vous pouvez utiliser Docker pour extraire la dernière image Ubuntu de Docker Hub.

    docker pull ubuntu:latest
    

Ajouter un tag de nom de dépôt à votre package

Lorsque vous souhaitez transférer un package vers Artifact Registry, vous devez configurer la commande docker push pour transférer l'image vers un emplacement spécifique.

Exécutez la commande suivante pour ajouter des tags à l'image en tant que quickstart-image:tag1 :

docker tag ubuntu:latest \
us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

  • PROJECT correspond à votre Google Cloud ID de projet. Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.
  • us-central1 correspond à la région du dépôt Artifact Registry.
  • docker.pkg.dev correspond au nom d'hôte des dépôts Docker.
  • quickstart-image correspond au nom d'image que vous souhaitez utiliser dans le dépôt. Le nom de l'image peut être différent du nom de l'image locale.
  • tag1 est un tag que vous ajoutez à l'image Docker. Si vous ne spécifiez pas de tag, Docker applique le tag par défaut latest.

Transférer l'image vers Artifact Registry

Artifact Analysis analyse automatiquement les nouvelles images au fur et à mesure de leur téléchargement dans Artifact Registry.

Pour transférer l'image vers votre dépôt Docker dans Artifact Registry, exécutez la commande suivante :

docker push us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

Remplacez PROJECT par votre Google Cloud ID de projet. Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.

Afficher les résultats de l'analyse des failles

Pour afficher les failles d'une image :

  1. Ouvrez la liste de vos dépôts Artifact Registry dans la console Artifact Analysis.

    Ouvrir la page "Dépôts"

  2. Dans la liste des dépôts, cliquez sur un dépôt.

  3. Cliquez sur un nom d'image.

    Une liste des condensés de votre image s'affiche.

    Le nombre total de failles pour chaque condensé d'image est affiché dans la colonne Vulnerabilities (Failles).

    Capture d'écran d'une image avec des failles

  4. Cliquez sur le nombre total de failles associé dans la colonne Vulnerabilities (Failles).

    Une liste des failles s'affiche.

    Capture d'écran d'une liste d'images et d'informations sur les failles

    La liste des failles indique le nombre de fois où cette image a été analysée, les niveaux de gravité des failles, la disponibilité d'un correctif, le nom du package contenant la faille et le type de package.

  5. Pour en savoir plus sur une faille spécifique à partir de la source de la faille, cliquez sur l'identifiant CVE associé dans la colonne Name (Nom).

Autres façons d'afficher les résultats

La Google Cloud console affiche jusqu'à 1 200 failles. Si votre image comporte plus de 1 200 failles, utilisez gcloud ou l'API pour afficher la liste complète.

Effectuer un nettoyage

Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre Google Cloud compte pour les ressources utilisées sur cette page, supprimez le Google Cloud projet qui les contient.

Si vous avez créé un projet pour ce guide, vous pouvez maintenant le supprimer.

  1. Dans la Google Cloud console, accédez à la page Gérer les ressources.

    Accéder à la page "Gérer les ressources"

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez Arrêter pour supprimer le projet.

Étape suivante