Version 1.5 Diese Version wird unterstützt, wie in der Supportrichtlinie für Anthos-Versionen beschrieben. Darin sind die neuesten Patches und Updates zu Sicherheitslücken, Kontakten und Problemen mit Anthos-Clustern auf VMware (GKE On-Prem) aufgeführt. Weitere Informationen finden Sie in den Versionshinweisen. Dies ist nicht die neueste Version.

CIS-Benchmarks

In diesem Dokument wird die CIS Kubernetes-Benchmark vorgestellt. Außerdem erfahren Sie, wie Sie die Compliance mit der Benchmark prüfen und was GKE On-Prem konfiguriert, wenn Sie keine Empfehlung selbst implementieren können.

CIS-Benchmarks verwenden

Das Center for Internet Security (CIS) veröffentlicht Benchmarks für Best-Practice-Sicherheitsempfehlungen. Die CIS-Kubernetes-Benchmark besteht aus einer Reihe von Empfehlungen für die Konfiguration von Kubernetes, um ein hohes Sicherheitsniveau zu gewährleisten. Die Benchmark ist an einen bestimmten Kubernetes-Release gebunden. Die CIS-Kubernetes-Benchmark wurde für die Open-Source-Kubernetes-Distribution geschrieben und soll möglichst universell auf alle Distributionen anwendbar sein.

Versionen

Beachten Sie, dass die Versionsnummern für verschiedene Benchmarks möglicherweise nicht identisch sind.

Dieses Dokument bezieht sich auf folgende Versionen:

Anthos-Version Kubernetes-Version Version der CIS-Kubernetes-Benchmark
1.5.1 1.17.9 1,6

CIS-Kubernetes-Benchmark

Auf die Benchmark zugreifen

Die CIS-Kubernetes-Benchmark steht auf der CIS-Website zur Verfügung.

Empfehlungsstufen

In der CIS-Kubernetes-Benchmark:

Stufe Beschreibung
Stufe 1

