Arbeitslasten automatisch auf Konfigurationsprobleme prüfen


Auf dieser Seite erfahren Sie, wie Sie Ihre Arbeitslastkonfigurationen automatisch auf Sicherheitsbedenken prüfen und umsetzbare Empfehlungen erhalten, um den Sicherheitsstatus Ihrer Autopilot- und Standardcluster in Google Kubernetes Engine (GKE) zu verbessern. Die Prüfung der Arbeitslastkonfiguration ist ein Feature des Sicherheitsstatus-Dashboards. Weitere Informationen finden Sie unter Prüfung der Arbeitslastkonfiguration.

Preise

Das Sicherheitsstatus-Dashboard wird in GKE ohne zusätzliche Kosten über die Container Security API angeboten.

Für Einträge, die zu Cloud Logging hinzugefügt wurden, werden die Cloud Logging-Preise verwendet.

Hinweis

Führen Sie die folgenden Schritte durch, bevor Sie beginnen:

  • Aktivieren Sie die Google Kubernetes Engine API.
  • Google Kubernetes Engine API aktivieren
  • Wenn Sie die Google Cloud CLI für diese Aufgabe verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit gcloud components update ab.

Voraussetzungen

  • Bitten Sie Ihren Administrator, Ihnen in Ihrem Google Cloud-Projekt die IAM-Rolle Betrachter des Sicherheitsstatus (roles/containersecurity.viewer) zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Prüfen der Arbeitslastkonfiguration benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

    Diese vordefinierte Rolle enthält die Berechtigungen, die zum Prüfen der Arbeitslastkonfiguration erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

    Erforderliche Berechtigungen

    Die folgenden Berechtigungen sind für die Verwendung der Prüfung der Arbeitslastkonfiguration erforderlich:

    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • containersecurity.locations.list
    • containersecurity.locations.get
    • containersecurity.clusterSummaries.list
    • containersecurity.findings.list

    Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

  • Zum Prüfen von Arbeitslastkonfigurationen ist die GKE-Version 1.21 oder höher erforderlich.

Prüfung der Arbeitslastkonfiguration aktivieren

Die Prüfung der Arbeitslastkonfiguration ist in neuen Autopilot- und Standardclustern ab Version 1.27 standardmäßig aktiviert. Sie können dieses Feature auch manuell mit der gcloud CLI oder der Google Cloud Console aktivieren.

Konfigurationsprüfung für einen neuen Cluster aktivieren

gcloud

Erstellen Sie mithilfe der gcloud CLI einen neuen GKE-Cluster:

gcloud container clusters create-auto CLUSTER_NAME \
    --location=LOCATION \
    --security-posture=standard

Ersetzen Sie dabei Folgendes:

Console

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

    Zur Seite „Google Kubernetes Engine“
  2. Klicken Sie auf Erstellen.
  3. Klicken Sie im Bereich GKE-Autopilot auf Konfigurieren.
  4. Klicken Sie im Navigationsbereich auf Erweiterte Einstellungen. Wenn Sie einen Standardcluster erstellen, klicken Sie stattdessen auf Sicherheit.
  5. Klicken Sie im Bereich Sicherheit das Kästchen Konfigurationsprüfung an.
  6. Konfigurieren Sie weitere Optionen für den Cluster und klicken Sie auf Erstellen, wenn Sie bereit sind.

Konfigurationsprüfung für einen vorhandenen Cluster aktivieren

gcloud

Aktualisieren Sie den Cluster:

gcloud container clusters update CLUSTER_NAME \
    --location=LOCATION \
    --security-posture=standard

Ersetzen Sie dabei Folgendes:

Console

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

    Zum Sicherheitsstatus
  2. Klicken Sie auf den Tab Einstellungen.
  3. Klicken Sie im Abschnitt Cluster für die Audit-Konfiguration aktiviert auf Cluster auswählen.
  4. Setzen Sie ein Häkchen bei den Clustern, die Sie hinzufügen möchten.
  5. Wählen Sie im Drop-down-Menü Aktion auswählen die Option Auf „Einfach“ festlegen aus.
  6. Klicken Sie auf Anwenden.

Wenn Sie Google Kubernetes Engine (GKE) Enterprise-Edition zur Verwaltung von Flotten von Clustern verwenden, können Sie auch Prüfeinstellungen für die Flottenkonfiguration konfigurieren, die für alle Mitgliedscluster gelten. Eine Anleitung finden Sie unter Features des GKE-Sicherheitsstatus auf Flottenebene konfigurieren.

Testarbeitslast bereitstellen

Stellen Sie eine Beispielanwendung bereit, die absichtlich gegen die Pod-Sicherheitsstandards verstößt.

  1. Speichern Sie das folgende Manifest als misconfig-sample.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: helloweb
      labels:
        app: hello
    spec:
      selector:
        matchLabels:
          app: hello
          tier: web
      template:
        metadata:
          labels:
            app: hello
            tier: web
        spec:
          containers:
          - name: hello-app
            image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
            ports:
            - containerPort: 8080
            securityContext:
              runAsNonRoot: false
            resources:
              requests:
                cpu: 200m
    
  2. Stellen Sie die Anwendung in Ihrem Cluster bereit:

    kubectl apply -f misconfig-sample.yaml
    

Wenn Sie andere Verstöße ausprobieren möchten, ändern Sie misconfig-sample.yaml mit der entsprechenden „schlechten“ Konfiguration.

Audit-Ergebnisse ansehen und Aktionen ausführen

Es dauert bis zu 15 Minuten, bis die erste Prüfung Ergebnisse zurückgibt. GKE zeigt die Ergebnisse auf der Seite Sicherheitsstatus an und fügt den Clusterlogs automatisch Einträge hinzu.

Ergebnisse ansehen

So erhalten Sie einen Überblick über die erkannten Bedenken in den Clustern und Arbeitslasten Ihres Projekts:

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

    Zum Sicherheitsstatus

  2. Klicken Sie auf den Tab Bedenken.

  3. Klicken Sie im Bereich Bedenken filtern im Abschnitt Art der Bedenken das Kästchen Konfiguration an.

Details und Empfehlungen zu Problemen aufrufen

Wenn Sie Details zu einem bestimmten Konfigurationsproblem aufrufen möchten, klicken Sie auf die Zeile mit dem jeweiligen Problem.

Der Bereich Konfigurationsbedenken enthält die folgenden Informationen:

  • Beschreibung: Eine Beschreibung des Problems.
  • Empfohlene Maßnahme: Eine Übersicht über die Maßnahmen, die Sie zur Behebung des Konfigurationsproblems ergreifen können. Dieser Abschnitt enthält folgende Details:
    • Welche Ressourcen müssen korrigiert werden?
    • Beispielbefehle, mit denen Sie die Fehlerkorrektur auf die betroffenen Ressourcen anwenden können
    • Anleitung zur Google Cloud Console, um das Problem zu beheben

Logs für erkannte Bedenken aufrufen

GKE fügt dem _Default-Log-Bucket in Logging für jedes erkannte Problem Einträge hinzu. Diese Logs werden nur für einen bestimmten Zeitraum aufbewahrt. Weitere Informationen finden Sie unter Aufbewahrungsdauer von Logs.

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

    Zum Log-Explorer
  2. Geben Sie im Feld Abfrage die folgende Abfrage ein:

    resource.type="k8s_cluster"
    jsonPayload.@type="type.googleapis.com/cloud.kubernetes.security.containersecurity_logging.Finding"
    jsonPayload.type="FINDING_TYPE_MISCONFIG"
  3. Klicken Sie auf Abfrage ausführen.

Um Benachrichtigungen zu erhalten, wenn GKE neue Ergebnisse zu Logging hinzufügt, richten Sie für diese Abfrage logbasierte Benachrichtigungen ein. Weitere Informationen finden Sie unter Logbasierte Benachrichtigungen konfigurieren.

Bereinigen

  1. Löschen Sie die bereitgestellte Beispielarbeitslast.

    kubectl delete deployment helloweb
    
  2. Löschen Sie optional den verwendeten Cluster.

    gcloud container clusters delete CLUSTER_NAME \
        --region=COMPUTE_REGION
    

Prüfung der Arbeitslastkonfiguration deaktivieren

Sie können die Prüfung der Arbeitslastkonfiguration entweder mit der gcloud CLI oder der Google Cloud Console deaktivieren.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud container clusters update CLUSTER_NAME \
    --region=LOCATION \
    --security-posture=disabled

Ersetzen Sie dabei Folgendes:

Console

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

    Zum Sicherheitsstatus
  2. Klicken Sie auf den Tab Einstellungen.
  3. Klicken Sie im Abschnitt Cluster für die Audit-Konfiguration aktiviert auf Cluster auswählen.
  4. Wählen Sie auf dem Tab Prüfung aktiviert die Kästchen für die Cluster aus, die Sie entfernen möchten.
  5. Klicken Sie auf Audit deaktivieren und dann auf Bestätigen, um die Prüfung für diese Cluster zu deaktivieren.

Einschränkungen bei der Prüfung der Arbeitslastkonfiguration

  • Windows Server-Knotenpools werden nicht unterstützt.
  • Beim Prüfen von Arbeitslasten werden keine von GKE verwalteten Arbeitslasten gescannt, z. B. Arbeitslasten im Namespace kube-system.
  • Die Prüfung der Arbeitslastkonfiguration ist nur für Cluster mit weniger als 1.000 Knoten verfügbar.
  • Das Sicherheitsstatus-Dashboard unterstützt bis zu 150.000 aktive Ergebnisse der Prüfung der Arbeitslastkonfiguration für jeden Cluster. Wenn die Anzahl der Ergebnisse für einen Cluster diesen Höchstwert überschreitet, werden im Sicherheitsstatus-Dashboard keine Konfigurationsergebnisse für diesen Cluster mehr angezeigt.

    Verwenden Sie zur Behebung dieses Problems die Logs in Logging, um Konfigurationsprobleme zu identifizieren und aktualisierte Manifeste bereitzustellen. Wenn die Anzahl der Konfigurationsergebnisse unter 150.000 liegt, werden im Dashboard zur Sicherheitsposition Ergebnisse für den Cluster angezeigt.

Nächste Schritte