Analyser automatiquement les packages Python

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 déploiement de logiciels.

Ce guide de démarrage rapide utilise un package simple et 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. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

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

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

    gcloud init
  5. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Artifact Registry and Container Scanning APIs:

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com
  8. Install the Google Cloud CLI.

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

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

    gcloud init
  11. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  12. Verify that billing is enabled for your Google Cloud project.

  13. Enable the Artifact Registry and Container Scanning APIs:

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com
  14. 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 console Google Cloud .

      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. Accédez au répertoire dans lequel vous souhaitez enregistrer votre image de conteneur.

    2. Copiez une image dans votre répertoire local. Par exemple, vous pouvez utiliser TensorFlow. Cette image contient Python et présente des failles.

    L'objectif de ce guide est uniquement d'analyser une image et d'afficher les résultats. Aucune connaissance préalable de TensorFlow n'est requise.

    Exécutez la commande suivante pour obtenir l'image :

    docker pull amancevice/pandas:1.2.5-jupyter
    

    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 amancevice/pandas:1.2.5-jupyter \
    us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

    Où :

    • PROJECT est l' Google Cloud ID de votre 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 est le nom d'hôte des dépôts Docker.
    • quickstart-image est le 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 nouveaux packages Python dans les images de conteneurs lorsqu'ils sont importés dans Artifact Registry.

    Pour transférer votre 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. Obtenez la liste des dépôts.

      Ouvrir la page "Dépôts"

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

    3. Dans la liste des images, cliquez sur le nom d'une image.

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

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

    4. Pour afficher la liste des failles d'une image, cliquez sur le lien dans la colonne Vulnerabilities (Failles).

      La section Résultats de l'analyse affiche un récapitulatif des types de packages analysés, du nombre total de failles, des failles pour lesquelles des correctifs sont disponibles, des failles sans correctifs et de la gravité effective.

      Capture d'écran de la section "Résultats de l'analyse" avec les failles, les correctifs et le niveau de gravité effectif

      Le tableau des failles répertorie le nom CVE (Common Vulnerabilities and Exposures) de chaque faille détectée, la gravité effective, le score CVSS (Common Vulnerability Scoring System), les correctifs (le cas échéant), le nom du package contenant la faille et le type de package.

      Vous pouvez filtrer et trier ces fichiers pour vérifier un fichier, un répertoire ou un type de fichier spécifique par extension de fichier.

      La consoleGoogle Cloud affiche jusqu'à 1 200 failles dans ce tableau. Si votre image comporte plus de 1 200 failles, vous devez utiliser gcloud ou l'API pour afficher la liste complète.

    5. Pour en savoir plus sur une faille CVE spécifique, cliquez sur son nom.

    6. Pour afficher les détails d'une occurrence de faille, tels que le numéro de version et l'emplacement concerné, cliquez sur Afficher ou Afficher corrigée dans la ligne contenant le nom de la faille. Le texte du lien est Afficher pour les failles sans correctif et Afficher les correctifs pour les failles auxquelles un correctif a été appliqué.

    Autres façons d'afficher les résultats

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

    Effectuer un nettoyage

    Pour éviter que les ressources utilisées sur cette page ne soient facturées sur votre compte Google Cloud , supprimez le projet Google Cloud contenant les ressources.

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

      Delete a Google Cloud project:

      gcloud projects delete PROJECT_ID

    Étapes suivantes