Crea un'applicazione e visualizza insight sulla sicurezza
Questa guida rapida spiega come creare un'applicazione e visualizzare insight sulla sicurezza per la build nel riquadro Insight sulla sicurezza nella console Google Cloud .
Imparerai a:
- Crea e containerizza un'applicazione Java utilizzando Cloud Build ed esegui il push dell'immagine container nel repository Docker di Artifact Registry.
Visualizza i seguenti insight sulla sicurezza per la build:
- Livello Supply-chain Levels for Software Artifacts (SLSA), che identifica il livello di maturità del processo di compilazione del software in conformità con la specifica SLSA .
- Vulnerabilità negli artefatti della build.
- Software Bill of Materials (SBOM) per gli artefatti di build.
- Provenienza della build, ovvero una raccolta di metadati verificabili su una build. Include dettagli come i digest delle immagini create, le posizioni delle origini di input, la toolchain di build, i passaggi di build e la durata della build.
Prima di iniziare
- 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.
-
Install the Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init
-
Create or select 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Artifact Registry, and Container Scanning APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable cloudbuild.googleapis.com
artifactregistry.googleapis.com containerscanning.googleapis.com -
Install the Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init
-
Create or select 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Artifact Registry, and Container Scanning APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable cloudbuild.googleapis.com
artifactregistry.googleapis.com containerscanning.googleapis.com Imposta l'ID progetto come variabile di ambiente:
export PROJECT_ID=$(gcloud config get project)
Clona il repository che contiene il esempio di codice Java da compilare e inserire in un container:
git clone https://github.com/googlecloudplatform/software-delivery-shield-demo-java.git cd software-delivery-shield-demo-java/backend
Crea un nuovo repository Docker denominato
containers
nella localitàus-central1
con la descrizione "Docker repository" (Repository Docker):gcloud artifacts repositories create containers \ --repository-format=docker \ --location=us-central1 --description="Docker repository"
Verifica che il repository sia stato creato:
gcloud artifacts repositories list
Dovresti vedere
containers
nell'elenco dei repository visualizzati.Apri la pagina Cronologia build nella console Google Cloud :
Seleziona il progetto e fai clic su Apri.
Nel menu a discesa Regione, seleziona us-central1.
Nella tabella con le build, individua la riga con la build che hai appena eseguito.
Nella colonna Approfondimenti sulla sicurezza, fai clic su Visualizza.
Livello SLSA: questa build ha raggiunto il livello SLSA 3. Fai clic sul link Scopri di più per scoprire cosa significa questo livello di sicurezza.
Vulnerabilità:eventuali vulnerabilità trovate negli artefatti. Fai clic sul nome dell'immagine (java-guestbook-backend) per visualizzare gli artefatti scansionati per rilevare le vulnerabilità.
Dipendenze per l'immagine container creata in Artifact Registry.
Dettagli build:dettagli della build, ad esempio il builder e il link per visualizzare i log.
Disabilita l'API Container Scanning:
gcloud services disable containerscanning.googleapis.com --force
Elimina il repository Artifact Registry:
gcloud artifacts repositories delete containers \ --location=us-central1 --async
Hai eliminato il repository che hai creato nell'ambito di questa guida rapida.
- Scopri di più sul riquadro degli insight sulla sicurezza in Cloud Build
- Scopri come visualizzare gli approfondimenti sulla sicurezza durante il deployment su Cloud Run
- Scopri come visualizzare gli approfondimenti sulla sicurezza durante il deployment su GKE
- Scopri di più sulla sicurezza della catena di fornitura del software
prepara l'ambiente
Crea il repository Artifact Registry per l'immagine
Crea l'applicazione
Crea e containerizza l'applicazione Java utilizzando Cloud Build. Il seguente comando compila e inserisce in un container l'applicazione Java e memorizza il container compilato nel repository Docker di Artifact Registry:
gcloud builds submit --config=cloudbuild.yaml --region=us-central1
Al termine della build, viene visualizzato un messaggio di stato di operazione riuscita simile al seguente:
<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>
Genera una SBOM per l'immagine creata
Una SBOM è un inventario completo di un'applicazione che identifica i pacchetti da cui dipende il tuo software. I contenuti possono includere software di terze parti di fornitori, artefatti interni e librerie open source.
Genera la SBOM per l'immagine creata nella sezione precedente:
gcloud artifacts sbom export \
--uri=us-central1-docker.pkg.dev/${PROJECT_ID}/containers/java-guestbook-backend:quickstart
Visualizza insight sulla sicurezza
L'interfaccia utente di Cloud Build nella console Google Cloud contiene il riquadro Approfondimenti sulla sicurezza che mostra le informazioni sulla sicurezza relative alla build, come il livello SLSA, eventuali vulnerabilità nelle dipendenze e la provenienza della build.
Per visualizzare il pannello Approfondimenti sulla sicurezza:
Viene visualizzato il riquadro Insight sulla sicurezza per la build:
Questo riquadro mostra le seguenti informazioni:
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, elimina il progetto Google Cloud con le risorse.