Sicherheit von Clustern erhöhen

Durch die kontinuierliche Weiterentwicklung von Kubernetes stehen häufig neue Sicherheitsfeatures zur Verfügung. In diesem Dokument wird beschrieben, wie Sie Ihre Anthos-Cluster auf VMware-Cluster (GKE On-Prem) härten.

In diesem Leitfaden werden wichtige Sicherheitsmaßnahmen priorisiert, die beim Erstellen des Clusters eine Aktion von Ihnen erfordern. Weniger zentrale Features, sichere Standardeinstellungen sowie Einstellungen, die nach der Clustererstellung aktiviert werden können, werden weiter unten in diesem Dokument behandelt. Eine allgemeine Übersicht über Sicherheitsthemen finden Sie unter Sicherheit.

Checkliste

Die folgende Checkliste für die Bereitstellung enthält Best Practices zur Härtung Ihrer Anthos-Cluster-Plattformbereitstellung. Weitere Informationen zu den einzelnen Vorgehensweisen finden Sie in den Abschnitten in diesem Dokument.

Checkliste für die Bereitstellung Beschreibung
Identitäts- und Zugriffssteuerung

vSPS-Kontoberechtigungen verwenden:
Verwenden Sie ein vSphere-Administratorkonto mit minimalen Berechtigungen.

Google Cloud-Dienstkonten sichern:
Minimieren Sie die Berechtigungen für Google Cloud-Dienstkonten.

OpenID Connect (OIDC) konfigurieren:
Konfigurieren Sie OpenID Connect für die Nutzerauthentifizierung.

Zugriff mit Kubernetes-Namespaces und RBAC einschränken:
Verwenden Sie Namespaces mit RBAC für administrative Isolation und Mindestberechtigungen.

Datenschutz

Virtuelle vSphere-Maschinen verschlüsseln:
Sie können vSphere so einrichten, dass die von Anthos-Cluster auf VMware verwendeten Volumes verschlüsselt werden.

Secrets verwalten:
Verschlüsseln Sie inaktive Secrets.

Netzwerkschutz

Netzwerkzugriff auf Steuerungsebene und Knoten beschränken:
Richten Sie Steuerelemente ein, um die Netzwerke und Knoten der Steuerungsebene zu isolieren und zu schützen.

Netzwerkrichtlinien zur Beschränkung des Traffics verwenden:
Sie können Netzwerkrichtlinien implementieren, um clusterinternen Traffic einzuschränken.

Deklarative Sicherheit

Anthos Config Management-Richtliniencontroller verwenden:
Installieren Sie den Anthos Config Management Policy Controller für deklarative Sicherheitsrichtlinien in Ihren Clustern.

Wartung

Upgrade für Anthos ausführen:
Achten Sie darauf, dass Sie die neueste Version von Anthos für Ihre Plattform ausführen.

Sicherheitsbulletins ansehen:
Sehen Sie sich die Sicherheitsbulletins zu Anthos an, um die neuesten Ratschläge und Anleitungen zur Versionsverwaltung zu erhalten.

Monitoring und Logging

Optionen für das Logging von Anthos-Clustern festlegen:
Achten Sie darauf, dass das Logging aktiviert und in eine SIEM-Lösung integriert ist.

Identitäts- und Zugriffssteuerung

vSphere-Kontoberechtigungen verwenden

Das vCenter-Nutzerkonto, mit dem Sie Anthos-Cluster auf VMware installieren, muss über ausreichende Berechtigungen verfügen. Ein Nutzerkonto, dem die vCenter-Administratorrolle zugewiesen ist, verfügt beispielsweise über Berechtigungen für den vollständigen Zugriff auf alle vCenter-Objekte und bietet einem Anthos-Cluster auf VMware-Clusteradministrator vollständigen Zugriff.

Es wird empfohlen, das Prinzip der geringsten Berechtigung zu verwenden und nur die notwendigen Berechtigungen für die erfolgreiche Installation von Anthos zu gewähren. Wir haben die Mindestanzahl von Berechtigungen vordefiniert, die für die Installation erforderlich sind, sowie die Befehle, die zum Erteilen dieser Berechtigungen erforderlich sind.

Google Cloud-Dienstkonten sichern

