Questo documento descrive come creare e archiviare una distinta materiali software (SBOM) che elenca le dipendenze nelle immagini container.
Quando memorizzi le immagini container in Artifact Registry e le analizzi per rilevare vulnerabilità con Artifact Analysis, puoi generare un SBOM utilizzando Google Cloud CLI.
Per informazioni sull'utilizzo dell'analisi delle vulnerabilità, consulta Analisi automatica e Prezzi.
Artifact Analysis archivia le SBOM in Cloud Storage. Per maggiori informazioni sui costi di Cloud Storage, consulta la pagina Prezzi.
Prima di iniziare
-
Accedi al tuo Account Google.
Se non ne hai già uno, registrati per creare un nuovo account.
-
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 Artifact Registry, Container Analysis, Container Scanning APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.-
Installa 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 -
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 Artifact Registry, Container Analysis, Container Scanning APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.-
Installa 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 - Crea un repository Docker in Artifact Registry ed esegui il push di un'immagine container nel repository. Se non hai familiarità con Artifact Registry, consulta la Guida rapida per Docker.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire i bucket Cloud Storage e caricare i file SBOM, chiedi all'amministratore di concederti il ruolo IAM Storage Admin (roles/storage.admin) nel progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Generare un file SBOM
Per generare un file SBOM, utilizza il seguente comando:
gcloud artifacts sbom export --uri=LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_NAME
Dove
- LOCATION è la posizione del repository Artifact Registry.
- PROJECT_ID è l'ID del progetto che contiene il repository Artifact Registry.
- REPOSITORY è il nome del repository Artifact Registry che contiene l'immagine.
- IMAGE_NAME è il nome dell'immagine. Le immagini possono essere in formato tag o riepilogo. Le immagini fornite nel formato tag verranno risolte nel formato digest.
Artifact Analysis archivia la tua SBOM in Cloud Storage. Se non hai ancora un bucket Cloud Storage per la stessa regione dell'immagine, Cloud Storage ne crea uno per te con il nome artifactanalysis-<var>REGION</var>-<var>PROJECT_NUMBER</var> e invia la SBOM a questo bucket. Le SBOM aggiuntive in quella regione vengono inviate allo stesso
bucket.
Puoi visualizzare le SBOM utilizzando la console Google Cloud o gcloud CLI. Se vuoi individuare il bucket Cloud Storage che contiene le tue SBOM, devi cercare le SBOM utilizzando gcloud CLI.
Genera una SBOM senza analisi delle vulnerabilità
Se vuoi generare una SBOM, ma non vuoi eseguire la scansione continua delle vulnerabilità per il tuo progetto, puoi comunque esportare una SBOM se abiliti l'API Container Scanning prima di eseguire il push dell'immagine in Artifact Registry. Dopo che l'immagine è stata trasferita ad Artifact Registry e hai esportato una SBOM, devi disabilitare l'API Container Scanning per evitare che ti venga addebitato un costo per ulteriori analisi delle vulnerabilità.