Anthos-Sicherheits-Blueprint: Richtlinienabweichungen prüfen und beobachten

In diesem Dokument wird beschrieben, wie Sie Ihre Anthos-Cluster prüfen und beobachten, um mögliche Abweichungen von Best Practices und Richtlinien für die Sicherheit festzustellen, die Sie an die Cluster angehängt haben. Es enthält eine Übersicht darüber, wie und warum Sie Richtlinien prüfen und beobachten müssen, und beschreibt die Google Cloud-Kontrollen, die Sie für diese Aufgabe verwenden.

Das Dokument ist Teil einer Reihe von Blueprints, die eine präskriptive Anleitung für die Arbeit mit Anthos bieten. Weitere Informationen zu diesen Blueprints finden Sie unter Anthos-Sicherheits-Blueprints: Häufig gestellte Fragen.

Einführung

Ihrem Cluster sind Richtlinien zugewiesen, die Ihre Assets vor unberechtigtem Zugriff schützen. Wenn Sie Abweichungen von diesen Richtlinien prüfen und beobachten, können Sie die Sicherheit erhöhen. Die Prüfung und das Monitoring verschaffen Ihnen zwar Einblicke in den aktuellen Status des Clusters, verhindern jedoch keine Aktionen, die Ihre Richtlinien umgehen würden. Daher sollten Sie zum Schutz vor Änderungen außerdem Maßnahmen zur Richtlinienerzwingung ergreifen.

Das Monitoring ist ähnlich wie eine Prüfung, hat jedoch einen etwas anderen Zweck. Eine typische Monitoringlösung enthält einen Mechanismus zum Erfassen von Messwerten, Dashboards zum Anzeigen des Status Ihrer Systeme und Anwendungen sowie eine Funktion zum Senden von Benachrichtigungen, wenn Anomalien erkannt werden. Im Gegensatz dazu wird mit einer Prüfung der Status Ihrer Systeme validiert – in der Regel anhand einer Reihe von Richtlinien, die Sie definiert haben und die Ihre Systeme einhalten müssen.

Für Prüfungs- und Monitoringzwecke müssen Sie die folgenden Anforderungen ins Auge fassen:

  • Welche Kontrollen Sie für die Erzwingung eingerichtet haben und wie Sie diese auf Abweichungen von der Richtlinie prüfen oder beobachten
  • Ob Sie eine konsolidierte oder eine separate Monitoringlösung benötigen

Informationen zu den nötigen Sicherheitseinstellungen

In diesem Abschnitt werden die Kontrollen erläutert, die für Folgendes erforderlich sind:

  • Implementieren von Prüfungen, die die Richtlinienerzwingung ergänzen, wie in der Anleitung zum Erzwingen von Richtlinien beschrieben

  • Implementieren einer Monitoringlösung, die mit Anthos GKE-Clustern funktioniert, unabhängig davon, wo diese bereitgestellt sind

Namespaces

Ressourcen, die denselben Richtlinien folgen sollen, mit Labels versehen

Mit Namespaces können Sie einen Bereich für zusammengehörige Ressourcen innerhalb eines Clusters angeben, z. B. Pods, Dienste und Replikations-Controller. Durch die Verwendung von Namespaces können Sie die Verwaltungsverantwortung für die zugehörigen Ressourcen als Einheit delegieren. Daher sind Namespaces ein wichtiger Bestandteil der meisten Sicherheitsmuster.

Namespaces sind ein wichtiges Feature zur Isolierung von Steuerungsebenen. Sie bieten jedoch keine Isolation von Knoten, Datenebenen oder Netzwerken.

Ein gängiger Ansatz besteht darin, Namespaces für einzelne Anwendungen zu erstellen. Sie können beispielsweise den Namespace myapp-frontend für die UI-Komponente einer Anwendung erstellen.

Anthos Config Management

Konfigurationen auf Anthos-Cluster anwenden

Eine Best Practice bei der Verwaltung von Anthos-Clustern ist die Verwendung von Anthos Config Management. Dadurch werden Ihre angemeldeten Cluster mit Konfigurationen synchron gehalten. Eine Konfiguration ist eine YAML- oder JSON-Datei, die in Ihrem Repository gespeichert ist und dieselben Konfigurationsdetails enthält, die Sie manuell mit dem Befehl kubectl apply auf einen Cluster anwenden können. Mit Anthos Config Management können Sie Ihre Richtlinien und Infrastrukturbereitstellungen wie Ihre Anwendungen verwalten, nämlich indem Sie Richtlinien als Code verfügbar machen.

Sie verwenden Anthos Config Management in Verbindung mit einem Git-Repository, das als Single Source of Truth für Ihre deklarierten Richtlinien dient. Anthos Config Management kann Richtlinien für die Zugriffssteuerung wie RBAC, Ressourcenkontingente, Namespaces und Infrastrukturbereitstellungen auf Plattformebene verwalten. Anthos Config Management ist deklarativ. Es prüft kontinuierlich den Clusterstatus und wendet den in der Konfiguration angegebenen Status an, um Richtlinien zu erzwingen.