Anthos-Cluster auf VMware benötigt drei Google Cloud-Dienstkonten:

  • Ein vordefiniertes Dienstkonto für den Zugriff auf die Anthos-Cluster auf VMware-Software. Sie erstellen dieses Konto beim Erwerb von Anthos.
  • Ein Registrierungsdienstkonto, das von Connect zum Registrieren von Anthos-Cluster auf VMware-Clustern mit Google Cloud verwendet werden soll.
  • Ein Cloud Logging-Dienstkonto zum Erfassen von Clusterlogs, die von Cloud Logging verwendet werden.

Während der Installation binden Sie Identity and Access Management-Rollen an diese Dienstkonten. Diese Rollen gewähren den Dienstkonten in Ihrem Projekt bestimmte Berechtigungen und können während der Installation generiert werden.

OpenID Connect konfigurieren

Hinweis: Sie können die Authentifizierung nur beim Erstellen des Clusters konfigurieren. Zur Konfiguration der Nutzerauthentifizierung für Ihre Cluster verwenden Sie OpenID Connect (OIDC).

Anthos-Cluster auf VMware unterstützt OIDC als einen der Authentifizierungsmechanismen für die Interaktion mit dem Kubernetes API-Server eines Nutzerclusters. Mit OIDC können Sie den Zugriff auf Kubernetes-Cluster verwalten, indem Sie die Standardverfahren in Ihrer Organisation zum Erstellen, Aktivieren und Deaktivieren von Nutzerkonten verwenden.

Informationen zur spezifischen OIDC-Unterstützung finden Sie in der folgenden Dokumentation:

Kubernetes-Namespaces und RBAC zum Einschränken des Zugriffs verwenden

Wenn Sie Teams mithilfe geringster Berechtigungen den Zugriff auf Kubernetes gewähren möchten, erstellen Sie Kubernetes-Namespaces oder umgebungsspezifische Cluster. Weisen Sie jedem Namespace Kostenstellen und entsprechende Labels für Rechnungslegung und Rückbuchungen zu. Gewähren Sie Entwicklern nur jenen Zugriff auf ihre Namespaces, den sie benötigen, um ihre Anwendungen bereitzustellen und zu verwalten, insbesondere in der Produktion.

Ordnen Sie die Aufgaben zu, die Nutzer für den Cluster ausführen müssen, und definieren Sie die Berechtigungen, die zum Ausführen der einzelnen Aufgaben erforderlich sind. Um Berechtigungen auf Cluster- und Namespaceebene zu gewähren, verwenden Sie Kubernetes RBAC.

Jenseits von Berechtigungen für Google Cloud-Dienstkonten, die zum Installieren von Anthos-Cluster auf VMware verwendet werden, gilt IAM nicht für Anthos-Cluster auf VMware-Cluster.

Weitere Informationen erhalten Sie in dieser Dokumentation:

Datenschutz

Virtuelle vSphere-Maschinen verschlüsseln

Anthos-Cluster auf VMware-Clusterknoten werden auf virtuellen Maschinen (VMs) in Ihrem vSphere-Cluster ausgeführt. Google empfiehlt dringend, alle inaktiven Daten zu verschlüsseln. Informationen zu vSphere finden Sie in der VMware vSphere-Sicherheits-PDF und in den Best Practices für die Verschlüsselung von VMs.

Dies muss vor der Installation von Anthos erfolgen.

Secrets verwalten

Konfigurieren Sie einen Secrets-Manager, der in Anthos-Cluster auf VMware-Cluster eingebunden ist, um einen zusätzlichen Schutz für vertrauliche Daten (wie in etcd gespeicherte Kubernetes-Secrets) zu bieten.

Wenn Sie Arbeitslasten in mehreren Umgebungen ausführen, bevorzugen Sie möglicherweise eine Lösung, die sowohl für Google Kubernetes Engine als auch für Anthos-Cluster auf VMware funktioniert. Wenn Sie einen externen Secrets-Manager wie HashiCorp Vault verwenden, müssen Sie ihn einrichten, bevor Sie Ihre Anthos-Cluster auf VMware-Cluster einbinden.

