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

Ce guide de démarrage rapide vous explique comment créer une application et afficher les insights de sécurité associés à cette compilation dans le panneau Insights sur la sécurité de la console Google Cloud .

Vous découvrirez comment :

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

    • Le niveau SLSA (Supply-chain Levels for Software Artifacts), qui identifie le niveau de maturité de votre processus de compilation logicielle selon la spécification SLSA .
    • Failles dans les artefacts de compilation.
    • Nomenclature logicielle (SBOM) pour les artefacts de compilation.
    • La provenance du build, qui est une collection de métadonnées vérifiables concernant un build. Il inclut des détails tels que les condensés des images compilées, les emplacements de la source d'entrée, la chaîne d'outils de compilation, les étapes de compilation et la durée de compilation.

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 à la gcloud CLI avec votre identité fédérée.

  4. Pour initialiser la gcloud CLI, 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 Cloud Build, Artifact Registry, and Container Scanning APIs:

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

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

  10. Pour initialiser la gcloud CLI, 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 Cloud Build, Artifact Registry, and Container Scanning APIs:

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

      Vous devriez voir containers dans la liste des dépôts affichés.

    Compiler l'application

    Créez et conteneurisez l'application Java à l'aide de Cloud Build. La commande suivante crée et intègre l'application Java dans un conteneur, 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 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 une SBOM pour l'image créée

    Une SBOM est un inventaire complet d'une application, qui identifie les packages sur lesquels votre logiciel s'appuie. Les contenus peuvent inclure des logiciels tiers provenant de fournisseurs, des artefacts internes et des bibliothèques Open Source.

    Générez la SBOM pour l'image que vous avez créée dans 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 Cloud Build de la console Google Cloud contient le panneau Insights de sécurité, qui affiche des informations de sécurité liées à la compilation, telles que le niveau SLSA, les éventuelles failles dans les dépendances et la provenance de la compilation.

    Pour afficher le panneau Insights sur la sécurité :

    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 des builds, recherchez la ligne correspondant au build 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é de la compilation s'affiche :

    Ce panneau affiche les informations suivantes :

    • Niveau SLSA : cette compilation a atteint le niveau 3 de SLSA. Cliquez sur le lien En savoir plus pour en savoir plus sur 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 le build : détails de la compilation, tels que le compilateur et le lien permettant d'afficher les journaux.

    Effectuer un nettoyage

    Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre compte Google Cloud , supprimez le projet Google Cloud qui les contient.

    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 le cadre de ce démarrage rapide.

    Étapes suivantes