Anthos Policy Controller

Einhaltung von Richtlinien durchsetzen

Anthos Policy Controller ist eine dynamische Zugangssteuerung für Kubernetes, der CustomResourceDefinition-basierte (CRD-basierte) Richtlinien durchsetzt, die von Open Policy Agent (OPA) ausgeführt werden.

Zugangssteuerungen sind Kubernetes-Plug-ins, die Anfragen an den Kubernetes API-Server abfangen, bevor ein Objekt beibehalten wird, aber nachdem die Anfrage authentifiziert und autorisiert wurde. Sie können die Verwendung von Clustern mithilfe von Zugangssteuerungen einschränken.

Zur Verwendung von Policy Controller legen Sie eine Reihe von Einschränkungen in einer Einschränkungsvorlage fest. Wenn die Einschränkungsvorlage im Cluster bereitgestellt wurde, können Sie einzelne Einschränkungs-CRDs erstellen, die durch die Einschränkungsvorlage definiert werden.

Das folgende Diagramm zeigt, wie Policy Controller das OPA Constraint Framework zum Definieren und Durchsetzen von Richtlinien verwendet.

Das OPA Constraint Framework empfängt Anfragen und setzt Richtlinien für den Zugriff auf andere Ressourcen durch.

Das Diagramm zeigt Folgendes:

  1. Einschränkungen werden anhand von Einschränkungsvorlagen erstellt.
  2. Richtlinien werden im Cluster durch das Anwenden von Einschränkungen aktiviert.
  3. Eine Anfrage geht ein und eine Zugangsprüfung wird ausgelöst, die darüber entscheidet, ob der Zugriff zugelassen oder abgelehnt wird.
  4. Eine kontinuierliche Prüfung bewertet alle aktiven Objekte im Cluster anhand von Richtlinien.

Mit Policy Controller können Sie benutzerdefinierte Richtlinien durchsetzen, z. B. für Labels. Policy Controller ermöglicht die Anwendung der meisten Einschränkungen, die Sie mit PodSecurityPolicies anwenden können. Allerdings wird damit der operative Aufwand aus folgenden Gründen reduziert:

  • Policy Controller bietet eine Bibliothek mit Standardvorlagen, die Einschränkungsvorlagen enthält. Das bedeutet, dass Sie für gängige Fälle keine eigenen Richtlinien schreiben müssen wie bei PodSecurityPolicies.
  • Sie müssen keine RoleBindings verwalten wie bei Verwendung von PodSecurityPolicies.
  • Policy Controller unterstützt den Probelaufmodus, sodass Sie die Auswirkungen einer Einschränkung prüfen können, bevor Sie sie anwenden.
  • Sie können Richtlinien auf Namespaces beschränken und haben so die Möglichkeit, restriktivere Richtlinien langsamer einzuführen. Dies ist mit einer Canary-Release-Strategie vergleichbar, bei der Sie die Gefährdung durch die Einführung von Richtlinien, die unvorhergesehene Auswirkungen haben könnten, verwalten. Bei der Einführung könnte beispielsweise festgestellt werden, dass von einem Pod aus nur eingeschränkter Zugriff auf ein Volume besteht, obwohl der Pod Zugriff auf das Volume haben sollte.
  • Policy Controller bietet eine einzelne Methode zum Anwenden von Richtlinien, unabhängig davon, ob es sich um benutzerdefinierte Einschränkungen oder PodSecurityPolicies-Einschränkungen handelt, die im Gatekeeper-Repository definiert sind.

Weitere Informationen zum Erzwingen von definierten Richtlinien mithilfe von Policy Controller finden Sie unter Policy Controller von Anthos Config Management.

Cloud Operations for GKE

GKE-Cluster beobachten

Cloud Operations for GKE wurde für das Monitoring von GKE-Clustern entwickelt. Es verwaltet sowohl Cloud Monitoring- als auch Cloud Logging-Dienste und umfasst das an GKE-Cluster angepasste Cloud Operations for GKE-Dashboard. Cloud Operations for GKE verfügt über eine Reihe von GKE überwachter Ressourcen, die Ressourcen wie Cluster, Knoten, Pods und Container darstellen. Sie können Cloud Operations for GKE sowohl für GKE- als auch für lokale GKE-Cluster deaktivieren. Wir empfehlen jedoch, sie für diese Produkte aktiviert zu lassen.

Security Health Analytics

Sicherheitslücken identifizieren

Mit Security Health Analytics können Sie Vorfälle leichter verhindern, da potenzielle Fehlkonfigurationen und Complianceverstöße in Ihren Google Cloud-Ressourcen erkannt und entsprechende Korrekturmaßnahmen vorgeschlagen werden. Security Health Analytics-Scanner generieren Typen von Sicherheitslückenergebnissen, die in Security Command Center verfügbar sind. Die Ergebnisse des Containerscanners beziehen sich auf GKE-Containerkonfigurationen und gehören zum Scannertyp CONTAINER_SCANNER.