Für die Verwaltung von Secrets stehen mehrere Möglichkeiten zur Verfügung:

  • Sie können Kubernetes-Secrets nativ in Anthos-Cluster auf VMware verwenden. Wir gehen davon aus, dass Cluster wie zuvor beschrieben die vSphere-Verschlüsselung für VMs verwenden, die eine grundlegende Verschlüsselung inaktiver Daten für Secrets bietet. Secrets werden standardmäßig nicht weiter verschlüsselt.
  • Sie haben die Möglichkeit, einen externen Secrets-Manager wie HashiCorp Vault zu verwenden. Sie können sich mit einem Kubernetes-Dienstkonto oder einem Google Cloud-Dienstkonto bei HashiCorp authentifizieren.

Weitere Informationen erhalten Sie in dieser Dokumentation:

Netzwerkschutz

Netzwerkzugang zu Steuerungsebene und Knoten beschränken

Sichtbarkeit der Steuerungsebene und Knoten Ihres Clusters im Internet beschränken. Diese Einstellungen können nach dem Erstellen des Clusters nicht mehr geändert werden. Anthos-Cluster auf VMware-Clusterknoten werden standardmäßig mit RFC 1918-Adressen erstellt. Es wird empfohlen, dies nicht zu ändern. Firewallregeln in Ihrem lokalen Netzwerk implementieren, um den Zugriff auf die Steuerungsebene einzuschränken.

Traffic mithilfe von Netzwerkrichtlinien einschränken

Standardmäßig können alle Dienste in einem Anthos-Cluster auf VMware-Cluster miteinander kommunizieren. Informationen zur Steuerung der Dienst-zu-Dienst-Kommunikation je nach Arbeitslast finden Sie in den folgenden Abschnitten.

Die Beschränkung des Netzwerkzugriffs auf Dienste erschwert es Angreifern, sich innerhalb des Clusters seitlich zu bewegen. Sie bietet Diensten außerdem einen gewissen Schutz vor versehentlichen oder absichtlichen "Denial-of-Service"-Angriffen. Es gibt zwei empfohlene Methoden zur Steuerung des Traffics:

  • Verwenden Sie Istio, um den L7-Traffic zu Ihren Anwendungsendpunkten zu steuern. Wählen Sie diese Option aus, wenn Sie an Load-Balancing, Dienstautorisierung, Drosselung, Kontingenten und Messwerten interessiert sind.
  • Verwenden Sie Kubernetes-Netzwerkrichtlinien, um den L4-Traffic zwischen Pods zu steuern. Diese Option bietet eine einfache Möglichkeit der Zugriffssteuerung mit Kubernetes.

Sie können sowohl Istio- als auch Kubernetes-Netzwerkrichtlinien aktivieren, nachdem Sie Ihre Anthos-Cluster auf VMware-Cluster erstellt haben. Es besteht auch die Möglichkeit, sie bei Bedarf gemeinsam zu verwenden.

Weitere Informationen erhalten Sie in dieser Dokumentation:

Deklarative Sicherheit

Richtlinien-Controller von Anthos Config Management verwenden

Kubernetes-Zugangs-Controller sind Plug-ins, die steuern und durchsetzen, wie ein Kubernetes-Cluster verwendet wird. Zugangs-Controller sind ein wichtiger Bestandteil des Ansatzes "Defense-in-Depth" zur Härtung Ihres Clusters.

Es empfiehlt sich, Policy Controller von Anthos Config Management zu verwenden. Policy Controller verwendet das OPA Constraint Framework, um Richtlinien als CRDs zu beschreiben und durchzusetzen. Die Einschränkungen, die Sie auf Ihre Cluster anwenden möchten, sind in den Einschränkungsvorlagen definiert, die in Ihren Clustern bereitgestellt werden.

Informationen dazu, wie Sie Einschränkungen von Policy Controller verwenden, um viele der Schutzmaßnahmen wie Pod-Sicherheitsrichtlinien mit der zusätzlichen Möglichkeit, Ihre Richtlinien vor der Erzwingung zu testen, finden Sie unter Pod-Sicherheit mithilfe von Einschränkungen durchsetzen.

Weitere Informationen erhalten Sie in dieser Dokumentation:

Möglichkeit einschränken, dass sich Arbeitslasten selbst ändern

Bestimmte Kubernetes-Arbeitslasten, insbesondere Systemarbeitslasten, haben die Berechtigung, sich selbst zu ändern. Beispielsweise werden einige Arbeitslasten automatisch vertikal skaliert. Dies ist zwar praktisch, kann einem Angreifer, der bereits einen Knoten manipuliert hat, aber auch die Möglichkeit bieten, im Cluster weiter zu eskalieren. Ein Angreifer kann beispielsweise dafür sorgen, dass sich eine Arbeitslast auf dem Knoten selbst ändert, um als ein privilegierteres Dienstkonto ausgeführt zu werden, das im selben Namespace vorhanden ist.

