Knotenisolation – Übersicht

In diesem Dokument werden die Vorteile und Einschränkungen der Knotenisolation in einem GDC-Kubernetes-Cluster (Google Distributed Cloud) mit Air Gap erläutert. Die Knotenisolation mit dedizierten Knotenpools verbessert die Clustersicherheit, da Sie genau steuern können, wo bestimmte Pods im Cluster ausgeführt werden.

Die Arbeitslastisolation bietet einige Vorteile, z. B.:

  • Verringertes Risiko von Angriffen zur Rechteausweitung in Ihrem Kubernetes-Cluster
  • Mehr Kontrolle über Pods, die zusätzliche Ressourcen benötigen

In diesen Fällen sollten Sie Ihre Containerarbeitslasten in dedizierten Knotenpools isolieren, um mehr Kontrolle und Optimierung zu erzielen. Berücksichtigen Sie auch die Einschränkungen, damit Sie eine fundierte Entscheidung über die zusätzlichen Wartungskosten treffen können, die durch die Knotenisolation entstehen.

Dieses Dokument richtet sich an Zielgruppen wie IT-Administratoren in der Gruppe der Plattformadministratoren, die für die Verwaltung der Knotenpools eines Kubernetes-Clusters verantwortlich sind, und Anwendungsentwickler in der Gruppe der Anwendungsoperatoren, die für die Verwaltung von Containerarbeitslasten verantwortlich sind. Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap.

Warum sollte ich meine Arbeitslasten isolieren?

Es ist zwar nicht obligatorisch, Knotenpools bestimmten Containerarbeitslasten zuzuweisen, kann aber potenzielle Probleme verhindern. Dieser Ansatz erfordert jedoch mehr Verwaltungsaufwand und ist oft nicht erforderlich.

Kubernetes-Cluster verwenden privilegierte, von GDC verwaltete Arbeitslasten, um bestimmte Clusterfunktionen und -features wie das Erfassen von Messwerten zu aktivieren. Diesen Arbeitslasten werden spezielle Berechtigungen erteilt, damit sie im Cluster ordnungsgemäß ausgeführt werden können.

Arbeitslasten, die Sie auf Ihren Knoten bereitstellen, können möglicherweise von einer bösartigen Entität kompromittiert werden. Die Ausführung dieser Arbeitslasten neben privilegierten, von GDC verwalteten Arbeitslasten bedeutet, dass ein Angreifer, der aus einem kompromittierten Container ausbricht, die Anmeldedaten der privilegierten Arbeitslast auf dem Knoten verwenden kann, um die Berechtigungen in Ihrem Cluster zu erweitern.

Dedizierte Knotenpools sind auch nützlich, wenn Sie Pods planen müssen, die mehr Ressourcen benötigen als andere, z. B. mehr Arbeitsspeicher oder mehr lokalen Speicherplatz.

Sie können die folgenden Mechanismen verwenden, um Ihre Arbeitslasten in einem dedizierten Knotenpool zu planen:

  • Knotenmarkierungen: Weisen Sie Ihren Kubernetes-Cluster an, Arbeitslasten nicht auf bestimmten Knoten zu planen, wenn keine entsprechende Toleranz vorhanden ist.
  • Knotenaffinität: Weisen Sie Ihren Kubernetes-Cluster an, bestimmte Pods auf dedizierten Knoten zu planen.

Die Knotenisolation ist ein erweiterter Mechanismus mit gestaffelten Sicherheitsebenen, den Sie nur neben anderen Isolationsfeatures wie Containern mit minimalen Rechten und Dienstkonten verwenden dürfen. Die Knotenisolation deckt möglicherweise nicht alle Eskalationspfade ab und darf niemals als primäre Sicherheitsgrenze verwendet werden.

Funktionsweise der Knotenisolation

So implementieren Sie die Knotenisolation für Ihre Arbeitslasten:

  1. Markieren Sie einen Knotenpool für Ihre Arbeitslasten und versehen Sie ihn mit einem Label.

  2. Aktualisieren Sie Ihre Arbeitslasten mit der entsprechenden Toleranz- und Knotenaffinitätsregel.

In dieser Anleitung wird davon ausgegangen, dass Sie mit einem Knotenpool in Ihrem Cluster beginnen. Die Verwendung der Knotenaffinität ist neben Knotenmarkierungen nicht obligatorisch, es wird jedoch empfohlen, da Sie von einer besseren Kontrolle über die Planung profitieren.

Empfehlungen und Best Practices

Nachdem Sie die Knotenisolation eingerichtet haben, sollten Sie Folgendes tun:

  • Verhindern Sie beim Erstellen neuer Knotenpools, dass die meisten von GDC verwalteten Arbeitslasten auf diesen Knoten ausgeführt werden. Fügen Sie dazu diesen Knotenpools eine eigene Markierung hinzu.

  • Prüfen Sie bei der Bereitstellung neuer Arbeitslasten in Ihrem Cluster, z. B. bei der Installation von Drittanbietertools, die Berechtigungen, die die Pods benötigen. Vermeiden Sie nach Möglichkeit die Bereitstellung von Arbeitslasten, die erhöhte Berechtigungen für gemeinsam genutzte Knoten verwenden.

Beschränkungen

Für Pods, die in einem isolierten Knotenpool ausgeführt werden, gelten die folgenden Einschränkungen:

  • Angreifer können weiterhin DoS-Angriffe (Denial of Service) über den manipulierten Knoten initiieren.

  • Wenn Sie DaemonSet-Ressourcen bereitstellen, die erhöhte Berechtigungen haben und jede Markierung tolerieren können, sind diese Pods möglicherweise ein Pfad für die Rechteausweitung von einem manipulierten Knoten.

  • Manipulierte Knoten können weiterhin viele Ressourcen lesen, einschließlich aller Pods und Namespaces im Cluster.

  • Manipulierte Knoten können auf Secrets und Anmeldedaten zugreifen, die von jedem auf diesem Knoten ausgeführten Pod verwendet werden.

  • Gefährdete Knoten können weiterhin Netzwerkrichtlinien für ausgehenden Traffic umgehen.

  • Wenn Sie einen separaten Knotenpool verwenden, um Ihre Arbeitslasten zu isolieren, kann sich dies auf die Kosteneffizienz, das Autoscaling und die Ressourcennutzung auswirken.

  • Einige von GDC verwaltete Arbeitslasten müssen auf jedem Knoten in Ihrem Cluster ausgeführt werden und so konfiguriert sein, dass sie alle Markierungen tolerieren.

Nächste Schritte