Einführung in Software Delivery Shield

In diesem Dokument wird beschrieben, wie Sie APIs für Software Delivery Shield aktivieren und die erforderlichen Berechtigungen zum Ansehen von Sicherheitsinformationen erteilen. Software Delivery Shield ist eine vollständig verwaltete Sicherheitslösung für die Softwarelieferkette in Google Cloud.

Für Statistiken erforderliche APIs aktivieren

Zum Erfassen und Aufrufen von Informationen zur Softwarelieferkette sind die folgenden APIs erforderlich:

  • Container Analysis API zum Speichern von Metadaten, die von anderen Google Cloud-Diensten generiert und verwendet werden.
  • Container Scanning API zum Scannen von in Artifact Registry gespeicherten Container-Images auf Sicherheitslücken und andere Metadaten Wenn Sie diese API aktivieren, wird die Container Analysis API automatisch aktiviert.
  • Artifact Registry zum Speichern Ihrer Build-Artefakte. 1
  • Cloud Build zum Generieren von Build-Herkunftsmetadaten
  • (Nur GKE) Container Security API zum Scannen laufender Arbeitslasten auf Sicherheitslücken des Betriebssystems.

Sie müssen die Container Scanning API im selben Google Cloud-Projekt wie Artifact Registry ausführen. Sie können andere Google Cloud-Dienste ausführen, die die Registry in separaten Projekten verwenden.

1 Container Registry wird von der Container Scanning API automatisch aktiviert. Software Delivery Shield bietet begrenzte Daten zu vorhandenen Funktionen und unterstützt einige Funktionen in der privaten Vorschau nicht. Wenn Sie derzeit Container Registry verwenden, sollten Sie auf Artifact Registry umstellen.

So aktivieren Sie APIs, die zum Generieren und Aufrufen von Statistiken erforderlich sind:

Console

Alle Dienste im selben Projekt verwenden

Aktivieren Sie die erforderlichen APIs zusammen.

Aktivieren Sie die APIs

Separate Projekte verwenden

  1. Aktivieren Sie Container Scanning und Artifact Registry in dem Projekt, in dem Sie Artifact Registry ausführen möchten.

    Aktivieren Sie die APIs

  2. Aktivieren Sie die Cloud Build API in Projekten, in denen Sie Cloud Build ausführen.

    Cloud Build aktivieren

  3. Aktivieren Sie die Container Security API in Projekten, in denen Sie GKE ausführen.

    Containersicherheit aktivieren

Google Cloud CLI

Alle Dienste im selben Projekt verwenden

Aktivieren Sie die erforderlichen APIs zusammen.

gcloud services enable containerscanning.googleapis.com \
    cloudbuild.googleapis.com \
    artifactregistry.googleapis.com \
    containersecurity.googleapis.com

Separate Projekte verwenden

  1. Aktivieren Sie Container Scanning und Artifact Registry in dem Projekt, in dem Sie Artifact Registry ausführen möchten. Ersetzen Sie AR_PROJECT durch die entsprechende Google Cloud-Projekt-ID.

    gcloud services enable containerscanning.googleapis.com \
        artifactregistry.googleapis.com \
        --project=AR_PROJECT
    
  2. Aktivieren Sie die Cloud Build API in Projekten, in denen Sie Cloud Build ausführen. Ersetzen Sie BUILD_PROJECT durch die entsprechende Google Cloud-Projekt-ID.

    gcloud services enable cloudbuild.googleapis.com \
        --project=BUILD_PROJECT
    
  3. Aktivieren Sie die Container Security API in Projekten, in denen Sie GKE ausführen. Ersetzen Sie GKE_PROJECT durch die entsprechende Google Cloud-Projekt-ID.

    gcloud services enable containersecurity.googleapis.com \
         --project=BUILD_PROJECT
    

Sie haben die erforderlichen Mindest-APIs aktiviert, um Statistiken in Software Delivery Shield-Feldern und im GKE-Sicherheitsstatus-Dashboard in der Google Cloud Console zu generieren und aufzurufen.

Sie können APIs für andere Dienste über die API-Bibliothek oder den Befehl gcloud services enable aktivieren.

Berechtigungen zum Aufrufen von Statistiken erteilen

Sie benötigen die folgenden Rollen oder eine Rolle mit entsprechenden Berechtigungen, um Software Delivery Shield-Statistiken in der Google Cloud Console aufzurufen:

Diese Berechtigungen bieten Zugriff auf Statistiken, jedoch keine Berechtigungen für andere Aktionen wie das Ausführen von Builds in Cloud Build.

  • Weitere Informationen zu den erforderlichen Berechtigungen für einen bestimmten Dienst finden Sie in der Dokumentation des jeweiligen Dienstes.
  • Informationen zum Gewähren von Berechtigungen finden Sie in der Dokumentation zu Identity and Access Management unter Projekten Berechtigungen gewähren.

Viele Dienste haben standardmäßig Berechtigungen für andere Dienste im selben Projekt, können aber nicht auf Ressourcen in einem anderen Projekt zugreifen. Wenn Sie Dienste in verschiedenen Google Cloud-Projekten ausführen oder benutzerdefinierte IAM-Rollen oder benutzerdefinierte Dienstkonten verwenden, müssen Sie die entsprechenden Berechtigungen selbst erteilen.

Beispiel 1

Cloud Build, Artifact Registry, Container Analysis und Cloud Run werden alle im selben Projekt ausgeführt. Jeder Dienst verwendet das Standarddienstkonto, um im Namen des Dienstes zu handeln. Die Standardberechtigungen bleiben unverändert. Die Dienste können alle zusammen verwendet werden, ohne dass Berechtigungen geändert werden müssen. Sie müssen jedoch Nutzern, die Statistiken im Projekt sehen sollen, Berechtigungen erteilen.

Berechtigungen zwischen Diensten

Es sind keine Änderungen erforderlich:

  • Das standardmäßige Cloud Build-Dienstkonto hat Berechtigungen zum Hochladen und Herunterladen mit Artifact Registry sowie zum Lesen von Statistikdaten aus Container Analysis, damit der Dienst Container-Images mit Build-Herkunft signieren und an Artifact Registry übertragen kann.
  • Cloud Run-Überarbeitungen verwenden das Compute Engine-Standarddienstkonto für Bereitstellungen, das Berechtigungen zum Herunterladen von Images aus Artifact Registry und zum Lesen von Statistikdaten aus Container Analysis hat.
Nutzerberechtigungen zum Ansehen von Statistiken

Sie müssen Nutzern von Cloud Build und Cloud Run die erforderlichen Rollen gewähren, um Statistiken anzusehen.

Beispiel 2

Wenn Artifact Registry und Container Analysis in einem separaten Projekt ausgeführt werden, müssen Sie Berechtigungen für alle projektübergreifenden Aktivitäten explizit von anderen Google Cloud-Diensten gewähren. Sehen Sie sich die folgende Projekteinrichtung an:

  • Cloud Build wird in Projekt A ausgeführt
  • Artifact Registry und Container Analysis werden in Projekt B ausgeführt
  • Cloud Run wird in Projekt C ausgeführt
Berechtigungen zwischen Diensten

Cloud Build und Cloud Run können nicht auf Ressourcen in anderen Projekten zugreifen, ohne ihnen explizit Zugriff auf die Dienstkonten zu gewähren, die im Namen dieser Dienste handeln. Sie müssen die entsprechenden Artifact Registry-Berechtigungen und Container Analysis-Berechtigungen in Projekt B erteilen, in dem die Artefakte und Artefaktmetadaten gespeichert sind.

Für Cloud Build müssen Sie die folgenden Rollen in Projekt B gewähren:

  • Artifact Registry Writer (roles/artifactregistry.writer) gewährt Berechtigungen zum Hochladen und Herunterladen.
  • Der Betrachter von Container Analysis-Ereignissen (roles/containeranalysis.occurrences.viewer) gewährt Berechtigungen zum Anzeigen von Statistiken.

Für Cloud Run müssen Sie diese Rollen in Projekt B gewähren:

  • Der Artifact Registry-Leser (roles/artifactregistry.reader) gewährt Berechtigungen zum Herunterladen für Deployments.
  • Der Betrachter von Container Analysis-Ereignissen (roles/containeranalysis.occurrences.viewer) gewährt Berechtigungen zum Anzeigen von Statistiken.
Nutzerberechtigungen zum Ansehen von Statistiken

In Projekt B müssen Sie Nutzern von Cloud Build und Cloud Run die erforderlichen Rollen für Datenansichten zuweisen.

Nächste Schritte