Die Empfehlungen sollen:

  • praxisnah und effektiv sein,
  • einen klaren Sicherheitsvorteil bieten und
  • den Nutzen der Technologie nicht über das akzeptable Maß hinaus beeinträchtigen.
  • Stufe 2

    Erweitert das Profil von Stufe 1.

    Die Empfehlungen weisen eine oder mehrere der folgenden Eigenschaften auf:

  • Sie sind für Umgebungen oder Anwendungsfälle vorgesehen, in denen Sicherheit oberste Priorität hat.
  • Sie dienen als Defense-in-Depth-Maßnahme.
  • Sie beeinträchtigen unter Umständen den Nutzen oder die Leistung der Technologie.
  • Prüfungsstatus

    Für jede Empfehlung wird ein Bewertungsstatus angegeben. Der Prüfungsstatus gibt an, ob die angegebene Empfehlung automatisiert werden kann oder ob manuelle Schritte erforderlich sind. Beide Statuswerte sind wichtig und werden von uns entsprechend festgelegt:

    Bewertungen Beschreibung
    Automatisiert Empfehlungen, für die die Prüfung einer technischen Kontrolle vollständig automatisiert werden kann und im Status "Bestanden" oder "Nicht bestanden" validiert wird Empfehlungen enthalten die erforderlichen Informationen zur Implementierung der Automatisierung.
    Manuell Empfehlungen, für die die Prüfung einer technischen Kontrolle nicht vollständig automatisiert werden kann, sind vollständig oder teilweise manuell überprüft, um zu prüfen, ob der konfigurierte Status wie erwartet konfiguriert ist. Der erwartete Zustand kann je nach Umgebung variieren.

    Bewertung in GKE On-Prem

    Mit den folgenden Werten wird der Status von Kubernetes-Empfehlungen in GKE On-Prem festgelegt:

    Status Beschreibung
    Bestanden Entspricht einer Benchmarkempfehlung.
    Nicht bestanden Entspricht nicht einer Benchmarkempfehlung.
    Gleichwertige Kontrolle Entspricht nicht genau den Bedingungen in der Benchmarkempfehlung. GKE On-Prem bietet jedoch andere Mechanismen, um gleichwertige Sicherheitskontrollen bereitzustellen.
    Umgebungsabhängig GKE On-Prem konfiguriert keine Elemente, die mit dieser Empfehlung zusammenhängen. Die Konfiguration des Nutzers bestimmt, ob die Umgebung einer Benchmarkempfehlung entspricht.

    GKE On-Prem-Architektur

    GKE On-Prem verwendet einen "Administratorcluster", um einen oder mehrere "Nutzercluster" zu verwalten, auf denen tatsächliche Kubernetes-Arbeitslasten ausgeführt werden. Weitere Informationen zu dieser Architektur finden Sie in der GKE On-Prem-Übersicht. Die Konfiguration der Administrator- und Nutzercluster wird anhand der folgenden Benchmark bewertet.

    Status in GKE On-Prem

    Wenn Sie einen neuen GKE On-Prem-Cluster mit der hier angegebenen Version erstellen, schneidet er im Vergleich zur CIS-Kubernetes-Benchmark wie unten beschrieben ab.

    Status des GKE On-Prem-Administratorclusters:

    # Empfehlung Level Status
    1 Sicherheitskonfiguration des Masterknotens
    1.1 Konfigurationsdateien des Masterknotens
    1.1.1 Achten Sie darauf, dass die Berechtigungen für die Pod-Spezifikationsdatei des API-Servers auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle
    1.1.2 Achten Sie darauf, dass die Eigentümerschaft für die Pod-Spezifikationsdatei des API-Servers auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.1.3 Achten Sie darauf, dass die Berechtigungen für die Pod-Spezifikationsdatei des Controller-Managers auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle
    1.1.4 Achten Sie darauf, dass die Eigentümerschaft für die Pod-Spezifikationsdatei des Controller-Managers auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.1.5 Achten Sie darauf, dass die Berechtigungen für die Pod-Spezifikationsdatei des Planers auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle
    1.1.6 Achten Sie darauf, dass die Eigentümerschaft für die Pod-Spezifikationsdatei des Planers auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.1.7 Achten Sie darauf, dass die Berechtigungen für die Pod-Spezifikationsdatei von etcd auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle
    1.1.8 Achten Sie darauf, dass die Eigentümerschaft für die Pod-Spezifikationsdatei von etcd auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.1.9 Achten Sie darauf, dass die Berechtigungen für die Container Network Interface-Datei auf 644 oder restriktiver festgelegt sind (manuell). S1 Bestanden
    1.1.10 Achten Sie darauf, dass Eigentümerschaft für die Container Network Interface-Datei auf root:root festgelegt ist (manuell). S1 Bestanden
    1.1.11 Achten Sie darauf, dass die Berechtigungen für das etcd-Datenverzeichnis auf 700 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle
    1.1.12 Achten Sie darauf, dass die Eigentümerschaft für das etcd-Datenverzeichnisses auf etcd:etcd festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.1.13 Achten Sie darauf, dass die Berechtigungen für die admin.conf-Datei auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle
    1.1.14 Achten Sie darauf, dass die Eigentümerschaft für die admin.conf-Datei auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.1.15 Achten Sie darauf, dass die Berechtigungen für die scheduler.conf-Datei auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle
    1.1.16 Achten Sie darauf, dass die Eigentümerschaft für die scheduler.conf-Datei auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.1.17 Achten Sie darauf, dass die Berechtigungen für die controller-manager.conf-Datei auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle
    1.1.18 Achten Sie darauf, dass die Eigentümerschaft für die controller-manager.conf-Datei auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.1.19 Achten Sie darauf, dass die Eigentümerschaft für das Kubernetes PKI-Verzeichnis und die Datei auf root:root festgelegt sind (automatisiert). S1 Bestanden
    1.1.20 Achten Sie darauf, dass die Berechtigungen für die Kubernetes-PKI-Zertifikatsdatei auf 644 oder restriktiver festgelegt sind (manuell). S1 Bestanden
    1.1.21 Achten Sie darauf, dass die Berechtigungen für die Kubernetes-PKI-Schlüsseldatei auf 600 festgelegt sind (manuell). S1 Bestanden
    1.2 API-Server
    1.2.1 Achten Sie darauf, dass das Argument --anonymous-auth auf "false" festgelegt ist (manuell). S1 Nicht bestanden
    1.2.2 Das Argument --basic-auth-file darf nicht festgelegt sein. S1 Bestanden
    1.2.3 Der Parameter --token-auth-file darf nicht festgelegt sein (automatisiert). S1 Bestanden
    1.2.4 Achten Sie darauf, dass das Argument --kubelet-https auf "true" festgelegt ist (automatisiert). S1 Bestanden
    1.2.5 Die Argumente --kubelet-client-certificate und --kubelet-client-key müssen entsprechend festgelegt sein (automatisiert). S1 Bestanden
    1.2.6 Das Argument --kubelet-certificate-authority muss entsprechend festgelegt sein (automatisiert). S1 Bestanden
    1.2.7 Das Argument --authorization-mode darf nicht auf "AlwaysAllow" festgelegt sein (automatisiert). S1 Bestanden
    1.2.8 Das Argument --authorization-mode muss Node enthalten (automatisiert). S1 Bestanden
    1.2.9 Das Argument --authorization-mode muss RBAC enthalten (automatisiert). S1 Bestanden
    1.2.10 Das Zugangskontroll-Plug-in "EventRateLimit" muss festgelegt sein (manuell). S1 Nicht bestanden
    1.2.11 Das Zugangskontroll-Plug-in "AlwaysAdmit" darf nicht festgelegt sein (automatisiert). S1 Bestanden
    1.2.12 Das Zugangskontroll-Plug-in "AlwaysPullImages" muss festgelegt sein (manuell). S1 Umgebungsabhängig
    1.2.13 Das Zugangskontroll-Plug-in "SecurityContextDeny" muss festgelegt sein, wenn "PodSecurityPolicy" nicht verwendet wird (manuell). S1 Gleichwertige Kontrolle
    1.2.14 Das Zugangskontroll-Plug-in "ServiceAccount" muss festgelegt sein (automatisiert). S1 Bestanden
    1.2.15 Das Zugangskontroll-Plug-in "NamespaceLifecycle" muss festgelegt sein (automatisiert). S1 Bestanden
    1.2.16 Das Zugangskontroll-Plug-in "PodSecurityPolicy" muss festgelegt sein (automatisiert). S1 Gleichwertige Kontrolle
    1.2.17 Das Zugangskontroll-Plug-in "NodeRestriction" muss festgelegt sein (automatisiert). S1 Bestanden
    1.2.18 Das Argument --insecure-bind-address darf nicht festgelegt sein. S1 Bestanden
    1.2.19 Das Argument --insecure-port muss auf 0 festgelegt sein (automatisiert). S1 Bestanden
    1.2.20 Das Argument --secure-port darf nicht auf 0 festgelegt sein (automatisiert). S1 Bestanden
    1.2.21 Achten Sie darauf, dass das Argument --profiling auf "false" festgelegt ist (automatisiert). S1 Bestanden
    1.2.22 Das Argument --audit-log-path muss festgelegt sein (automatisiert). S1 Gleichwertige Kontrolle
    1.2.23 Achten Sie darauf, dass das Argument --audit-log-maxage auf 30 oder nach Bedarf festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.2.24 Achten Sie darauf, dass das Argument --audit-log-maxbackup auf 10 oder nach Bedarf festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.2.25 Achten Sie darauf, dass das Argument --audit-log-maxsize auf 100 oder nach Bedarf festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.2.26 Das Argument --request-timeout muss entsprechend festgelegt sein (automatisiert). S1 Bestanden
    1.2.27 Achten Sie darauf, dass das Argument --service-account-lookup auf "true" festgelegt ist (automatisiert). S1 Bestanden
    1.2.28 Das Argument --service-account-key-file muss entsprechend festgelegt sein (automatisiert). S1 Bestanden
    1.2.29 Die Argumente --etcd-certfile und --etcd-keyfile müssen entsprechend festgelegt sein (automatisiert). S1 Bestanden
    1.2.30 Die Argumente --tls-cert-file und --tls-private-key-file müssen entsprechend festgelegt sein (automatisiert). S1 Gleichwertige Kontrolle
    1.2.31 Das Argument --client-ca-file muss entsprechend festgelegt sein (automatisiert). S1 Bestanden
    1.2.32 Das Argument --etcd-cafile muss entsprechend festgelegt sein (automatisiert). S1 Bestanden
    1.2.33 Das Argument --encryption-provider-config muss entsprechend festgelegt sein (manuell). S1 Nicht bestanden
    1.2.34 Verschlüsselungsanbieter sollten entsprechend konfiguriert sein (manuell). S1 Nicht bestanden
    1.2.35 Der API-Server darf nur starke kryptografische Chiffren verwenden (manuell). S1 Bestanden
    1.3 Controller-Manager
    1.3.1 Das Argument --terminated-pod-gc-threshold muss entsprechend festgelegt sein (manuell). S1 Bestanden
    1.3.2 Achten Sie darauf, dass das Argument --profiling auf "false" festgelegt ist (automatisiert). S1 Bestanden
    1.3.3 Achten Sie darauf, dass das Argument --use-service-account-credentials auf "true" festgelegt ist (automatisiert). S1 Bestanden
    1.3.4 Das Argument --service-account-private-key-file muss entsprechend festgelegt sein (automatisiert). S1 Bestanden
    1.3.5 Das Argument --root-ca-file muss entsprechend festgelegt sein (automatisiert). S1 Bestanden
    1.3.6 Das Argument "RotateKubeletServerCertificate" muss auf "true" festgelegt sein (automatisiert). S2 Gleichwertige Kontrolle
    1.3.7 Das Argument --bind-address muss auf 127.0.0.1 festgelegt sein (automatisiert). S1 Bestanden
    1.4 Planer
    1.4.1 Achten Sie darauf, dass das Argument --profiling auf "false" festgelegt ist (automatisiert). S1 Bestanden
    1.4.2 Das Argument --bind-address muss auf 127.0.0.1 festgelegt sein (automatisiert). S1 Bestanden
    2 Etcd-Knotenkonfiguration
    2 Dateien für Etcd-Knotenkonfiguration
    2.1 Die Argumente --cert-file und --key-file müssen entsprechend festgelegt sein (automatisiert). S1 Bestanden
    2,2 Achten Sie darauf, dass das Argument --client-cert-auth auf "true" festgelegt ist (automatisiert). S1 Bestanden
    2,3 Achten Sie darauf, dass das Argument --auto-tls nicht auf "true" festgelegt ist (automatisiert). S1 Bestanden
    2.4 Die Argumente --peer-cert-file und --peer-key-file müssen entsprechend festgelegt sein (automatisiert). S1 Bestanden
    2,5 Achten Sie darauf, dass das Argument --peer-client-cert-auth auf "true" festgelegt ist (automatisiert). S1 Bestanden
    2,6 Achten Sie darauf, dass das Argument --peer-auto-tls nicht auf "true" festgelegt ist (automatisiert). S1 Bestanden
    2.7 Für etcd muss eine eindeutige Zertifizierungsstelle verwendet werden (manuell). S2 Bestanden
    3 Konfiguration der Steuerungsebene
    3.1 Authentifizierung und Autorisierung
    3.1.1 Die Clientzertifikatsauthentifizierung sollte nicht für Nutzer verwendet werden (manuell). S2 Bestanden
    3.2 Logging
    3.2.1 Eine Audit-Mindestrichtlinie muss erstellt sein (manuell). S1 Gleichwertige Kontrolle
    3.2.2 Die Audit-Richtlinie muss wichtige Sicherheitsaspekte abdecken (manuell). S2 Gleichwertige Kontrolle
    4 Sicherheitskonfiguration des Worker-Knotens
    4.1 Konfigurationsdateien der Worker-Knoten
    4.1.1 Die Berechtigungen für die kubelet-Servicedatei müssen auf 644 festgelegt oder restriktiver sein (automatisiert). S1 Bestanden
    4.1.2 Die Eigentümerschaft der kubelet-Servicedatei muss auf root:root festgelegt sein (automatisiert). S1 Bestanden
    4.1.3 Wenn die Proxy-kubeconfig-Datei vorhanden ist, müssen die Berechtigungen auf 644 oder restriktiver festgelegt sein (manuell). S1 Gleichwertige Kontrolle
    4.1.4 Die Eigentümerschaft der Proxy-kubeconfig-Datei muss auf root:root festgelegt sein (manuell). S1 Gleichwertige Kontrolle
    4.1.5 Die Berechtigungen für die Datei --kubeconfig kubelet.conf müssen auf 644 festgelegt oder restriktiver sein (automatisiert). S1 Gleichwertige Kontrolle
    4.1.6 Die Eigentümerschaft für die Datei --kubeconfig kubelet.conf muss auf root:root festgelegt sein (manuell). S1 Gleichwertige Kontrolle
    4.1.7 Die Berechtigungen für die Zertifizierungsstellendatei muss auf 644 festgelegt oder restriktiver sein (manuell). S1 Bestanden
    4.1.8 Die Eigentümerschaft für die Client-Zertifizierungsstellendatei muss auf root:root festgelegt sein (manuell). S1 Bestanden
    4.1.9 Die Berechtigungen für die Konfigurationsdatei kubelet --config müssen auf 644 festgelegt oder restriktiver sein (automatisiert). S1 Bestanden
    4.1.10 Die Eigentümerschaft für die Konfigurationsdatei kubelet --config muss auf root:root festgelegt sein (automatisiert). S1 Bestanden
    4.2 Kubelet
    4.2.1 Das Argument "anonymous-auth" muss auf "false" festgelegt sein (automatisiert). S1 Bestanden
    4.2.2 Das Argument --authorization-mode darf nicht auf "AlwaysAllow" festgelegt sein (automatisiert). S1 Bestanden
    4.2.3 Das Argument --client-ca-file muss entsprechend festgelegt sein (automatisiert). S1 Bestanden
    4.2.4 Das Argument --read-only-port muss auf 0 festgelegt ist (manuell). S1 Nicht bestanden
    4.2.5 Das Argument --streaming-connection-idle-timeout darf nicht auf 0 gesetzt sein (manuell). S1 Bestanden
    4.2.6 Achten Sie darauf, dass das Argument --protect-kernel-defaults auf "true" festgelegt ist (automatisiert). S1 Nicht bestanden
    4.2.7 Achten Sie darauf, dass das Argument --make-iptables-util-chains auf "true" festgelegt ist (automatisiert). S1 Bestanden
    4.2.8 Das Argument --hostname-override darf nicht festgelegt sein (manuell). S1 Bestanden
    4.2.9 Achten Sie darauf, dass das Argument --event-qps auf 0 oder eine Ebene gesetzt ist, die geeignete Ereigniserfassung ermöglicht (manuell). S2 Nicht bestanden
    4.2.10 Die Argumente --tls-cert-file und --tls-private-key-file müssen entsprechend festgelegt sein (manuell). S1 Gleichwertige Kontrolle
    4.2.11 Das Argument --rotate-certificates darf nicht auf "false" gesetzt sein (manuell). S1 Bestanden
    4.2.12 Das Argument "RotateletServerCertificate" muss auf "true" festgelegt sein (manuell). S1 Gleichwertige Kontrolle
    4.2.13 Achten Sie darauf, dass das Kubelet nur starke kryptografische Chiffren verwendet (manuell). S1 Gleichwertige Kontrolle
    Beschreibungen von Fehlern und gleichwertigen Kontrollen für den GKE On-Prem-Administratorcluster:
    # Empfehlung Level Status Wert Begründung
    1.1.1 Achten Sie darauf, dass die Berechtigungen für die Pod-Spezifikationsdatei des API-Servers auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.2 Achten Sie darauf, dass die Eigentümerschaft für die Pod-Spezifikationsdatei des API-Servers auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.3 Achten Sie darauf, dass die Berechtigungen für die Pod-Spezifikationsdatei des Controller-Managers auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.4 Achten Sie darauf, dass die Eigentümerschaft für die Pod-Spezifikationsdatei des Controller-Managers auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.5 Achten Sie darauf, dass die Berechtigungen für die Pod-Spezifikationsdatei des Planers auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.6 Achten Sie darauf, dass die Eigentümerschaft für die Pod-Spezifikationsdatei des Planers auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.7 Achten Sie darauf, dass die Berechtigungen für die Pod-Spezifikationsdatei von etcd auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.8 Achten Sie darauf, dass die Eigentümerschaft für die Pod-Spezifikationsdatei von etcd auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.11 Achten Sie darauf, dass die Berechtigungen für das etcd-Datenverzeichnis auf 700 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle 755 Das etcd-Datenverzeichnis hat die Standardberechtigungen 755, die zugehörigen Unterverzeichnisse sind jedoch 700.
    1.1.12 Achten Sie darauf, dass die Eigentümerschaft für das etcd-Datenverzeichnisses auf etcd:etcd festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle root:root Der etcd-Container wird als root ausgeführt und das etcd-Datenverzeichnis gehört root:root.
    1.1.13 Achten Sie darauf, dass die Berechtigungen für die admin.conf-Datei auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.14 Achten Sie darauf, dass die Eigentümerschaft für die admin.conf-Datei auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.15 Achten Sie darauf, dass die Berechtigungen für die scheduler.conf-Datei auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.16 Achten Sie darauf, dass die Eigentümerschaft für die scheduler.conf-Datei auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.17 Achten Sie darauf, dass die Berechtigungen für die controller-manager.conf-Datei auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.18 Achten Sie darauf, dass die Eigentümerschaft für die controller-manager.conf-Datei auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.2.1 Achten Sie darauf, dass das Argument --anonymous-auth auf "false" festgelegt ist (manuell). S1 Nicht bestanden Nicht definiert Einige GKE On-Prem-Monitoring-Komponenten verwenden eine anonyme Authentifizierung für Systemdiagnosen.
    1.2.10 Das Zugangskontroll-Plug-in "EventRateLimit" muss festgelegt sein (manuell). S1 Nicht bestanden Nicht definiert GKE On-Prem unterstützt nicht die Zugangssteuerung "EventRateLimit", da dies eine Kubernetes-Alphafunktion ist.
    1.2.12 Das Zugangskontroll-Plug-in "AlwaysPullImages" muss festgelegt sein (manuell). S1 Umgebungsabhängig Nicht definiert Die Zugangssteuerung "AlwaysPullImages" bietet einen gewissen Schutz für private Registry-Images in nicht operativen Clustern mit mehreren Instanzen. Dafür müssen Container Registries als Single Point of Failure zur Erstellung neuer Pods im gesamten Cluster dienen. GKE On-Prem aktiviert die Zugangssteuerung "AlwaysPullImages" nicht. Es liegt allein am Clusteradministrator, Zulassungsrichtlinien zu implementieren.
    1.2.13 Das Zugangskontroll-Plug-in "SecurityContextDeny" muss festgelegt sein, wenn "PodSecurityPolicy" nicht verwendet wird (manuell). S1 Gleichwertige Kontrolle Nicht definiert Richtlinien zu den Sicherheitseinstellungen in Pods werden mit Policy Controller und Anthos Config Management verwaltet.
    1.2.16 Das Zugangskontroll-Plug-in "PodSecurityPolicy" muss festgelegt sein (automatisiert). S1 Gleichwertige Kontrolle Nicht definiert Richtlinien zu den Sicherheitseinstellungen in Pods werden mit Policy Controller und Anthos Config Management verwaltet.
    1.2.22 Das Argument --audit-log-path muss festgelegt sein (automatisiert). S1 Gleichwertige Kontrolle Nicht definiert GKE On-Prem erfasst Audit-Logs, verwendet diese Flags jedoch nicht zur Prüfung. Weitere Informationen finden Sie in der GKE-Audit-Richtlinie zu GKE.
    1.2.23 Achten Sie darauf, dass das Argument --audit-log-maxage auf 30 oder nach Bedarf festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Nicht definiert GKE On-Prem erfasst Audit-Logs, verwendet diese Flags jedoch nicht zur Prüfung. Weitere Informationen finden Sie in der GKE-Audit-Richtlinie zu GKE.
    1.2.24 Achten Sie darauf, dass das Argument --audit-log-maxbackup auf 10 oder nach Bedarf festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Nicht definiert GKE On-Prem erfasst Audit-Logs, verwendet diese Flags jedoch nicht zur Prüfung. Weitere Informationen finden Sie in der GKE-Audit-Richtlinie zu GKE.
    1.2.25 Achten Sie darauf, dass das Argument --audit-log-maxsize auf 100 oder nach Bedarf festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Nicht definiert GKE On-Prem erfasst Audit-Logs, verwendet diese Flags jedoch nicht zur Prüfung. Weitere Informationen finden Sie in der GKE-Audit-Richtlinie zu GKE.
    1.2.30 Die Argumente --tls-cert-file und --tls-private-key-file müssen entsprechend festgelegt sein (automatisiert). S1 Gleichwertige Kontrolle Nicht definiert GKE On-Prem verwaltet kubelet-Server-TLS mit dem Flag --rotate-server-certificates.
    1.2.33 Das Argument --encryption-provider-config muss entsprechend festgelegt sein (manuell). S1 Nicht bestanden Nicht definiert GKE On-Prem unterstützt noch keine Verschlüsselung auf Anwendungsebene für Secrets.
    1.2.34 Verschlüsselungsanbieter sollten entsprechend konfiguriert sein (manuell). S1 Nicht bestanden Nicht definiert GKE On-Prem unterstützt noch keine Verschlüsselung auf Anwendungsebene für Secrets.
    1.3.6 Das Argument "RotateKubeletServerCertificate" muss auf "true" festgelegt sein (automatisiert). S2 Gleichwertige Kontrolle Nicht definiert GKE On-Prem aktiviert die Kubelet-Zertifikatsrotation, indem --rotate-server-certificates=true für kubelets festgelegt wird.
    3.2.1 Eine Audit-Mindestrichtlinie muss erstellt sein (manuell). S1 Gleichwertige Kontrolle Nicht definiert GKE On-Prem erfasst Audit-Logs, verwendet diese Flags jedoch nicht zur Prüfung. Weitere Informationen finden Sie in der GKE-Audit-Richtlinie zu GKE.
    3.2.2 Die Audit-Richtlinie muss wichtige Sicherheitsaspekte abdecken (manuell). S2 Gleichwertige Kontrolle Nicht definiert GKE On-Prem erfasst Audit-Logs, verwendet diese Flags jedoch nicht zur Prüfung. Weitere Informationen finden Sie in der GKE-Audit-Richtlinie zu GKE.
    4.1.3 Wenn die Proxy-kubeconfig-Datei vorhanden ist, müssen die Berechtigungen auf 644 oder restriktiver festgelegt sein (manuell). S1 Gleichwertige Kontrolle Nicht definiert kube-proxy wird in GKE On-Prem als DaemonSet ausgeführt und Berechtigungen werden über RBAC verwaltet.
    4.1.4 Die Eigentümerschaft der Proxy-kubeconfig-Datei muss auf root:root festgelegt sein (manuell). S1 Gleichwertige Kontrolle Nicht definiert kube-proxy wird in GKE On-Prem als DaemonSet ausgeführt und Berechtigungen werden über RBAC verwaltet.
    4.1.5 Die Berechtigungen für die Datei --kubeconfig kubelet.conf müssen auf 644 festgelegt oder restriktiver sein (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    4.1.6 Die Eigentümerschaft für die Datei --kubeconfig kubelet.conf muss auf root:root festgelegt sein (manuell). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    4.2.4 Das Argument --read-only-port muss auf 0 festgelegt ist (manuell). S1 Nicht bestanden 10255 Einige GKE On-Prem-Monitoring-Komponenten verwenden den schreibgeschützten Port von kubelet, um Messwerte abzurufen.
    4.2.6 Achten Sie darauf, dass das Argument --protect-kernel-defaults auf "true" festgelegt ist (automatisiert). S1 Nicht bestanden false Mit GKE On-Prem kann kubelet die erforderlichen Kernel-Einstellungen festlegen.
    4.2.9 Achten Sie darauf, dass das Argument --event-qps auf 0 oder eine Ebene gesetzt ist, die geeignete Ereigniserfassung ermöglicht (manuell). S2 Nicht bestanden Nicht definiert Ereignisse sind Kubernetes-Objekte, die in etcd gespeichert sind. Damit eine Überlastung von etcd vermieden wird, werden sie nur eine Stunde lang aufbewahrt. Sie sind daher kein geeigneter Mechanismus für Sicherheits-Audits. Das Zulassen von unbegrenzten Ereignissen, wie in dieser Kontrolle vorgeschlagen, setzt den Cluster einem unnötigen DoS-Risiko aus und widerspricht der Empfehlung zur Verwendung von Zugangs-EventRateLimits. Sicherheitsrelevante Ereignisse, die dauerhaft gespeichert werden müssen, sollten an Logs gesendet werden.
    4.2.10 Die Argumente --tls-cert-file und --tls-private-key-file müssen entsprechend festgelegt sein (manuell). S1 Gleichwertige Kontrolle Nicht definiert GKE On-Prem verwaltet kubelet-Server-TLS mit dem Flag --rotate-server-certificates.
    4.2.12 Das Argument "RotateletServerCertificate" muss auf "true" festgelegt sein (manuell). S1 Gleichwertige Kontrolle Nicht definiert GKE On-Prem aktiviert die Kubelet-Zertifikatsrotation, indem --rotate-server-certificates=true für kubelets festgelegt wird.
    4.2.13 Achten Sie darauf, dass das Kubelet nur starke kryptografische Chiffren verwendet (manuell). S1 Gleichwertige Kontrolle Kubelet verwendet den Standardsatz kryptografischer Chiffren.

    Status des GKE On-Prem-Nutzerclusters:

    # Empfehlung Level Status
    1 Sicherheitskonfiguration des Masterknotens
    1.1 Konfigurationsdateien des Masterknotens
    1.1.1 Achten Sie darauf, dass die Berechtigungen für die Pod-Spezifikationsdatei des API-Servers auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle
    1.1.2 Achten Sie darauf, dass die Eigentümerschaft für die Pod-Spezifikationsdatei des API-Servers auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.1.3 Achten Sie darauf, dass die Berechtigungen für die Pod-Spezifikationsdatei des Controller-Managers auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle
    1.1.4 Achten Sie darauf, dass die Eigentümerschaft für die Pod-Spezifikationsdatei des Controller-Managers auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.1.5 Achten Sie darauf, dass die Berechtigungen für die Pod-Spezifikationsdatei des Planers auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle
    1.1.6 Achten Sie darauf, dass die Eigentümerschaft für die Pod-Spezifikationsdatei des Planers auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.1.7 Achten Sie darauf, dass die Berechtigungen für die Pod-Spezifikationsdatei von etcd auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle
    1.1.8 Achten Sie darauf, dass die Eigentümerschaft für die Pod-Spezifikationsdatei von etcd auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.1.9 Achten Sie darauf, dass die Berechtigungen für die Container Network Interface-Datei auf 644 oder restriktiver festgelegt sind (manuell). S1 Bestanden
    1.1.10 Achten Sie darauf, dass Eigentümerschaft für die Container Network Interface-Datei auf root:root festgelegt ist (manuell). S1 Bestanden
    1.1.11 Achten Sie darauf, dass die Berechtigungen für das etcd-Datenverzeichnis auf 700 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle
    1.1.12 Achten Sie darauf, dass die Eigentümerschaft für das etcd-Datenverzeichnisses auf etcd:etcd festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.1.13 Achten Sie darauf, dass die Berechtigungen für die admin.conf-Datei auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle
    1.1.14 Achten Sie darauf, dass die Eigentümerschaft für die admin.conf-Datei auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.1.15 Achten Sie darauf, dass die Berechtigungen für die scheduler.conf-Datei auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle
    1.1.16 Achten Sie darauf, dass die Eigentümerschaft für die scheduler.conf-Datei auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.1.17 Achten Sie darauf, dass die Berechtigungen für die controller-manager.conf-Datei auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle
    1.1.18 Achten Sie darauf, dass die Eigentümerschaft für die controller-manager.conf-Datei auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.1.19 Achten Sie darauf, dass die Eigentümerschaft für das Kubernetes PKI-Verzeichnis und die Datei auf root:root festgelegt sind (automatisiert). S1 Bestanden
    1.1.20 Achten Sie darauf, dass die Berechtigungen für die Kubernetes-PKI-Zertifikatsdatei auf 644 oder restriktiver festgelegt sind (manuell). S1 Bestanden
    1.1.21 Achten Sie darauf, dass die Berechtigungen für die Kubernetes-PKI-Schlüsseldatei auf 600 festgelegt sind (manuell). S1 Bestanden
    1.2 API-Server
    1.2.1 Achten Sie darauf, dass das Argument --anonymous-auth auf "false" festgelegt ist (manuell). S1 Nicht bestanden
    1.2.2 Das Argument --basic-auth-file darf nicht festgelegt sein. S1 Bestanden
    1.2.3 Der Parameter --token-auth-file darf nicht festgelegt sein (automatisiert). S1 Bestanden
    1.2.4 Achten Sie darauf, dass das Argument --kubelet-https auf "true" festgelegt ist (automatisiert). S1 Bestanden
    1.2.5 Die Argumente --kubelet-client-certificate und --kubelet-client-key müssen entsprechend festgelegt sein (automatisiert). S1 Bestanden
    1.2.6 Das Argument --kubelet-certificate-authority muss entsprechend festgelegt sein (automatisiert). S1 Bestanden
    1.2.7 Das Argument --authorization-mode darf nicht auf "AlwaysAllow" festgelegt sein (automatisiert). S1 Bestanden
    1.2.8 Das Argument --authorization-mode muss Node enthalten (automatisiert). S1 Bestanden
    1.2.9 Das Argument --authorization-mode muss RBAC enthalten (automatisiert). S1 Bestanden
    1.2.10 Das Zugangskontroll-Plug-in "EventRateLimit" muss festgelegt sein (manuell). S1 Nicht bestanden
    1.2.11 Das Zugangskontroll-Plug-in "AlwaysAdmit" darf nicht festgelegt sein (automatisiert). S1 Bestanden
    1.2.12 Das Zugangskontroll-Plug-in "AlwaysPullImages" muss festgelegt sein (manuell). S1 Umgebungsabhängig
    1.2.13 Das Zugangskontroll-Plug-in "SecurityContextDeny" muss festgelegt sein, wenn "PodSecurityPolicy" nicht verwendet wird (manuell). S1 Gleichwertige Kontrolle
    1.2.14 Das Zugangskontroll-Plug-in "ServiceAccount" muss festgelegt sein (automatisiert). S1 Bestanden
    1.2.15 Das Zugangskontroll-Plug-in "NamespaceLifecycle" muss festgelegt sein (automatisiert). S1 Bestanden
    1.2.16 Das Zugangskontroll-Plug-in "PodSecurityPolicy" muss festgelegt sein (automatisiert). S1 Gleichwertige Kontrolle
    1.2.17 Das Zugangskontroll-Plug-in "NodeRestriction" muss festgelegt sein (automatisiert). S1 Bestanden
    1.2.18 Das Argument --insecure-bind-address darf nicht festgelegt sein. S1 Nicht bestanden
    1.2.19 Das Argument --insecure-port muss auf 0 festgelegt sein (automatisiert). S1 Nicht bestanden
    1.2.20 Das Argument --secure-port darf nicht auf 0 festgelegt sein (automatisiert). S1 Bestanden
    1.2.21 Achten Sie darauf, dass das Argument --profiling auf "false" festgelegt ist (automatisiert). S1 Bestanden
    1.2.22 Das Argument --audit-log-path muss festgelegt sein (automatisiert). S1 Gleichwertige Kontrolle
    1.2.23 Achten Sie darauf, dass das Argument --audit-log-maxage auf 30 oder nach Bedarf festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.2.24 Achten Sie darauf, dass das Argument --audit-log-maxbackup auf 10 oder nach Bedarf festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.2.25 Achten Sie darauf, dass das Argument --audit-log-maxsize auf 100 oder nach Bedarf festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle
    1.2.26 Das Argument --request-timeout muss entsprechend festgelegt sein (automatisiert). S1 Bestanden
    1.2.27 Achten Sie darauf, dass das Argument --service-account-lookup auf "true" festgelegt ist (automatisiert). S1 Bestanden
    1.2.28 Das Argument --service-account-key-file muss entsprechend festgelegt sein (automatisiert). S1 Bestanden
    1.2.29 Die Argumente --etcd-certfile und --etcd-keyfile müssen entsprechend festgelegt sein (automatisiert). S1 Bestanden
    1.2.30 Die Argumente --tls-cert-file und --tls-private-key-file müssen entsprechend festgelegt sein (automatisiert). S1 Gleichwertige Kontrolle
    1.2.31 Das Argument --client-ca-file muss entsprechend festgelegt sein (automatisiert). S1 Bestanden
    1.2.32 Das Argument --etcd-cafile muss entsprechend festgelegt sein (automatisiert). S1 Bestanden
    1.2.33 Das Argument --encryption-provider-config muss entsprechend festgelegt sein (manuell). S1 Nicht bestanden
    1.2.34 Verschlüsselungsanbieter sollten entsprechend konfiguriert sein (manuell). S1 Nicht bestanden
    1.2.35 Der API-Server darf nur starke kryptografische Chiffren verwenden (manuell). S1 Bestanden
    1.3 Controller-Manager
    1.3.1 Das Argument --terminated-pod-gc-threshold muss entsprechend festgelegt sein (manuell). S1 Bestanden
    1.3.2 Achten Sie darauf, dass das Argument --profiling auf "false" festgelegt ist (automatisiert). S1 Bestanden
    1.3.3 Achten Sie darauf, dass das Argument --use-service-account-credentials auf "true" festgelegt ist (automatisiert). S1 Bestanden
    1.3.4 Das Argument --service-account-private-key-file muss entsprechend festgelegt sein (automatisiert). S1 Bestanden
    1.3.5 Das Argument --root-ca-file muss entsprechend festgelegt sein (automatisiert). S1 Bestanden
    1.3.6 Das Argument "RotateKubeletServerCertificate" muss auf "true" festgelegt sein (automatisiert). S2 Gleichwertige Kontrolle
    1.3.7 Das Argument --bind-address muss auf 127.0.0.1 festgelegt sein (automatisiert). S1 Bestanden
    1.4 Planer
    1.4.1 Achten Sie darauf, dass das Argument --profiling auf "false" festgelegt ist (automatisiert). S1 Bestanden
    1.4.2 Das Argument --bind-address muss auf 127.0.0.1 festgelegt sein (automatisiert). S1 Bestanden
    2 Etcd-Knotenkonfiguration
    2 Dateien für Etcd-Knotenkonfiguration
    2.1 Die Argumente --cert-file und --key-file müssen entsprechend festgelegt sein (automatisiert). S1 Bestanden
    2,2 Achten Sie darauf, dass das Argument --client-cert-auth auf "true" festgelegt ist (automatisiert). S1 Bestanden
    2,3 Achten Sie darauf, dass das Argument --auto-tls nicht auf "true" festgelegt ist (automatisiert). S1 Bestanden
    2.4 Die Argumente --peer-cert-file und --peer-key-file müssen entsprechend festgelegt sein (automatisiert). S1 Bestanden
    2,5 Achten Sie darauf, dass das Argument --peer-client-cert-auth auf "true" festgelegt ist (automatisiert). S1 Bestanden
    2,6 Achten Sie darauf, dass das Argument --peer-auto-tls nicht auf "true" festgelegt ist (automatisiert). S1 Bestanden
    2.7 Für etcd muss eine eindeutige Zertifizierungsstelle verwendet werden (manuell). S2 Bestanden
    3 Konfiguration der Steuerungsebene
    3.1 Authentifizierung und Autorisierung
    3.1.1 Die Clientzertifikatsauthentifizierung sollte nicht für Nutzer verwendet werden (manuell). S2 Bestanden
    3.2 Logging
    3.2.1 Eine Audit-Mindestrichtlinie muss erstellt sein (manuell). S1 Gleichwertige Kontrolle
    3.2.2 Die Audit-Richtlinie muss wichtige Sicherheitsaspekte abdecken (manuell). S2 Gleichwertige Kontrolle
    4 Sicherheitskonfiguration des Worker-Knotens
    4.1 Konfigurationsdateien der Worker-Knoten
    4.1.1 Die Berechtigungen für die kubelet-Servicedatei müssen auf 644 festgelegt oder restriktiver sein (automatisiert). S1 Bestanden
    4.1.2 Die Eigentümerschaft der kubelet-Servicedatei muss auf root:root festgelegt sein (automatisiert). S1 Bestanden
    4.1.3 Wenn die Proxy-kubeconfig-Datei vorhanden ist, müssen die Berechtigungen auf 644 oder restriktiver festgelegt sein (manuell). S1 Gleichwertige Kontrolle
    4.1.4 Die Eigentümerschaft der Proxy-kubeconfig-Datei muss auf root:root festgelegt sein (manuell). S1 Gleichwertige Kontrolle
    4.1.5 Die Berechtigungen für die Datei --kubeconfig kubelet.conf müssen auf 644 festgelegt oder restriktiver sein (automatisiert). S1 Gleichwertige Kontrolle
    4.1.6 Die Eigentümerschaft für die Datei --kubeconfig kubelet.conf muss auf root:root festgelegt sein (manuell). S1 Gleichwertige Kontrolle
    4.1.7 Die Berechtigungen für die Zertifizierungsstellendatei muss auf 644 festgelegt oder restriktiver sein (manuell). S1 Bestanden
    4.1.8 Die Eigentümerschaft für die Client-Zertifizierungsstellendatei muss auf root:root festgelegt sein (manuell). S1 Bestanden
    4.1.9 Die Berechtigungen für die Konfigurationsdatei kubelet --config müssen auf 644 festgelegt oder restriktiver sein (automatisiert). S1 Bestanden
    4.1.10 Die Eigentümerschaft für die Konfigurationsdatei kubelet --config muss auf root:root festgelegt sein (automatisiert). S1 Bestanden
    4.2 Kubelet
    4.2.1 Das Argument "anonymous-auth" muss auf "false" festgelegt sein (automatisiert). S1 Bestanden
    4.2.2 Das Argument --authorization-mode darf nicht auf "AlwaysAllow" festgelegt sein (automatisiert). S1 Bestanden
    4.2.3 Das Argument --client-ca-file muss entsprechend festgelegt sein (automatisiert). S1 Bestanden
    4.2.4 Das Argument --read-only-port muss auf 0 festgelegt ist (manuell). S1 Nicht bestanden
    4.2.5 Das Argument --streaming-connection-idle-timeout darf nicht auf 0 gesetzt sein (manuell). S1 Bestanden
    4.2.6 Achten Sie darauf, dass das Argument --protect-kernel-defaults auf "true" festgelegt ist (automatisiert). S1 Nicht bestanden
    4.2.7 Achten Sie darauf, dass das Argument --make-iptables-util-chains auf "true" festgelegt ist (automatisiert). S1 Bestanden
    4.2.8 Das Argument --hostname-override darf nicht festgelegt sein (manuell). S1 Bestanden
    4.2.9 Achten Sie darauf, dass das Argument --event-qps auf 0 oder eine Ebene gesetzt ist, die geeignete Ereigniserfassung ermöglicht (manuell). S2 Nicht bestanden
    4.2.10 Die Argumente --tls-cert-file und --tls-private-key-file müssen entsprechend festgelegt sein (manuell). S1 Gleichwertige Kontrolle
    4.2.11 Das Argument --rotate-certificates darf nicht auf "false" gesetzt sein (manuell). S1 Bestanden
    4.2.12 Das Argument "RotateletServerCertificate" muss auf "true" festgelegt sein (manuell). S1 Gleichwertige Kontrolle
    4.2.13 Achten Sie darauf, dass das Kubelet nur starke kryptografische Chiffren verwendet (manuell). S1 Gleichwertige Kontrolle
    Beschreibungen von Fehlern und gleichwertigen Kontrollen für den GKE On-Prem Nutzercluster:
    # Empfehlung Level Status Wert Begründung
    1.1.1 Achten Sie darauf, dass die Berechtigungen für die Pod-Spezifikationsdatei des API-Servers auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.2 Achten Sie darauf, dass die Eigentümerschaft für die Pod-Spezifikationsdatei des API-Servers auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.3 Achten Sie darauf, dass die Berechtigungen für die Pod-Spezifikationsdatei des Controller-Managers auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.4 Achten Sie darauf, dass die Eigentümerschaft für die Pod-Spezifikationsdatei des Controller-Managers auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.5 Achten Sie darauf, dass die Berechtigungen für die Pod-Spezifikationsdatei des Planers auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.6 Achten Sie darauf, dass die Eigentümerschaft für die Pod-Spezifikationsdatei des Planers auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.7 Achten Sie darauf, dass die Berechtigungen für die Pod-Spezifikationsdatei von etcd auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.8 Achten Sie darauf, dass die Eigentümerschaft für die Pod-Spezifikationsdatei von etcd auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.11 Achten Sie darauf, dass die Berechtigungen für das etcd-Datenverzeichnis auf 700 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle 755 Das etcd-Datenverzeichnis hat die Standardberechtigungen 755, die zugehörigen Unterverzeichnisse sind jedoch 700.
    1.1.12 Achten Sie darauf, dass die Eigentümerschaft für das etcd-Datenverzeichnisses auf etcd:etcd festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle root:root Der etcd-Container wird als root ausgeführt und das etcd-Datenverzeichnis gehört root:root.
    1.1.13 Achten Sie darauf, dass die Berechtigungen für die admin.conf-Datei auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.14 Achten Sie darauf, dass die Eigentümerschaft für die admin.conf-Datei auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.15 Achten Sie darauf, dass die Berechtigungen für die scheduler.conf-Datei auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.16 Achten Sie darauf, dass die Eigentümerschaft für die scheduler.conf-Datei auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.17 Achten Sie darauf, dass die Berechtigungen für die controller-manager.conf-Datei auf 644 oder restriktiver festgelegt sind (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.1.18 Achten Sie darauf, dass die Eigentümerschaft für die controller-manager.conf-Datei auf root:root festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    1.2.1 Achten Sie darauf, dass das Argument --anonymous-auth auf "false" festgelegt ist (manuell). S1 Nicht bestanden Nicht definiert Einige GKE On-Prem-Monitoring-Komponenten verwenden eine anonyme Authentifizierung für Systemdiagnosen.
    1.2.10 Das Zugangskontroll-Plug-in "EventRateLimit" muss festgelegt sein (manuell). S1 Nicht bestanden Nicht definiert GKE On-Prem unterstützt nicht die Zugangssteuerung "EventRateLimit", da dies eine Kubernetes-Alphafunktion ist.
    1.2.12 Das Zugangskontroll-Plug-in "AlwaysPullImages" muss festgelegt sein (manuell). S1 Umgebungsabhängig Nicht definiert Die Zugangssteuerung "AlwaysPullImages" bietet einen gewissen Schutz für private Registry-Images in nicht operativen Clustern mit mehreren Instanzen. Dafür müssen Container Registries als Single Point of Failure zur Erstellung neuer Pods im gesamten Cluster dienen. GKE On-Prem aktiviert die Zugangssteuerung "AlwaysPullImages" nicht. Es liegt allein am Clusteradministrator, Zulassungsrichtlinien zu implementieren.
    1.2.13 Das Zugangskontroll-Plug-in "SecurityContextDeny" muss festgelegt sein, wenn "PodSecurityPolicy" nicht verwendet wird (manuell). S1 Gleichwertige Kontrolle Nicht definiert Richtlinien zu den Sicherheitseinstellungen in Pods werden mit Policy Controller und Anthos Config Management verwaltet.
    1.2.16 Das Zugangskontroll-Plug-in "PodSecurityPolicy" muss festgelegt sein (automatisiert). S1 Gleichwertige Kontrolle Nicht definiert Richtlinien zu den Sicherheitseinstellungen in Pods werden mit Policy Controller und Anthos Config Management verwaltet.
    1.2.18 Das Argument --insecure-bind-address darf nicht festgelegt sein. S1 Nicht bestanden 127.0.0.1 Der Messwert-Proxy für den Nutzercluster kube-apiserver kommuniziert derzeit über localhost innerhalb des Pods kube-apiserver über HTTP.
    1.2.19 Das Argument --insecure-port muss auf 0 festgelegt sein (automatisiert). S1 Nicht bestanden 80 Der Messwert-Proxy für den Nutzercluster kube-apiserver kommuniziert derzeit über localhost innerhalb des Pods kube-apiserver über HTTP.
    1.2.22 Das Argument --audit-log-path muss festgelegt sein (automatisiert). S1 Gleichwertige Kontrolle Nicht definiert GKE On-Prem erfasst Audit-Logs, verwendet diese Flags jedoch nicht zur Prüfung. Weitere Informationen finden Sie in der GKE-Audit-Richtlinie zu GKE.
    1.2.23 Achten Sie darauf, dass das Argument --audit-log-maxage auf 30 oder nach Bedarf festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Nicht definiert GKE On-Prem erfasst Audit-Logs, verwendet diese Flags jedoch nicht zur Prüfung. Weitere Informationen finden Sie in der GKE-Audit-Richtlinie zu GKE.
    1.2.24 Achten Sie darauf, dass das Argument --audit-log-maxbackup auf 10 oder nach Bedarf festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Nicht definiert GKE On-Prem erfasst Audit-Logs, verwendet diese Flags jedoch nicht zur Prüfung. Weitere Informationen finden Sie in der GKE-Audit-Richtlinie zu GKE.
    1.2.25 Achten Sie darauf, dass das Argument --audit-log-maxsize auf 100 oder nach Bedarf festgelegt ist (automatisiert). S1 Gleichwertige Kontrolle Nicht definiert GKE On-Prem erfasst Audit-Logs, verwendet diese Flags jedoch nicht zur Prüfung. Weitere Informationen finden Sie in der GKE-Audit-Richtlinie zu GKE.
    1.2.30 Die Argumente --tls-cert-file und --tls-private-key-file müssen entsprechend festgelegt sein (automatisiert). S1 Gleichwertige Kontrolle Nicht definiert GKE On-Prem verwaltet kubelet-Server-TLS mit dem Flag --rotate-server-certificates.
    1.2.33 Das Argument --encryption-provider-config muss entsprechend festgelegt sein (manuell). S1 Nicht bestanden Nicht definiert GKE On-Prem unterstützt noch keine Verschlüsselung auf Anwendungsebene für Secrets.
    1.2.34 Verschlüsselungsanbieter sollten entsprechend konfiguriert sein (manuell). S1 Nicht bestanden Nicht definiert GKE On-Prem unterstützt noch keine Verschlüsselung auf Anwendungsebene für Secrets.
    1.3.6 Das Argument "RotateKubeletServerCertificate" muss auf "true" festgelegt sein (automatisiert). S2 Gleichwertige Kontrolle Nicht definiert GKE On-Prem aktiviert die Kubelet-Zertifikatsrotation, indem --rotate-server-certificates=true für kubelets festgelegt wird.
    3.2.1 Eine Audit-Mindestrichtlinie muss erstellt sein (manuell). S1 Gleichwertige Kontrolle Nicht definiert GKE On-Prem erfasst Audit-Logs, verwendet diese Flags jedoch nicht zur Prüfung. Weitere Informationen finden Sie in der GKE-Audit-Richtlinie zu GKE.
    3.2.2 Die Audit-Richtlinie muss wichtige Sicherheitsaspekte abdecken (manuell). S2 Gleichwertige Kontrolle Nicht definiert GKE On-Prem erfasst Audit-Logs, verwendet diese Flags jedoch nicht zur Prüfung. Weitere Informationen finden Sie in der GKE-Audit-Richtlinie zu GKE.
    4.1.3 Wenn die Proxy-kubeconfig-Datei vorhanden ist, müssen die Berechtigungen auf 644 oder restriktiver festgelegt sein (manuell). S1 Gleichwertige Kontrolle Nicht definiert kube-proxy wird in GKE On-Prem als DaemonSet ausgeführt und Berechtigungen werden über RBAC verwaltet.
    4.1.4 Die Eigentümerschaft der Proxy-kubeconfig-Datei muss auf root:root festgelegt sein (manuell). S1 Gleichwertige Kontrolle Nicht definiert kube-proxy wird in GKE On-Prem als DaemonSet ausgeführt und Berechtigungen werden über RBAC verwaltet.
    4.1.5 Die Berechtigungen für die Datei --kubeconfig kubelet.conf müssen auf 644 festgelegt oder restriktiver sein (automatisiert). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    4.1.6 Die Eigentümerschaft für die Datei --kubeconfig kubelet.conf muss auf root:root festgelegt sein (manuell). S1 Gleichwertige Kontrolle Pod-Spezifikationen der Steuerungsebene werden durch eine ähnlich restriktive RBAC-Autorisierungsrichtlinie im Administratorcluster geschützt und sind nicht als Dateien auf dem Laufwerk vorhanden.
    4.2.4 Das Argument --read-only-port muss auf 0 festgelegt ist (manuell). S1 Nicht bestanden 10255 Einige GKE On-Prem-Monitoring-Komponenten verwenden den schreibgeschützten Port von kubelet, um Messwerte abzurufen.
    4.2.6 Achten Sie darauf, dass das Argument --protect-kernel-defaults auf "true" festgelegt ist (automatisiert). S1 Nicht bestanden false Mit GKE On-Prem kann kubelet die erforderlichen Kernel-Einstellungen festlegen.
    4.2.9 Achten Sie darauf, dass das Argument --event-qps auf 0 oder eine Ebene gesetzt ist, die geeignete Ereigniserfassung ermöglicht (manuell). S2 Nicht bestanden Nicht definiert Ereignisse sind Kubernetes-Objekte, die in etcd gespeichert sind. Damit eine Überlastung von etcd vermieden wird, werden sie nur eine Stunde lang aufbewahrt. Sie sind daher kein geeigneter Mechanismus für Sicherheits-Audits. Das Zulassen von unbegrenzten Ereignissen, wie in dieser Kontrolle vorgeschlagen, setzt den Cluster einem unnötigen DoS-Risiko aus und widerspricht der Empfehlung zur Verwendung von Zugangs-EventRateLimits. Sicherheitsrelevante Ereignisse, die dauerhaft gespeichert werden müssen, sollten an Logs gesendet werden.
    4.2.10 Die Argumente --tls-cert-file und --tls-private-key-file müssen entsprechend festgelegt sein (manuell). S1 Gleichwertige Kontrolle Nicht definiert GKE On-Prem verwaltet kubelet-Server-TLS mit dem Flag --rotate-server-certificates.
    4.2.12 Das Argument "RotateletServerCertificate" muss auf "true" festgelegt sein (manuell). S1 Gleichwertige Kontrolle Nicht definiert GKE On-Prem aktiviert die Kubelet-Zertifikatsrotation, indem --rotate-server-certificates=true für kubelets festgelegt wird.
    4.2.13 Achten Sie darauf, dass das Kubelet nur starke kryptografische Chiffren verwendet (manuell). S1 Gleichwertige Kontrolle Kubelet verwendet den Standardsatz kryptografischer Chiffren.

    Benchmarks prüfen

    Spezifische Anleitungen für die Prüfung der einzelnen Empfehlungen sind im Rahmen der entsprechenden CIS-Benchmark verfügbar. Vielleicht möchten Sie aber verschiedene Prüfungen automatisieren, um die Verifizierung dieser Kontrollen in Ihrer Umgebung zu vereinfachen. Die unten aufgeführten Tools können Ihnen dabei helfen.

    Automatisierte Prüfung der CIS-Kubernetes-Benchmark

    Sie können das Open-Source-Tool kube-bench verwenden, um Ihre Clusterkonfiguration anhand der CIS-Kubernetes-Benchmark zu testen.

    Sie müssen unbedingt die richtige Version angeben, zum Beispiel:

    kube-bench node --benchmark cis-1.6