Idealerweise sollten Arbeitslasten nicht die Berechtigung erhalten, sich selbst zu ändern. Wenn eine Selbständerung erforderlich ist, können Sie die Berechtigungen einschränken, indem Sie Gatekeeper- oder Policy Controller-Einschränkungen anwenden, z. B. NoUpdateServiceAccount aus der Open-Source-Gatekeeper-Bibliothek, die mehrere nützliche Sicherheitsrichtlinien bietet.

Wenn Sie Richtlinien bereitstellen, müssen die Controller, die den Clusterlebenszyklus verwalten, normalerweise die Richtlinien und die Logging- und Monitoring-Pipelines umgehen. Dies ist erforderlich, damit die Controller Änderungen am Cluster vornehmen können, z. B. durch das Anwenden von Clusterupgrades. Wenn Sie beispielsweise die Richtlinie NoUpdateServiceAccount in Anthos-Clustern auf VMware bereitstellen, müssen Sie die folgenden Parameter in Constraint festlegen:

parameters:
  allowedGroups:
  - system:masters
  allowedUsers:
  - system:serviceaccount:kube-system:monitoring-operator
  - system:serviceaccount:kube-system:stackdriver-operator
  - system:serviceaccount:kube-system:metrics-server-operator
  - system:serviceaccount:kube-system:logmon-operator

Wartung

Anthos aktualisieren

Kubernetes implementiert regelmäßig neue Sicherheits-Features und bietet Sicherheitspatches.

Sie sind dafür verantwortlich, Ihre Anthos-Cluster auf VMware-Cluster aktuell zu halten. Lesen Sie für jede Version die Versionshinweise. Planen Sie außerdem jeden Monat die Aktualisierung auf neue Patchversionen und alle drei Monate auf Nebenversionen ein. Informieren Sie sich, wie Sie Upgrades Ihrer Cluster ausführen.

Sie sind auch für Upgrades und Sicherungen in der vSphere-Infrastruktur verantwortlich:

Sicherheitsbulletins überwachen

Das Sicherheitsteam von Anthos veröffentlicht Sicherheitsbulletins für Sicherheitslücken mit hohem und kritischem Schweregrad.

Diese Bulletins folgen einem gängigen Schema zur Sicherheitslückennummer in Google Cloud und sind über die Hauptseite der Google Cloud-Bulletins und über die Anthos-Cluster auf VMware-Versionshinweise verknüpft. Jede Sicherheitsbulletin-Seite verfügt über einen RSS-Feed, über den Nutzer Updates abonnieren können.

Wenn Kunden Maßnahmen ergreifen müssen, um diese Sicherheitslücken mit hohem und kritischem Schweregrad zu adressieren, kontaktiert Google Kunden per E-Mail. Darüber hinaus kann Google Kunden mit Supportverträgen auch über Supportkanäle kontaktieren.

Weitere Informationen erhalten Sie in dieser Dokumentation:

Monitoring und Logging

Optionen für das Logging von Anthos-Clustern festlegen

Anthos-Cluster auf VMware bietet mehrere Optionen für das Cluster-Logging und -Monitoring, darunter cloudbasierte verwaltete Dienste, Open-Source-Tools und validierte Kompatibilität mit kommerziellen Lösungen von Drittanbietern.

  • Cloud Logging und Cloud Monitoring, aktiviert von In-Cluster-Agents, die mit Anthos-Cluster auf VMware bereitgestellt werden
  • Prometheus und Grafana, die standardmäßig deaktiviert sind
  • Validierte Konfigurationen mit Lösungen von Drittanbietern

Unabhängig von der Logging-Lösung, die Sie je nach Geschäftsanforderungen ausgewählt haben, empfehlen wir Ihnen dringend, vorwärts-relevante Ereignisse und Benachrichtigungen an einen zentralen SIEM-Dienst (Security Information and Event Management) zur Verwaltung von Sicherheitsvorfällen zu senden.

Weitere Informationen erhalten Sie in dieser Dokumentation: