Go-Pakete automatisch scannen

Hier erfahren Sie, wie Sie das automatische Scannen aktivieren, ein Container-Image in Artifact Registry pushen und eine Liste aller im Image gefundenen Sicherheitslücken aufrufen.

Die Artefaktanalyse scannt jedes Mal nach Sicherheitslücken, wenn ein Image in die Artifact Registry gepusht wird. Plattformadministratoren und Anwendungsentwickler können diese automatische Scanfunktion nutzen, um Risiken in ihrer Softwarebereitstellungspipeline zu identifizieren.

In dieser Kurzanleitung wird ein einfacher öffentlich verfügbarer Pakettyp verwendet, um eine Art von Paketprüfung zu demonstrieren. Wenn Sie die Scan-API aktivieren, wird standardmäßig nach Sicherheitslücken in mehreren Pakettypen gesucht. Zu den unterstützten Pakettypen gehören OS, Go, Java (Maven), Python und Node.js (npm).

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Artifact Registry and Container Scanning APIs:

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com
  7. Install the Google Cloud CLI.
  8. To initialize the gcloud CLI, run the following command:

    gcloud init
  9. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  10. Make sure that billing is enabled for your Google Cloud project.

  11. Enable the Artifact Registry and Container Scanning APIs:

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com

Artefaktanalyse scannt vorhandene Images nicht automatisch. Diese müssen noch einmal per Push übertragen werden, um sie zu scannen.

Docker-Repository in Artifact Registry erstellen

Erstellen Sie ein Docker-Repository zum Speichern des Beispiel-Images für diese Kurzanleitung.

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Klicken Sie auf Repository erstellen.

  3. Geben Sie auf der Seite Repository erstellen die folgenden Einstellungen ein:

    • Name: quickstart-docker-repo
    • Format: Docker
    • Modus: Standard
    • Standorttyp: Region
    • Region: us-central1
  4. Klicken Sie auf Erstellen.

Die Seite Repositories wird angezeigt. Ihr quickstart-docker-repo-Repository wird der Repository-Liste hinzugefügt.

Authentifizierung konfigurieren

Bevor Sie Images mit Artifact Registry hoch- oder herunterladen können, müssen Sie Docker so konfigurieren, dass die Google Cloud CLI zum Authentifizieren von Anfragen an Artifact Registry verwendet wird.

Richten Sie in der Cloud Shell oder in Ihrer lokalen Shell die Authentifizierung für Docker-Repositories in der Region us-central1 ein:

gcloud auth configure-docker us-central1-docker.pkg.dev

Paket abrufen

  1. Wechseln Sie in das Verzeichnis, in dem Sie das Container-Image speichern möchten.

  2. Kopieren Sie ein Bild in Ihr lokales Verzeichnis. Sie können beispielsweise Docker verwenden, um das neueste Go-Image von Docker Hub abzurufen.

    docker pull golang:1.17.6-alpine
    

Paket mit einem Repository-Namen taggen

Wenn Sie ein Paket in die Artifact Registry hochladen möchten, müssen Sie den Befehl docker push so konfigurieren, dass das Image an einen bestimmten Speicherort hochgeladen wird.

Führen Sie den folgenden Befehl aus, um das Image als quickstart-image:tag1 zu taggen:

docker tag golang:1.17.6-alpine \
us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

Wobei:

  • PROJECT ist Ihre Google Cloud-Projekt-ID. Wenn die Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.
  • us-central1 ist die Region des Artifact Registry-Repositorys.
  • docker.pkg.dev ist der Hostname für Docker-Repositories.
  • quickstart-image ist der Image-Name, der im Repository verwendet werden soll. Der Image-Name kann sich vom Image-Namen des lokalen Images unterscheiden.
  • tag1 ist ein Tag, das Sie dem Docker-Image hinzufügen. Wenn Sie kein Tag angegeben haben, wendet Docker das Standard-Tag latest an.

Image in Artifact Registry hochladen

Die Artefaktanalyse scannt neue Go-Pakete automatisch, wenn sie in Artifact Registry hochgeladen werden.

Führen Sie den folgenden Befehl aus, um Ihr Image in Ihr Docker-Repository in Artifact Registry zu übertragen:

docker push us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

Ersetzen Sie PROJECT durch Ihre Google Cloud-Projekt-ID. Wenn die Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.

Ergebnisse des Scans auf Sicherheitslücken ansehen

So rufen Sie die Sicherheitslücken in einem Bild auf:

  1. Liste der Repositories abrufen

    Zur Seite „Repositories“

  2. Klicken Sie in der Liste der Repositories auf ein Repository.

  3. Klicken Sie in der Bilderliste auf einen Bildnamen.

    Die Gesamtzahl der Sicherheitslücken für jeden Image-Digest wird in der Spalte Sicherheitslücken angezeigt.

    Screenshot eines Images mit Sicherheitslücken

  4. Wenn Sie die Liste der Sicherheitslücken für ein Image aufrufen möchten, klicken Sie auf den Link in der Spalte Vulnerabilities (Sicherheitslücken).

    Im Bereich Scanergebnisse finden Sie eine Zusammenfassung der gescannten Pakettypen, der Sicherheitslücken insgesamt, der Sicherheitslücken mit verfügbaren Lösungen, der Sicherheitslücken ohne Lösungen und des effektiven Schweregrads.

    Screenshot des Bereichs „Scanergebnisse“ mit Sicherheitslücken, Fehlerkorrekturen und effektivem Schweregrad

    In der Tabelle mit den Sicherheitslücken sind der CVE-Name (Common Vulnerabilities and Exposures) für jede gefundene Sicherheitslücke, der effektive Schweregrad, die CVSS-Punktzahl (Common Vulnerability Scoring System), Fehlerkorrekturen (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 bestimmten Dateityp anhand der Dateiendung zu prüfen.

    In der Google Cloud Console werden in dieser Tabelle bis zu 1.200 Sicherheitslücken angezeigt. Wenn Ihr Image mehr als 1.200 Sicherheitslücken aufweist, müssen Sie gcloud oder die API verwenden, um die vollständige Liste aufzurufen.

  5. Klicken Sie auf den Namen der CVE, um Details zu einer bestimmten CVE aufzurufen.

  6. Wenn Sie Details zum Vorkommen der Sicherheitslücke wie die Versionsnummer und den betroffenen Speicherort aufrufen möchten, klicken Sie in der Zeile mit dem Namen der Sicherheitslücke auf Anzeigen oder Behoben ansehen. Der Linktext lautet Anzeigen für Sicherheitslücken ohne Korrektur und Behoben ansehen für Sicherheitslücken, für die eine Korrektur angewendet wurde.

Bereinigen

Löschen Sie das Google Cloud-Projekt mit den Ressourcen, damit Ihrem Google Cloud-Konto die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden.

Wenn Sie ein neues Projekt für diesen Leitfaden erstellt haben, können Sie es jetzt löschen.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Nächste Schritte