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.
Aktivieren Sie die Container Security API.
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:
CLUSTER_NAME
: Der Name des neuen Clusters.LOCATION
: Der Compute Engine-Standort für Ihren Cluster.
Console
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.
Zur Seite „Google Kubernetes Engine“- Klicken Sie auf Erstellen.
- Klicken Sie im Bereich GKE-Autopilot auf Konfigurieren.
- Klicken Sie im Navigationsbereich auf Erweiterte Einstellungen. Wenn Sie einen Standardcluster erstellen, klicken Sie stattdessen auf Sicherheit.
- Klicken Sie im Bereich Sicherheit das Kästchen Konfigurationsprüfung an.
- 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:
CLUSTER_NAME
: Der Name Ihres Clusters.LOCATION
: Der Compute Engine-Standort des Clusters.
Console
Rufen Sie in der Google Cloud Console die Seite Sicherheitsstatus auf.
Zum Sicherheitsstatus- Klicken Sie auf den Tab Einstellungen.
- Klicken Sie im Abschnitt Cluster für die Audit-Konfiguration aktiviert auf Cluster auswählen.
- Setzen Sie ein Häkchen bei den Clustern, die Sie hinzufügen möchten.
- Wählen Sie im Drop-down-Menü Aktion auswählen die Option Auf „Einfach“ festlegen aus.
- 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.
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
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:
Rufen Sie in der Google Cloud Console die Seite Sicherheitsstatus auf.
Klicken Sie auf den Tab Bedenken.
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.
Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.
Zum Log-ExplorerGeben 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"
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
Löschen Sie die bereitgestellte Beispielarbeitslast.
kubectl delete deployment helloweb
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:
CLUSTER_NAME
: Der Name Ihres Clusters.LOCATION
: Die Compute Engine-Region oder -Zone für den neuen Cluster.
Console
Rufen Sie in der Google Cloud Console die Seite Sicherheitsstatus auf.
Zum Sicherheitsstatus- Klicken Sie auf den Tab Einstellungen.
- Klicken Sie im Abschnitt Cluster für die Audit-Konfiguration aktiviert auf Cluster auswählen.
- Wählen Sie auf dem Tab Prüfung aktiviert die Kästchen für die Cluster aus, die Sie entfernen möchten.
- 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
- Weitere Informationen zum Sicherheitsstatus-Dashboard.
- Weitere Informationen zur Funktionsweise des Prüfens der Konfiguration
- Cluster anhand der Empfehlungen von Google sichern