In diesem Dokument wird beschrieben, wie Sie eine Software Bill of Materials (SBOM) erstellen und speichern, in der die Abhängigkeiten in Ihren Container-Images aufgeführt sind.
Wenn Sie Container-Images in Artifact Registry speichern und mit der Artefaktanalyse auf Sicherheitslücken scannen, können Sie mit der Google Cloud CLI eine SBOM generieren.
Informationen zur Verwendung des Scannens auf Sicherheitslücken finden Sie unter Automatisches Scannen und Preise.
Bei der Artefaktanalyse werden SBOMs in Cloud Storage gespeichert. Weitere Informationen zu den Kosten für Cloud Storage finden Sie unter Preise.
Hinweis
-
Melden Sie sich bei Ihrem Google-Konto an.
Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.
-
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.-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
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.-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init - Erstellen Sie ein Docker-Repository in Artifact Registry und übertragen Sie ein Container-Image per Push in das Repository. Wenn Sie mit Artifact Registry nicht vertraut sind, lesen Sie die Docker-Kurzanleitung.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Storage Admin (roles/storage.admin) für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Cloud Storage-Buckets und zum Hochladen von SBOM-Dateien benötigen.
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.
SBOM-Datei generieren
Verwenden Sie den folgenden Befehl, um eine SBOM-Datei zu generieren:
gcloud artifacts sbom export --uri=LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_NAME
Wo
- LOCATION ist der Speicherort des Artifact Registry-Repositorys.
- PROJECT_ID ist die ID des Projekts, das das Artifact Registry-Repository enthält.
- REPOSITORY ist der Name des Artifact Registry-Repositorys, das das Image enthält.
- IMAGE_NAME ist der Name des Images. Bilder können entweder im Tag-Format oder im Digest-Format vorliegen. Bilder, die im Tag-Format angegeben werden, werden in das Digest-Format aufgelöst.
Bei der Artefaktanalyse wird Ihre SBOM in Cloud Storage gespeichert. Wenn Sie noch keinen Cloud Storage-Bucket für dieselbe Region wie Ihr Image haben, wird von Cloud Storage einer mit dem Namen artifactanalysis-<var>REGION</var>-<var>PROJECT_NUMBER</var> erstellt und Ihre SBOM wird an diesen Bucket gesendet. Zusätzliche SBOMs in dieser Region werden an denselben Bucket gesendet.
Sie können SBOMs über die Google Cloud Console oder die 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.
SBOM ohne Scannen auf Sicherheitslücken erstellen
Wenn Sie eine SBOM generieren möchten, aber kein fortlaufendes Scannen auf Sicherheitslücken für Ihr Projekt wünschen, können Sie trotzdem eine SBOM exportieren, wenn Sie die Container Scanning API aktivieren, bevor Sie das Image in Artifact Registry übertragen. Nachdem Ihr Image per Push in Artifact Registry übertragen wurde und Sie eine SBOM exportiert haben, müssen Sie die Container Scanning API deaktivieren, um zu verhindern, dass Ihnen weitere Scans auf Sicherheitslücken in Rechnung gestellt werden.