Analyser automatiquement les packages Node.js

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

Artifact Analysis recherche des 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 simple paquet public pour illustrer un type d'analyse de paquets. Par défaut, Artifact Analysis recherche des 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. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. 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.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Artifact Registry and Container Scanning APIs:

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com
  7. Install the Google Cloud CLI.
  8. To initialize the gcloud CLI, run the following command:

    gcloud init
  9. 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.

  10. Make sure that billing is enabled for your Google Cloud project.

  11. Enable the Artifact Registry and Container Scanning APIs:

    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 de 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 stocker 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 dans 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 Docker pour extraire bitnami.

    docker pull bitnami/express
    

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

Où :

  • PROJECT est votre ID de projet Google Cloud. Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.
  • us-central1 est 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 npm 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 l'ID de votre projet Google Cloud. 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 un nom d'image.

    Le nombre total de failles pour chaque récapitulatif 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 avec des correctifs 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 la gravité effective

    Le tableau des failles répertorie le nom de la faille CVE pour 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 console Google Cloud affiche au maximum 1 200 vulnérabilités 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 de l'occurrence de la faille, tels que le numéro de version et l'emplacement concerné, cliquez sur Afficher ou Afficher corrigé dans la ligne contenant le nom de la faille. Le texte du lien est Afficher pour les failles sans correctif et Afficher les failles corrigées pour les failles pour lesquelles un correctif a été appliqué.

Autres façons d'afficher les résultats

La console Google Cloud affiche au maximum 1 200 vulnérabilités. 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.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Étape suivante