Security Command Center in Pub/Sub einbinden

Mit der Benachrichtigungsanwendung können Sie Benachrichtigungen über Ergebnisse aus Security Command Center erhalten. Die Anwendung abonniert ein Pub/Sub-Benachrichtigungsthema und sendet Benachrichtigungen an einen konfigurierten Kanal, z. B. E-Mail oder SMS.

Cloud Asset Inventory

Google Cloud-Ressourcen beobachten

Cloud Asset Inventory ermöglicht Ihnen, Änderungen an Ressourcen und Richtlinien zu beobachten, die Sie über Echtzeitbenachrichtigungen abonniert haben. Sie können Änderungen an unterstützten Ressourcentypen und Richtlinientypen innerhalb einer Organisation, eines Ordners, eines Projekts oder anderer von Ihnen angegebener Ressourcen im Blick behalten. Zum Einrichten von Abos erstellen Sie einen Feed. Zu den unterstützten Asset-Typen gehören GKE-Ressourcentypen und IAM-Richtlinientypen.

Sie können sicherheitsrelevante Ressourcen wie Firewallregeln und Änderungen an IAM-Richtlinien beobachten. Bei jeder Änderung an diesen Ressourcen wird sofort eine Benachrichtigung über Pub/Sub gesendet, sodass Sie bei Bedarf schnell reagieren können.

Echtzeitbenachrichtigungen sind mit Ihren vorhandenen Arbeitslasten verbunden. Mit dieser Funktion können Sie Aktionen zusammenführen, beispielsweise das Erstellen einer Cloud Functions-Funktion zum Rückgängigmachen einer Ressourcenänderung, nachdem diese erkannt wurde.

Benachrichtigungen mit Cloud-Audit-Logs

GKE-Cluster ermöglichen die Einbindung von Kubernetes-Audit-Logging in Cloud-Audit-Logs und Cloud Logging. In Cloud Operations for GKE können Sie Messwerte anhand Ihrer Logeinträge einrichten. Anschließend können Sie mithilfe von logbasierten Messwerten eine Benachrichtigungsrichtlinie einrichten.

In Benachrichtigungsrichtlinien sind Benachrichtigungskanäle festgelegt, mit denen Sie angeben können, wie Sie benachrichtigt werden möchten, wenn eine Benachrichtigungsrichtlinie ausgelöst wurde. Sie können einen Benachrichtigungs-Handler mithilfe von Cloud Run oder Cloud Functions einrichten, um eine Aktion als Reaktion auszuführen, z. B. um die Änderung rückgängig zu machen oder Sie per E-Mail zu benachrichtigen.

Zusammenfassung

Bestimmen Sie Ihre Prüfungs- und Monitoringanforderungen, um die Kontrollen einzubinden. Legen Sie dann den Umfang der in dieser Anleitung erläuterten Kontrollen und die Phase, in der sie konfiguriert werden müssen, wie in den folgenden Schritten beschrieben fest.

  1. Bevor Sie mit der Konfiguration Ihrer Cluster beginnen, sollten Sie anhand der Informationen unter Muster für Hybrid- und Multi-Cloud-Monitoring und -Logging bestimmen, welchen Isolationsgrad Sie benötigen.

  2. Erstellen Sie Ihre Cluster. Folgen Sie der Anleitung im entsprechenden Leitfaden zur Härtung von Clustern (GKE-Cluster oder GKE On-Prem-Cluster). Beachten Sie beim Erstellen der Cluster unbedingt den Leitfaden zur Härtung von Clustern und verwenden Sie das Flag --enable-network-policy. Netzwerkrichtlinien sind erforderlich. Mit diesem Schritt können Sie später Firewallregeln implementieren, die den Traffic zwischen Pods in einem Cluster einschränken.

  3. Legen Sie die Namespaces und Labels fest, die für die Pods erforderlich sind. Dadurch erhalten Sie einen Namensbereich, der Ihnen die Arbeit mit Richtlinien und Kubernetes-Dienstkonten ermöglicht.

  4. Installieren Sie Policy Controller mithilfe von Anthos Config Management.

    Folgen Sie der Anleitung zum Erzwingen von Richtlinien.

  5. Konfigurieren Sie Cloud Operations für GKE entsprechend Ihren Anforderungen:

  6. Konfigurieren Sie Benachrichtigungsrichtlinien, Benachrichtigungen und Handler für Cloud Operations für GKE.

  7. Konfigurieren Sie Echtzeitbenachrichtigungen aus Cloud Asset Inventory.

  8. Richten Sie einen Prozess ein, um die Containerergebnisse, die aus den Security Health Analytics-Scans generiert werden, regelmäßig zu prüfen.