In diesem Dokument wird erläutert, wie Sie die Container Scanning API aktivieren, ein Image per Push in Artifact Registry übertragen und die Liste der im Image gefundenen Sicherheitslücken aufrufen.
In der Artefaktanalyse werden Informationen zu Sicherheitslücken als Hinweise gespeichert. Für jede mit einem Image verknüpfte Instanz eines Hinweises wird ein Vorkommen erstellt. Weitere Informationen finden Sie in den Übersichts und Preisdokumenten.
Hinweis
- Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Konto bei Google Cloudhaben, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
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 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.enablepermission. 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 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.enablepermission. 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 Repository in Artifact Registry und übertragen Sie ein Paket mit Ihrem Anwendungscode per Push in das Repository. Wenn Sie nicht mit der Verwaltung von Paketen in Artifact Registry vertraut sind, lesen Sie die folgenden Themen:
Wenn Sie diese API aktivieren, wird auch das Scannen von Sprachpaketen in Artifact Registry aktiviert. Unterstützte Pakettypen
Paketsicherheitslücken ansehen
Die Artefaktanalyse scannt neue Pakete, sobald sie in Artifact Registry hochgeladen werden. Bei diesem Scan werden Informationen zum Paket und seinen Abhängigkeiten extrahiert.
Sie können Vorkommen von Sicherheitslücken für Ihre Images in Artifact Registry mit der Google Cloud Console, der Google Cloud CLI oder der Container Analysis API ansehen. Wenn ein Image Sicherheitslücken aufweist, können Sie dann die Details abrufen.
Die Artefaktanalyse scannt Images und Pakete so lange, wie sie in den letzten 30 Tagen abgerufen wurden. Nach 30 Tagen werden die Metadaten für gescannte Images und Pakete nicht mehr aktualisiert und die Ergebnisse sind veraltet.
Die Artefaktanalyse archiviert Metadaten, die seit mehr als 90 Tagen veraltet sind. Diese archivierten Metadaten können nur mit der API ausgewertet werden. Sie können ein Image mit veralteten oder archivierten Metadaten noch einmal scannen, indem Sie es per Pull abrufen. Das Aktualisieren der Metadaten kann bis zu 24 Stunden dauern. Pakete mit veralteten oder archivierten Metadaten können nicht noch einmal gescannt werden.
Vorkommen in der Google Cloud Console ansehen
So sehen Sie die Sicherheitslücken in einem Paket:
Rufen Sie die Liste der Repositories ab.
Klicken Sie in der Liste der Repositories auf ein Repository.
Klicken Sie in der Liste der Pakete auf einen Paketnamen.
Alle Sicherheitslücken für jedes Paket werden in der Spalte Vulnerabilities (Sicherheitslücken) angezeigt.

Wenn Sie die Liste der Sicherheitslücken für ein Paket aufrufen möchten, klicken Sie auf den Link in der Spalte Vulnerabilities (Sicherheitslücken).
Im Abschnitt Scan results (Scanergebnisse) wird eine Zusammenfassung der gescannten Pakettypen, der Gesamtzahl der Sicherheitslücken, der Sicherheitslücken mit verfügbaren Korrekturen, der Sicherheitslücken ohne Korrekturen und des effektiven Schweregrads angezeigt.

