SBOMs hochladen

Auf dieser Seite wird beschrieben, wie Sie eine Datei mit einer Software-Materialliste (Software Bill of Materials, SBOM) in Cloud Storage hochladen, um die Komponenten von Container-Images, die Sie in Artifact Registry speichern, zu verfolgen und zu bestätigen.

Informationen zu den Preisen für Cloud Storage finden Sie unter Preise.

Hinweis

  1. Melden Sie sich in Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  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. Sie benötigen ein Docker-Repository in Artifact Registry mit dem Container-Image, das in Ihrer SBOM beschrieben wird. Wenn Sie mit Artifact Registry nicht vertraut sind, lesen Sie die Docker-Kurzanleitung.
  15. Halten Sie eine SBOM-Datei in einem der unterstützten Formate zum Hochladen bereit.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen und Verwalten von Cloud Storage-Buckets und SBOM-Dateien benötigen:

  • Wenn Sie den standardmäßigen Cloud Storage-Bucket verwenden, benötigen Sie zum Verwalten von Speicher-Buckets die Rolle „Storage-Administrator“ (roles/storage.admin).
  • Wenn Sie einen Cloud Storage-Bucket angeben, benötigen Sie zum Verwalten von Speicher-Buckets die Rolle „Storage-Objekt-Administrator“ (roles/storage.objectAdmin).
  • Wenn bereits ein Hinweis für die SBOM-Referenz vorhanden ist: Container Analysis Notes Attacher (roles/containeranalysis.notes.attacher)
  • So erstellen Sie einen neuen Hinweis für SBOM-Referenzvorkommen im aktuellen Projekt: Bearbeiter von Container Analysis-Hinweisen((roles/containeranalysis.notes.editor)
  • So erstellen Sie ein SBOM-Referenzvorkommen: Bearbeiter von Container Analysis-Vorkommen(roles/containeranalysis.occurrences.editor)

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Unterstützte Formate

Ihre SBOM-Datei muss eine JSON-Datei in einem der folgenden Formate sein:

SBOM hochladen

Verwenden Sie den folgenden Befehl, um Ihre SBOM hochzuladen:

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

Wobei:

  • SOURCE: der Pfad zur hochzuladenden SBOM-Datei.
  • URI: Der URI für das Docker-Image, das in der SBOM-Datei beschrieben wird. Bilder können entweder im Tag- oder im Digest-Format vorliegen. Im Tag-Format bereitgestellte Images werden in das Digest-Format aufgelöst.

Optionale Flags

  • --destination: Gibt einen Cloud Storage-Bucket an, der anstelle des Standard-Buckets verwendet werden soll.
  • --kms-key-version: Stellt eine Schlüsselversion zum Signieren der Nutzlast der SBOM-Referenz-Occurrence bereit. Mit diesem Schlüssel können Sie den Ursprung der SBOM überprüfen.

Mit dem folgenden Befehl wird beispielsweise eine JSON-Datei my-sbom.bom.json hochgeladen, die aus dem getaggten Bild us-east1-docker.pkg.dev/my-image-repo/my-image generiert wurde, und das SBOM-Referenzvorkommen wird mit der KMS-Schlüsselversion signiert, die mit my-key/cryptoKeyVersions/1 endet.

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

Mit dem folgenden Befehl wird eine JSON-Datei my-sbom.spdx.json hochgeladen, die mit dem Bild-Digest my-local-image@sha256:abcxyz verknüpft ist, und die Datei wird im Cloud Storage-Bucket gs://my-sbom-bucket gespeichert.

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

Die Artefaktanalyse lädt Ihre SBOM in Cloud Storage hoch und erstellt ein Referenzvorkommen für die SBOM.

Sie können SBOMs mit der Google Cloud Console oder der gcloud CLI aufrufen. Wenn Sie den Cloud Storage-Bucket mit Ihren SBOMs finden möchten, müssen Sie mit der gcloud CLI nach SBOMs suchen.

Nächste Schritte