Créer une application et afficher des insights sur la sécurité

Ce guide de démarrage rapide explique comment créer une application et afficher les insights de sécurité pour la compilation dans le panneau Security Insights (Insights de sécurité) de Software Delivery Shield dans la console Google Cloud.

Vous allez :

  • Créez et conteneurisez une application Java à l'aide de Cloud Build, puis transférez l'image de conteneur vers le dépôt Docker Artifact Registry.
  • Consultez les insights de sécurité suivants pour la compilation:

    • Niveaux de la chaîne d'approvisionnement pour les artefacts logiciels (SLSA) : identifie le niveau de maturité de votre processus de compilation logiciel conformément à la spécification SLSA .
    • Failles des artefacts de compilation.
    • Nomenclature logicielle (SBOM) pour les artefacts de compilation
    • La provenance de la compilation, qui est une collection de métadonnées vérifiables concernant une compilation. Il inclut des détails tels que les condensés des images compilées, les emplacements des sources d'entrée, la chaîne d'outils de compilation, les étapes de compilation et la durée de compilation.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. 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 gratuits pour exécuter, tester et déployer des charges de travail.
  2. Installez Google Cloud CLI.
  3. Pour initialiser gcloudCLI, exécutez la commande suivante :

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

    • Créez un projet Google Cloud :

      gcloud projects create PROJECT_ID

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

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

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre projet Google Cloud.

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

  6. Activer les API Cloud Build, Artifact Registry, and Container Scanning :

    gcloud services enable cloudbuild.googleapis.com  artifactregistry.googleapis.com  containerscanning.googleapis.com
  7. Installez Google Cloud CLI.
  8. Pour initialiser gcloudCLI, exécutez la commande suivante :

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

    • Créez un projet Google Cloud :

      gcloud projects create PROJECT_ID

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

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

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre projet Google Cloud.

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

  11. Activer les API Cloud Build, Artifact Registry, and Container Scanning :

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

Préparer votre environnement

  1. Définissez votre ID de projet en tant que variable d'environnement :

    export PROJECT_ID=$(gcloud config get project)
    
  2. Clonez le dépôt contenant l'exemple de code Java à compiler et à conteneuriser:

    git clone https://github.com/googlecloudplatform/software-delivery-shield-demo-java.git
    cd software-delivery-shield-demo-java/backend
    

Créer le dépôt Artifact Registry pour votre image

  1. Créez un dépôt Docker nommé containers à l'emplacement us-central1, avec comme description "dépôt Docker" :

    gcloud artifacts repositories create containers \
        --repository-format=docker \
        --location=us-central1 --description="Docker repository"
    
  2. Vérifiez que votre dépôt a bien été créé :

    gcloud artifacts repositories list
    

    containers devrait s'afficher dans la liste des dépôts affichés.

Compiler l'application

Créer et intégrer en conteneur l'application Java à l'aide de Cloud Build La commande suivante crée et conteneurise l'application Java, puis stocke le conteneur créé dans le dépôt Docker Artifact Registry:

gcloud builds submit --config=cloudbuild.yaml --region=us-central1

Une fois la compilation terminée, un message d'état de réussite semblable à celui-ci s'affiche:

<pre class="none lang-sh">
DONE
-----------------------------------------------------------------------------
ID: 3e08565f-7f57-4449-bc68-51c46cf33d03
CREATE_TIME: 2022-09-19T15:41:07+00:00
DURATION: 54S
SOURCE: gs://sds-docs-project_cloudbuild/source/1663602066.777581-6ebe4b2d6fd741ffa18936d7f78055e9.tgz
IMAGES: us-central1-docker.pkg.dev/sds-docs-project/containers/java-guestbook-backend:quickstart
STATUS: SUCCESS
</pre>

Générer un SBOM pour l'image compilée

Un SBOM est un inventaire complet d'une application, qui identifie les packages sur lesquels repose votre logiciel. Le contenu peut inclure des logiciels tiers de fournisseurs, des artefacts internes et des bibliothèques Open Source.

Générez le SBOM pour l'image que vous avez créée à la section précédente:

gcloud artifacts sbom export
    --uri=us-central1-docker.pkg.dev/${PROJECT_ID}/containers/java-guestbook-backend:quickstart

Afficher les insights sur la sécurité

L'interface utilisateur de Cloud Build dans la console Google Cloud contient le panneau Insights de sécurité de Software Delivery Shield. Celui-ci affiche des informations sur la sécurité liées au build, telles que le niveau SLSA, les failles dans les dépendances et la provenance de la compilation.

Pour afficher le panneau Informations sur la sécurité de Software Delivery Shield:

  1. Ouvrez la page Historique de compilation dans la console Google Cloud:

    Ouvrir la page "Historique de compilation"

  2. Sélectionnez votre projet et cliquez sur Ouvrir.

  3. Dans le menu déroulant Région, sélectionnez us-central1.

  4. Dans le tableau contenant les compilations, localisez la ligne contenant la compilation que vous venez d'exécuter.

  5. Dans la colonne Insights sur la sécurité, cliquez sur Afficher.

Le panneau Insights sur la sécurité s'affiche pour la compilation:

Capture d'écran du panneau Software Delivery Shield

Ce panneau affiche les informations suivantes:

  • Niveau SLSA:ce build a atteint le niveau SLSA 3 du programme. Cliquez sur le lien En savoir plus pour connaître la signification de ce niveau de sécurité.

  • Failles:toutes les failles détectées dans vos artefacts. Cliquez sur le nom de l'image (java-guestbook-backend) pour afficher les artefacts qui ont été analysés pour détecter les failles.

  • Dépendances pour l'image de conteneur créée dans Artifact Registry

  • Informations sur la compilation:détails de la compilation, tels que le compilateur et le lien pour afficher les journaux.

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.

  1. Désactivez l'API Container Scanning:

    gcloud services disable containerscanning.googleapis.com --force
    
  2. Supprimez le dépôt Artifact Registry:

    gcloud artifacts repositories delete containers \
        --location=us-central1 --async
    

    Vous avez maintenant supprimé le dépôt que vous avez créé dans ce guide de démarrage rapide.

Étapes suivantes