In der Tabelle der Sicherheitslücken sind für jede gefundene Sicherheitslücke der Name der häufigen Sicherheitslücke (Common Vulnerabilities and Exposures , CVE), der effektive Schweregrad, der CVSS-Score (Common Vulnerability Scoring System), Korrekturen (falls verfügbar), der Name des Pakets, das die Sicherheitslücke enthält, und der Pakettyp aufgeführt. Sie können diese Dateien filtern und sortieren, um eine bestimmte Datei, ein bestimmtes Verzeichnis, oder einen Dateityp nach Dateierweiterung zu prüfen. Google Cloud In dieser Tabelle werden in derConsole bis zu 1.200 Sicherheitslücken pro Seite angezeigt.
Klicken Sie auf den CVE-Namen, um Details zu einem bestimmten CVE aufzurufen.
Wenn Sie Details zu Vorkommen von Sicherheitslücken wie Versionsnummer und betroffener Speicherort aufrufen möchten, klicken Sie in der Zeile mit dem Namen der Sicherheitslücke auf View (Ansehen) oder View Fixed (Korrigiert ansehen). Der Linktext ist View (Ansehen) für Sicherheitslücken ohne Korrektur und View Fixed (Korrigiert ansehen) für Sicherheitslücken, bei denen eine Korrektur angewendet wurde.
Vorkommen mit gcloud ansehen
Führen Sie den
gcloud artifacts versions describe
Befehl aus, um Vorkommen für Pakete in Artifact Registry aufzurufen:
gcloud artifacts versions describe VERSION \
--location=LOCATION --repository=REPOSITORY --package=PACKAGE --show-package-vulnerability
Wobei:
- VERSION ist die Version des Pakets, für das Sie Vorkommen ansehen.
- LOCATION ist der regionale oder multiregionale Speicherort für das Repository.
- REPOSITORY ist der Name des Repositorys, in dem das Paket gespeichert ist.
- PACKAGE ist der Name des Pakets im Repository. Mit diesem Befehl können Sie kein Paket-Tag angeben.
Vorkommen mit der API ansehen
So rufen Sie eine Liste der Vorkommen in Ihrem Projekt ab:
curl -X GET -H "Content-Type: application/json" -H \
"Authorization: Bearer $(gcloud auth print-access-token)" \
https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences
So erhalten Sie eine Zusammenfassung der Sicherheitslücken in Ihrem Projekt:
curl -X GET -H "Content-Type: application/json" -H \
"Authorization: Bearer $(gcloud auth print-access-token)" \
https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences:vulnerabilitySummary
So rufen Sie Details zu einem bestimmten Vorkommen ab:
curl -X GET -H "Content-Type: application/json" -H \
"Authorization: Bearer $(gcloud auth print-access-token)" \
https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences/OCCURRENCE_ID
Vorkommen filtern
Mit Filterstrings in den gcloud-Befehlen und der Artifact Analysis API können Sie Vorkommen vor dem Aufrufen filtern. In den folgenden Abschnitten werden die unterstützten Suchfilter beschrieben.
Vorkommen eines bestimmten Typs ansehen
Mit dem Wert kind können Sie nach Vorkommenstyp filtern. Verfügbare
Arten
Die folgenden Beispiele zeigen, wie Sie Vorkommen von Paketsicherheitslücken filtern:
gcloud
Das Filtern von Vorkommen wird in der Google Cloud CLI für das paketbasierte Scannen nicht unterstützt.
API
Verwenden Sie in Ihrer API-Abfrage den folgenden Filterausdruck:
kind="PACKAGE_VULNERABILITY" AND resourceUrl="RESOURCE_URL"
Wobei:
PACKAGE_VULNERABILITYist die Art des Vorkommens.- RESOURCE_URL ist die vollständige URL des Pakets im Format
projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY_ID/packages/PACKAGE_ID/PACKAGE_TYPE/VERSION_ID:- PROJECT_ID ist Ihre Google Cloud Console Projekt-ID.
- LOCATION ist der regionale oder multiregionale Speicherort für das Repository.
- REPOSITORY ist der Name des Repositorys, in dem das Image gespeichert ist.
- PACKAGE_ID ist der Name des Pakets, in dem das Image gespeichert ist.
- PACKAGE_TYPE ist der Pakettyp der Anwendungssprache.
Verfügbare Typen sind:
pythonPackages,mavenArtifactsundnpmPackages. - VERSION ist die Versionsnummer des Pakets.
Mit der Funktion hasPrefix können Sie mit einem größeren Umfang filtern.
Die folgenden Filter filtern beispielsweise nach Vorkommen einer bestimmten Art für mehrere Versionen desselben Pakets:
kind="NOTE_KIND" AND has_prefix(resourceUrl, "RESOURCE_URL_PREFIX")
Wobei:
- RESOURCE_URL_PREFIX gibt eine Teilstring aus einer Ressourcen-URL an.
- Wenn Sie nach allen Versionen eines Pakets filtern möchten, lassen Sie die Version weg. Verwenden Sie das Format:
projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY_ID - Wenn Sie nach allen Paketen in einem Projekt filtern möchten, geben Sie nur den Ressourcenstandort und das Projekt an. Verwenden Sie das Format:
projects/PROJECT_ID/locations/LOCATION
- Wenn Sie nach allen Versionen eines Pakets filtern möchten, lassen Sie die Version weg. Verwenden Sie das Format:
Vorkommen von Sicherheitslücken ansehen
Sie können Listen von Vorkommen von Sicherheitslücken mit der gcloud CLI oder der Artifact Analysis API ansehen.
gcloud
Verwenden Sie das Flag --show-package-vulnerability, um eine Liste der Vorkommen von Sicherheitslücken für ein Paket abzurufen:
gcloud artifacts versions describe VERSION_ID --repository=REPOSITORY_ID
--package=GROUP_ID:ARTIFACT_ID --show-package-vulnerability
Wobei:
- VERSION ist die Versionsnummer des Pakets.
- REPOSITORY ist der Name des Repositorys, in dem das Paket gespeichert ist.
- GROUP_ID ist die Gruppen-ID Ihres Pakets.
- ARTIFACT_ID ist die Artefakt-ID Ihres Pakets.
API
Verwenden Sie in Ihrer API-Abfrage den folgenden Filterausdruck:
GET https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences?filter=kind%3D%22VULNERABILITY%22%20AND%20resourceUrl%3D%22ENCODED_RESOURCE_URL%22
Wobei:
- ENCODED_RESOURCE_URL ist der codierte Pfad zu Ihrem Image. Informationen zur Codierung finden Sie unter URL-Codierung.
Weitere Informationen zur Verwendung der API finden Sie unter
projects.occurrences.get.
Images ansehen, die einem bestimmten Hinweis zugeordnet sind
Sie können eine Liste von Ressourcen abrufen, die einer bestimmten Hinweis-ID zugeordnet sind. So können Sie beispielsweise Images mit einer bestimmten CVE-Sicherheitslücke auflisten.
Verwenden Sie den folgenden Filterausdruck, um alle Images in einem Projekt aufzulisten, die einem bestimmten Hinweis zugeordnet sind:
gcloud
Das Filtern von Vorkommen wird in der Google Cloud CLI für das paketbasierte Scannen nicht unterstützt.
API
GET https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences?filter=noteProjectId%3D%22goog-vulnz%22%20AND%20resourceUrl%3D%22ENCODED_RESOURCE_URL%22%20AND%20noteId%3D%22NOTE_ID%22
Wobei:
goog-vulnzist diePROVIDER_PROJECT_IDfür die Sicherheitslückenanalyse der Artefaktanalyse. Wenn Sie die Artefaktanalyse in einem benutzerdefinierten Projekt verwenden, können Sie diesen Wert durch Ihre eigene Anbieterprojekt-ID ersetzen.- ENCODED_RESOURCE_URL ist der codierte Pfad zu Ihrem Image. Informationen zur Codierung finden Sie unter URL-Codierung.
- NOTE_ID ist die ID des Hinweises. Wenn Sie beispielsweise eine
Sicherheitslücke in den Scanergebnissen der Artefaktanalyse sehen, wird häufig
eine
CVE-ID-Formatierung ähnlich
CVE-2019-12345verwendet.
Mit dem folgenden Filterausdruck können Sie ein bestimmtes Image auf einen konkreten Hinweis prüfen:
gcloud
Das Filtern von Vorkommen wird in der Google Cloud CLI für das paketbasierte Scannen nicht unterstützt.
API
Fügen Sie in Ihrer API-Abfrage den folgenden Filterausdruck hinzu:
resourceUrl="RESOURCE_URL" AND noteProjectId="goog-vulnz" \ AND noteId="NOTE_ID"
Wobei:
- RESOURCE_URL ist die vollständige URL des Pakets im Format
projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY_ID/packages/PACKAGE_ID/PACKAGE_TYPE/VERSION_ID. goog-vulnzist diePROVIDER_PROJECT_IDfür die Sicherheitslückenanalyse der Artefaktanalyse.- NOTE_ID ist die ID des Hinweises. Sicherheitsrelevante Hinweise werden häufig als
CVE-2019-12345formatiert.
Nächste Schritte
- Verwenden Sie Pub/Sub-Benachrichtigungen, um Benachrichtigungen zu Sicherheitslücken und anderen Metadaten zu erhalten.