Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Anwendung in GKE bereitstellen und Sicherheitsstatistiken aufrufen

Hier erfahren Sie, wie Sie einen absichtlich anfälligen Container in einem GKE-Cluster bereitstellen und im Dashboard für den Sicherheitsstatus sicherheitsrelevante Informationen über die Sicherheitslücken erhalten. Das Dashboard für den GKE-Sicherheitsstatus zeigt Informationen zu bekannten Sicherheitslücken des Betriebssystems an. Weitere Informationen zum Scannen von Sprachen auf Sicherheitslücken in Go- oder Java-Paketen finden Sie unter Anwendung erstellen und Sicherheitsinformationen ansehen.

Lernziele

  • Mit Cloud Build eine containerisierte Anwendung erstellen und per Push an Artifact Registry übertragen
  • Bereitstellungspipeline in Google Cloud Deploy erstellen.
  • Anwendung in einem Staging-GKE-Cluster bereitstellen und in einen Produktionscluster hochstufen
  • Informationen zu Sicherheitslücken in der bereitgestellten Anwendung können Sie sich über das Sicherheitsstatus-Dashboard in der Google Cloud Console ansehen.

Hinweis

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, 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.
  2. Installieren und initialisieren Sie Google Cloud CLI.
  3. Google Cloud-Projekt erstellen oder auswählen.

    • Cloud-Projekt erstellen:

      gcloud projects create PROJECT_ID
    • Wählen Sie das von Ihnen erstellte Cloud-Projekt aus:

      gcloud config set project PROJECT_ID
  4. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.

  5. Aktivieren Sie die Artifact Registry, Cloud Build, Google Cloud Deploy, Google Kubernetes Engine, Container Security, and Container Analysis APIs:

    gcloud services enable artifactregistry.googleapis.comcloudbuild.googleapis.comclouddeploy.googleapis.comcontainer.googleapis.comcontainersecurity.googleapis.com containeranalysis.googleapis.com
  6. Installieren und initialisieren Sie Google Cloud CLI.
  7. Google Cloud-Projekt erstellen oder auswählen.

    • Cloud-Projekt erstellen:

      gcloud projects create PROJECT_ID
    • Wählen Sie das von Ihnen erstellte Cloud-Projekt aus:

      gcloud config set project PROJECT_ID
  8. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.

  9. Aktivieren Sie die Artifact Registry, Cloud Build, Google Cloud Deploy, Google Kubernetes Engine, Container Security, and Container Analysis APIs:

    gcloud services enable artifactregistry.googleapis.comcloudbuild.googleapis.comclouddeploy.googleapis.comcontainer.googleapis.comcontainersecurity.googleapis.com containeranalysis.googleapis.com

Nach Abschluss dieser Anleitung können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.

Umgebung vorbereiten

  1. Legen Sie Ihre Projekt-ID als Umgebungsvariable fest:

    export PROJECT_ID=$(gcloud config get project)
    
  2. Legen Sie die Google Cloud-Standardregion für Google Cloud Deploy fest:

    gcloud config set deploy/region us-central1
    
  3. Klonen Sie das GitHub-Repository, das den Beispielcode für diese Aufgabe enthält:

    git clone https://github.com/googlecloudplatform/software-delivery-shield-demo-java.git
    cd ~/software-delivery-shield-demo-java/backend
    
  4. IAM-Dienstkonto für GKE erstellen

    Zu verwendende Cluster:

    gcloud iam service-accounts create sds-runtime \
        --display-name="SDS with GKE service account"
    
  5. Gewähren Sie dem IAM-Dienstkonto Berechtigungen:

    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member=serviceAccount:sds-runtime@${PROJECT_ID}.iam.gserviceaccount.com \
        --role="roles/container.nodeServiceAccount"
    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member=serviceAccount:sds-runtime@${PROJECT_ID}.iam.gserviceaccount.com \
        --role="roles/clouddeploy.jobRunner"
    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member=serviceAccount:sds-runtime@${PROJECT_ID}.iam.gserviceaccount.com \
        --role="roles/container.developer"
    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member=serviceAccount:sds-runtime@${PROJECT_ID}.iam.gserviceaccount.com \
        --role="roles/artifactregistry.reader"
    
  6. Gewähren Sie dem Compute Engine-Standarddienstkonto Zugriff auf GKE-Cluster. Google Cloud Deploy verwendet diesen Zugriff, um Anwendungen auf den Clustern in Ihrer Bereitstellungspipeline bereitzustellen.

    PROJECT_NUMBER="$(gcloud projects describe ${PROJECT_ID} --format='get(projectNumber)')"
    gcloud projects add-iam-policy-binding ${PROJECT_NUMBER} \
        --member=serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com \
        --role=roles/container.developer
    

