Analyser manuellement les packages Go
Ce guide de démarrage rapide vous explique comment extraire une image de conteneur, l'analyser manuellement avec l'analyse à la demande et récupérer les failles identifiées pour les packages système et Go. Pour suivre ce guide de démarrage rapide, vous utiliserez Cloud Shell et un exemple d'image Alpine.
Avant de commencer
- Connectez-vous à votre Google Cloud compte. Si vous n'avez jamais utilisé Google Cloud, créez un compte pour évaluer les performances de nos produits dans des scénarios réels. 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the On-Demand Scanning API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the On-Demand Scanning API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Télécharger et analyser une image
Ouvrez une fenêtre Cloud Shell pour le projet.
Un terminal s'ouvre avec tous les outils nécessaires pour suivre ce guide.
Utilisez Docker pour extraire l'image de conteneur :
docker pull golang:1.17.6-alpineExécutez l'analyse :
gcloud artifacts docker images scan golang:1.17.6-alpine --additional-package-types=GOCela déclenche le processus d'analyse et renvoie le nom de l'analyse une fois terminé :
✓ Scanning container image ✓ Locally extracting packages and versions from local container image ✓ Remotely initiating analysis of packages and versions ✓ Waiting for analysis operation to complete [projects/my-project/locations/us/operations/849db1f8-2fb2-4559-9fe0-8720d8cd347c] Done. done: true metadata: '@type': type.googleapis.com/google.cloud.ondemandscanning.v1.AnalyzePackagesMetadata createTime: '2022-01-11T16:58:11.711487Z' resourceUri: golang:1.16.13-alpine name: projects/my-project/locations/us/operations/f4adb1f8-20b2-4579-9fe0-8720d8cd347c response: '@type': type.googleapis.com/google.cloud.ondemandscanning.v1.AnalyzePackagesResponse scan: projects/my-project/locations/us/scans/a54f12b0-ca2d-4d93-8da5-5cf48e9e20ef
Utilisez le nom de l'analyse, la valeur de
scandans la sortie, pour récupérer les résultats de l'analyse :gcloud artifacts docker images list-vulnerabilities \ projects/my-project/locations/us/scans/a54f12b0-ca2d-4d93-8da5-5cf48e9e20efLa sortie contient une liste de failles de packages Go, de la bibliothèque standard Go et de Linux. Les libellés suivants indiquent le type de failles Go :
packageType:GO_STDLIB: failles de la bibliothèque standard Go. Cela indique que la faille a été détectée dans la chaîne d'outils Go utilisée pour créer le binaire ou dans la bibliothèque standard fournie avec la chaîne d'outils. Une solution possible consiste à mettre à niveau votre chaîne d'outils de compilation.packageType:GO: failles de packages Go. Cela indique que la faille a été détectée dans un package tiers. Une solution possible consiste à mettre à niveau vos modules dépendants.
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, procédez comme suit :
- Dans la Google Cloud console, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez Arrêter pour supprimer le projet.