Générer et stocker des SBOM

Ce document explique comment créer et stocker une nomenclature logicielle (SBOM) listant les dépendances dans vos images de conteneur.

Lorsque vous stockez des images de conteneurs dans Artifact Registry et que vous les analysez pour détecter d'éventuelles failles avec Artifact Analysis, vous pouvez générer un SBOM à l'aide de la Google Cloud CLI.

Pour en savoir plus sur l'utilisation de l'analyse des failles, consultez Analyse automatique et Tarifs.

Artifact Analysis stocke les SBOM dans Cloud Storage. Pour en savoir plus sur les coûts de Cloud Storage, consultez la page Tarifs.

Avant de commencer

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  4. Enable the Artifact Registry, Container Analysis, Container Scanning APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

    gcloud init
  8. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  10. Enable the Artifact Registry, Container Analysis, Container Scanning APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  13. To initialize the gcloud CLI, run the following command:

    gcloud init
  14. Créez un dépôt Docker dans Artifact Registry et transférez-y une image de conteneur. Si vous ne connaissez pas Artifact Registry, consultez le guide de démarrage rapide Docker.

Rôles requis

Pour obtenir les autorisations nécessaires pour gérer les buckets Cloud Storage et importer des fichiers SBOM, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Storage (roles/storage.admin) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Générer un fichier SBOM

Pour générer un fichier SBOM, utilisez la commande suivante :

gcloud artifacts sbom export --uri=LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_NAME

Où

  • LOCATION correspond à l'emplacement du dépôt Artifact Registry.
  • PROJECT_ID est l'ID du projet contenant le dépôt Artifact Registry.
  • REPOSITORY est le nom du dépôt Artifact Registry contenant l'image.
  • IMAGE_NAME correspond au nom de l'image. Les images peuvent être au format de tag ou au format de hachage. Les images fournies au format de tag seront converties au format de condensé.

Artifact Analysis stocke votre SBOM dans Cloud Storage. Si vous n'avez pas encore de bucket Cloud Storage pour la même région que votre image, Cloud Storage en crée un pour vous avec le nom artifactanalysis-<var>REGION</var>-<var>PROJECT_NUMBER</var> et y envoie votre SBOM. Les autres SBOM de cette région sont envoyés au même bucket.

Vous pouvez afficher les SBOM à l'aide de la console Google Cloud ou de gcloud CLI. Si vous souhaitez localiser le bucket Cloud Storage contenant vos SBOM, vous devez rechercher les SBOM à l'aide de la gcloud CLI.

Générer un SBOM sans analyse des failles

Si vous souhaitez générer une SBOM, mais que vous ne voulez pas d'analyse continue des failles pour votre projet, vous pouvez toujours exporter une SBOM si vous activez l'API Container Scanning avant d'envoyer l'image à Artifact Registry. Une fois votre image transférée vers Artifact Registry et après avoir exporté un SBOM, vous devez désactiver l'API Container Scanning pour éviter d'être facturé pour d'autres analyses de failles.

Étapes suivantes