Artifact Registry-Repository für das Image erstellen

  1. Im Folgenden wird gezeigt, wie Sie das Repository anlegen.

    gcloud artifacts repositories create containers \
        --repository-format=docker \
        --location=us-central1 \
        --description="SDS with GKE repository"
    
  2. Prüfen Sie, ob das Repository vorhanden ist:

    gcloud artifacts repositories list \
        --location=us-central1 \
        --filter="REPOSITORY:containers"
    

    Die Ausgabe zeigt das von Ihnen erstellte Repository containers.

GKE-Cluster erstellen

Erstellen Sie zwei GKE-Cluster, einen Staging-Cluster namens dev-cluster und einen Produktionscluster mit dem Namen prod-cluster und aktivieren Sie das Scannen auf Sicherheitslücken in beiden Clustern:

gcloud beta container clusters create-auto dev-cluster \
    --region=us-central1 \
    --release-channel=rapid \
    --service-account=sds-runtime@${PROJECT_ID}.iam.gserviceaccount.com \
    --enable-workload-vulnerability-scanning
gcloud beta container clusters create-auto prod-cluster \
    --region=us-central1 \
    --release-channel=rapid \
    --service-account=sds-runtime@${PROJECT_ID}.iam.gserviceaccount.com \
    --enable-workload-vulnerability-scanning

Die Clustererstellung kann bis zu fünf Minuten dauern. Sie können das Scannen auf Sicherheitslücken auch über die Google Cloud Console und durch Aktualisieren vorhandener GKE-Cluster aktivieren.

Image erstellen

Erstellen Sie das Image und senden Sie es mit Cloud Build:

gcloud builds submit --region us-central1 --config cloudbuild.yaml

Nach Abschluss des Builds sieht die Ausgabe in etwa so aus:

DONE
-----------------------------------------------------------------------------
ID: 3e23094f-7f57-4449-bc68-51c37hn34d03
CREATE_TIME: 2022-09-19T15:41:07+00:00
DURATION: 54S
SOURCE: gs://my-project_cloudbuild/source/1663602066.777581-6ebe4b2d6fd741ffa18936d7f.tgz
IMAGES: us-central1-docker.pkg.dev/PROJECT_ID/containers/java-guestbook-backend:quickstart
STATUS: SUCCESS

