Carica SBOM

Questa pagina descrive come caricare un file di distinta materiali software (SBOM) in Cloud Storage per monitorare e attestare i componenti delle immagini container che memorizzi in Artifact Registry.

Per informazioni sui prezzi di Cloud Storage, consulta la pagina Prezzi.

Prima di iniziare

  1. Accedi al tuo Account Google.

    Se non ne hai già uno, registrati per creare un nuovo account.

  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 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 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. Avere un repository Docker in Artifact Registry con l'immagine container descritta dalla SBOM. Se non hai dimestichezza con Artifact Registry, consulta la guida rapida di Docker.
  15. Prepara un file SBOM da caricare in uno dei formati supportati.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare e gestire bucket Cloud Storage e file SBOM, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

  • Se utilizzi il bucket Cloud Storage predefinito, per gestire i bucket di archiviazione: Storage Admin(roles/storage.admin)
  • Se specifichi un bucket Cloud Storage, per gestire i bucket di archiviazione: Storage Object Admin(roles/storage.objectAdmin)
  • Se esiste già una nota per il riferimento SBOM: Container Analysis Notes Attacher (roles/containeranalysis.notes.attacher)
  • Per creare una nuova nota per le occorrenze di riferimento SBOM nel progetto corrente: Editor delle note di Container Analysis((roles/containeranalysis.notes.editor)
  • Per creare un'occorrenza di riferimento SBOM: Editor delle occorrenze di Container Analysis(roles/containeranalysis.occurrences.editor)

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.

Formati supportati

Il file SBOM deve essere un file JSON in uno dei seguenti formati:

Caricare la SBOM

Utilizza il seguente comando per caricare l'SBOM:

gcloud artifacts sbom load /
    --source SOURCE /
    --uri URI

Dove:

  • SOURCE: il percorso del file SBOM da caricare.
  • URI: l'URI dell'immagine Docker descritta dal file SBOM. Le immagini possono essere in formato tag o digest. Le immagini fornite nel formato tag verranno risolte nel formato digest.

Flag facoltativi

  • --destination: specifica un bucket Cloud Storage da utilizzare al posto di quello predefinito.
  • --kms-key-version: fornisce una versione della chiave per firmare il payload dell'occorrenza del riferimento SBOM. Puoi utilizzare questa chiave per verificare l'origine della SBOM.

Ad esempio, il seguente comando carica un file JSON my-sbom.bom.json generato dall'immagine taggata us-east1-docker.pkg.dev/my-image-repo/my-image e firma l'occorrenza del riferimento SBOM con la versione della chiave KMS che termina con my-key/cryptoKeyVersions/1.

gcloud artifacts sbom load /
--source=my-sbom.bom.json
--uri=us-east1-docker.pkg.dev/my-image-repo/my-image
--kms-key-version=projects/my-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-key/cryptoKeyVersions/1

Il seguente comando carica un file JSON my-sbom.spdx.json associato al digest dell'immagine my-local-image@sha256:abcxyz e lo archivia nel bucket Cloud Storage gs://my-sbom-bucket.

gcloud artifacts sbom load /
    --source=my-sbom.spdx.json /
    --uri=my-local-image@sha256:abcxyz /
    --destination=gs://my-sbom-bucket

Artifact Analysis carica la tua SBOM in Cloud Storage e crea un'occorrenza di riferimento della SBOM.

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.

Passaggi successivi