Image mit Google Cloud Deploy in GKE bereitstellen

  1. Aktualisieren Sie die Google Cloud Deploy-Konfigurationsdatei mit Ihrer Projekt-ID:

    sed -i "s/PROJECT_ID/${PROJECT_ID}/g" clouddeploy.yaml
    
  2. Registrieren Sie die Pipeline und die Ziele:

    gcloud deploy apply --file=clouddeploy.yaml
    
  3. Rufen Sie in der Google Cloud Console die Seite Bereitstellungspipelines auf, um zu prüfen, ob Ihre Pipeline vorhanden ist:

    Zu Bereitstellungspipelines

    In der Liste der Pipelines wird die neue Pipeline guestbook-app-delivery angezeigt.

  4. Klicken Sie auf den Namen der Pipeline, um den Fortschritt zu überwachen. Die Seite Details zur Bereitstellungspipeline wird geöffnet.

  5. Erstellen Sie einen neuen Release in Google Cloud Deploy:

    gcloud deploy releases create guestbook-release-001 \
        --delivery-pipeline=guestbook-app-delivery \
        --images=java-guestbook-backend=us-central1-docker.pkg.dev/${PROJECT_ID}/containers/java-guestbook-backend:quickstart
    

    Der neue Release wird im Abschnitt Releases auf der Seite Details zur Bereitstellungspipeline angezeigt.

  6. Beobachten Sie auf der Seite Details zur Bereitstellungspipeline die Ansicht Pipelinevisualisierung, bis die Schaltfläche Hochstufen für dev-cluster angezeigt wird. Möglicherweise müssen Sie die Seite aktualisieren.

  7. Klicken Sie in der dev-cluster-Visualisierung auf Werben.

  8. Klicken Sie im Bereich Release hochstufen auf Hochstufen, um die Hochstufung zu Ihrem Produktionscluster zu bestätigen.

  9. Sehen Sie im Abschnitt Releases nach, ob der Release erfolgreich war. In der Spalte Status des letzten Roll-outs wird Successfully deployed to prod-cluster angezeigt.

Sicherheitslücken ansehen

In diesem Abschnitt können Sie sich über das Dashboard für den Sicherheitsstatus Informationen zu Sicherheitslücken des Betriebssystems ansehen. Im Dashboard werden Informationen zu Sicherheitslücken in den ausgeführten Arbeitslasten angezeigt, nachdem Sie sie in den Clustern bereitgestellt haben.

  1. Rufen Sie in der Google Cloud Console die Seite Sicherheitsstatus auf.

    Zum Sicherheitsstatus

  2. Aktualisieren Sie die Seite, um die Scanergebnisse anzusehen. Der erste Scan kann bis zu 15 Minuten dauern.

  3. Lesen Sie auf der Seite Sicherheitsstatus den Abschnitt Anfälligkeiten nach Schweregrad. In diesem Abschnitt sind die wichtigsten CVEs aufgeführt, die sich auf Ihre bereitgestellte Arbeitslast auswirken.

  4. Klicken Sie auf Alle Bedenken hinsichtlich Sicherheitslücken ansehen. Der Tab Bedenken wird geöffnet und ein Filter für den Bedenkentyp Sicherheitslücke wird angewendet. Die Tabelle enthält eine Übersicht der einzelnen Sicherheitslücken sowie deren Auswirkungen.

  5. Wenn Sie Details zu einer bestimmten Sicherheitslücke sehen möchten, klicken Sie in der Tabelle auf den Namen des Problems. Der Bereich Sicherheitslücken wird geöffnet. In diesem Bereich können Sie Folgendes tun:

    • Eine ausführliche Beschreibung des CVEs, einschließlich der betroffenen Versionen, Pakete und des CVSS-Scores.
    • Sehen Sie sich empfohlene Maßnahmen an, um das Problem zu beheben, z. B. Dokumentation und Informationen zur Patchversion.
    • Sehen Sie sich auf dem Tab Betroffene Arbeitslasten die Arbeitslasten an, die von der Sicherheitslücke betroffen sind.

Bereinigen

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

Einzelne Ressourcen löschen

  1. Löschen Sie die Google Cloud Deploy-Pipeline:

    gcloud deploy delivery-pipelines delete guestbook-app-delivery --force
    
  2. Löschen Sie die GKE-Cluster:

    gcloud container clusters delete dev-cluster \
        --region=us-central1
    gcloud container clusters delete prod-cluster \
        --region=us-central1
    
  3. Löschen Sie das Artifact Registry-Repository:

    gcloud artifacts repositories delete containers \
        --location=us-central1
    
  4. Löschen Sie das IAM-Dienstkonto:

    gcloud iam service-accounts delete sds-runtime@${PROJECT_ID}.iam.gserviceaccount.com
    

Projekt löschen

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Nächste Schritte