Freigeben über


Zentrum für Internet-Sicherheit (CIS) – Kubernetes-Benchmark

Da es sich bei Azure Kubernetes Service (AKS) um einen sicheren Dienst handelt, ist er mit den Standards SOC, ISO, PCI-DSS und HIPAA konform. In diesem Artikel wird die Sicherheitshärtung für AKS behandelt, die auf dem Kubernetes-Benchmark des CIS basiert. Weitere Informationen zur AKS-Sicherheit finden Sie unter Sicherheitskonzepte für Anwendungen und Cluster in Azure Kubernetes Service (AKS). Weitere Informationen zum CIS-Benchmark finden Sie unter Center for Internet Security(CIS)-Benchmarks.

Kubernetes CIS-Benchmark

Es folgen die Ergebnisse der CIS Kubernetes Benchmark v1.12.0 Empfehlungen zu AKS. Die Ergebnisse gelten für AKS 1.32.x bis AKS 1.34.x. Supportzeitachsen finden Sie unter unterstützten Kubernetes-Versionen.

Hinweis

Neben dem Kubernetes CIS-Benchmark gibt es auch einen AKS CIS-Benchmark .

Sicherheitsstufen

CIS-Benchmarks bieten zwei Ebenen von Sicherheitseinstellungen:

  • L1 (Level 1) empfiehlt essenzielle, grundlegende Sicherheitsanforderungen, die auf jedem System konfiguriert werden können und zu einer geringen oder gar keinen Störung oder eingeschränkten Funktionalität des Diensts führen sollten.
  • L2 (Level 2) empfiehlt Sicherheitseinstellungen für Umgebungen mithöherem Sicherheitsbedarf, die zu einer eingeschränkten Funktionalität führen können.

Bewertungsstatus

Für jede Empfehlung ist ein Bewertungsstatus enthalten. Der Bewertungsstatus gibt an, ob die jeweilige Empfehlung automatisiert werden kann oder manuelle Schritte zur Implementierung erforderlich sind. Beide Status sind gleichermaßen wichtig und werden wie folgt bestimmt und unterstützt:

  • Automatisiert: stellt Empfehlungen dazu dar, welche Bewertung einer technischen Kontrollmaßnahme vollständig automatisiert und auf Bestehen überprüft werden kann. Zu den Empfehlungen gehören die erforderlichen Informationen zur Implementierung der Automatisierung.
  • Manuell: Stellt Empfehlungen dar, für die die Bewertung eines technischen Steuerelements nicht vollständig automatisiert werden kann, und erfordert alle oder einige manuelle Schritte, um zu überprüfen, ob der konfigurierte Zustand wie erwartet festgelegt ist. Der erwartete Zustand kann je nach Umgebung variieren.

Empfehlungen des Typs Automatisiert wirken sich auf die Benchmarkbewertung aus, wenn sie nicht angewandt werden, während Empfehlungen des Typs Manuell sich nicht auswirken.

Nachweisstatus

Empfehlungen können einen der folgenden Nachweisstatus aufweisen:

  • Pass: Die Empfehlung wurde angewendet.
  • Fehler: Die Empfehlung wurde nicht angewendet.
  • Nicht zutreffend: Die Empfehlung bezieht sich auf Anforderungen an Manifestdateiberechtigungen, die für AKS nicht relevant sind. Kubernetes-Cluster verwenden standardmäßig ein Manifestmodell, um die Pods der Steuerungsebene bereitzustellen, die auf Dateien der Knoten-VM basieren. Der Kubernetes-Benchmark des CIS empfiehlt, dass diese Dateien bestimmte Berechtigungsanforderungen aufweisen müssen. AKS-Cluster verwenden ein Helm-Chart, um Pods der Steuerungsebene bereitzustellen, und brauchen dafür keine Dateien der Knoten-VM.
  • Abhängig von der Umgebung: Die Empfehlung wird in der spezifischen Umgebung des Benutzers angewandt und nicht von AKS kontrolliert. Empfehlungen des Typs Automatisiert wirken sich auf die Benchmarkbewertung aus, unabhängig davon, ob die Empfehlung für die spezifische Umgebung des Benutzers gilt.
  • Gleichwertiges Steuerelement: Die Empfehlung wurde auf eine andere, gleichwertige Weise implementiert.

Benchmarkdetails

CIS-ID Empfehlungsbeschreibung Bewertungsstatus Ebene Status Ursache
1 Komponenten der Steuerungsebene
1.1 Knotenkonfigurationsdateien der Steuerungsebene
1.1.1 Stellen Sie sicher, dass die Berechtigungen für die Spezifikationsdatei für den API-Serverpod auf 600 oder restriktiver festgelegt sind. Automatisiert L1 N/A, da AKS eine verwaltete Lösung ist
1.1.2 Stellen Sie sicher, dass der Besitzer der API-Server-Pod-Spezifikationsdatei auf root: root Automatisiert L1 N/A, da AKS eine verwaltete Lösung ist
1.1.3 Stellen Sie sicher, dass die Berechtigungen für die Spezifikationsdatei des Controller-Manager-Pods auf 600 oder restriktiver festgelegt sind. Automatisiert L1 N/A, da AKS eine verwaltete Lösung ist
1.1.4 Stellen Sie sicher, dass der Besitzer der Controller-Manager-Pod-Spezifikationsdatei auf root: root Automatisiert L1 N/A, da AKS eine verwaltete Lösung ist
1.1.5 Stellen Sie sicher, dass die Berechtigungen für die Spezifikationsdatei des Scheduler-Pods auf 600 oder restriktiver festgelegt sind. Automatisiert L1 N/A, da AKS eine verwaltete Lösung ist
1.1.6 Stellen Sie sicher, dass der Besitzer der Spezifikationsdatei des Scheduler-Pods auf root: root festgelegt ist Automatisiert L1 N/A, da AKS eine verwaltete Lösung ist
1.1.7 Stellen Sie sicher, dass die Berechtigungen für die Spezifikationsdatei des etcd-Pods auf 600 oder restriktiver festgelegt sind. Automatisiert L1 N/A, da AKS eine verwaltete Lösung ist
1.1.8 Stellen Sie sicher, dass der Besitz der Datei mit der Usw.-Pod-Spezifikation auf root: root festgelegt ist Automatisiert L1 N/A, da AKS eine verwaltete Lösung ist
1.1.9 Stellen Sie sicher, dass die Berechtigungen für die Containernetzwerkschnittstellen-Datei auf 600 oder restriktiver festgelegt sind. Handbuch L1 N/A, da AKS eine verwaltete Lösung ist
1.1.10 Stellen Sie sicher, dass der Besitz der Containernetzwerkschnittstellendatei auf root: rootfestgelegt ist. Handbuch L1 N/A, da AKS eine verwaltete Lösung ist
1.1.11 Stellen Sie sicher, dass die Berechtigungen für das etcd-Datenverzeichnis auf 700 oder restriktiver festgelegt sind. Automatisiert L1 N/A, da AKS eine verwaltete Lösung ist
1.1.12 Stellen Sie sicher, dass der Besitz des etcd-Datenverzeichnisses auf etcd:etcd festgelegt ist. Automatisiert L1 N/A, da AKS eine verwaltete Lösung ist
1.1.13 Stellen Sie sicher, dass die Berechtigungen für die Datei „admin.conf“ auf 600 oder restriktiver festgelegt sind. Automatisiert L1 N/A, da AKS eine verwaltete Lösung ist
1.1.14 Stellen Sie sicher, dass der Besitzer der Datei „admin.conf“ auf root: root festgelegt ist Automatisiert L1 N/A, da AKS eine verwaltete Lösung ist
1.1.15 Stellen Sie sicher, dass die Berechtigungen für die Datei „scheduler.conf“ auf 600 oder restriktiver festgelegt sind. Automatisiert L1 N/A, da AKS eine verwaltete Lösung ist
1.1.16 Stellen Sie sicher, dass der Besitzer der Datei „scheduler.conf“ auf root: root festgelegt ist Automatisiert L1 N/A, da AKS eine verwaltete Lösung ist
1.1.17 Stellen Sie sicher, dass die Berechtigungen für die Datei „controller-manager.conf“ auf 600 oder restriktiver festgelegt sind. Automatisiert L1 N/A, da AKS eine verwaltete Lösung ist
1.1.18 Stellen Sie sicher, dass der Besitzer der Datei „controller-manager.conf“ auf root: root festgelegt ist Automatisiert L1 N/A, da AKS eine verwaltete Lösung ist
1.1.19 Stellen Sie sicher, dass das Kubernetes-PKI-Verzeichnis und der Dateibesitz auf root: root festgelegt sind Automatisiert L1 N/A, da AKS eine verwaltete Lösung ist
1.1.20 Stellen Sie sicher, dass die Berechtigungen für die Kubernetes-PKI-Zertifikatdatei auf 600 oder restriktiver festgelegt sind. Handbuch L1 N/A, da AKS eine verwaltete Lösung ist
1.1.21 Stellen Sie sicher, dass die Berechtigungen für die Kubernetes-PKI-Schlüsseldatei auf 600 festgelegt sind. Handbuch L1 N/A, da AKS eine verwaltete Lösung ist
1.2 API-Server
1.2.1 Stellen Sie sicher, dass das Argument --anonymous-auth auf „false“ festgelegt ist. Handbuch L1 Pass
1.2.2 Stellen Sie sicher, dass der --token-auth-file Parameter nicht festgelegt ist Automatisiert L1 Fehler Von AKS automatisch rotiert, ist der Parameter zurzeit festgelegt
1.2.3 Stellen Sie sicher, dass --DenyServiceExternalIPs nicht festgelegt ist Handbuch L1 Fehler Kunden können Azure-Richtlinie für Kubernetes verwenden, um Dienste mit externer IP zu verweigern.
1.2.4 Stellen Sie sicher, dass die Argumente --kubelet-client-certificate und --kubelet-client-key angemessen festgelegt sind. Automatisiert L1 Pass
1.2.5 Stellen Sie sicher, dass das Argument --kubelet-certificate-authority angemessen festgelegt ist. Automatisiert L1 Fehler Kubelet-Dienstzertifikat verwendet selbstsigniertes Zertifikat
1.2.6 Stellen Sie sicher, dass das --authorization-mode Argument nicht auf AlwaysAllow festgelegt ist Automatisiert L1 Pass
1.2.7 Stellen Sie sicher, dass das Argument --authorization-mode „Node“ einschließt. Automatisiert L1 Pass
1.2.8 Stellen Sie sicher, dass das Argument --authorization-mode „RBAC“ einschließt. Automatisiert L1 Pass
1.2.9 Stellen Sie sicher, dass das Zulassungssteuerungs-Plug-In „EventRateLimit“ eingestellt ist. Handbuch L1 Fehler Betriebliche Auswirkungen
1.2.10 Stellen Sie sicher, dass das Zugangssteuerungs-Plug-In AlwaysAdmit nicht festgelegt ist Automatisiert L1 Pass
1.2.11 Stellen Sie sicher, dass das Zulassungssteuerungs-Plug-In „AlwaysPullImages“ eingestellt ist. Handbuch L1 Fehler Betriebliche Auswirkungen
1.2.12 Stellen Sie sicher, dass das Zulassungssteuerungs-Plug-In „ServiceAccount“ eingestellt ist. Automatisiert L2 Pass
1.2.13 Stellen Sie sicher, dass das Zulassungssteuerungs-Plug-In „NamespaceLifecycle“ eingestellt ist. Automatisiert L2 Pass
1.2.14 Stellen Sie sicher, dass das Zulassungssteuerungs-Plug-In „NodeRestriction“ eingestellt ist. Automatisiert L2 Pass
1.2.15 Stellen Sie sicher, dass das Argument --profiling auf „false“ festgelegt ist. Automatisiert L1 Pass
1.2.16 Stellen Sie sicher, dass das Argument --audit-log-path festgelegt ist. Automatisiert L1 Pass
1.2.17 Stellen Sie sicher, dass das Argument --audit-log-maxage auf 30 oder angemessen festgelegt ist. Automatisiert L1 Äquivalente Steuerung AKS speichert das Überwachungsprotokoll für 14 Tage, Deployment.yaml hat den Wert 0.
1.2.18 Stellen Sie sicher, dass das Argument --audit-log-maxbackup auf 10 oder angemessen festgelegt ist. Automatisiert L1 Äquivalente Steuerung AKS speichert das Überwachungsprotokoll für 14 Tage, Deployment.yaml hat den Wert 0.
1.2.19 Stellen Sie sicher, dass das Argument --audit-log-maxsize auf 100 oder angemessen festgelegt ist. Automatisiert L1 Pass
1.2.20 Stellen Sie sicher, dass das Argument --request-timeout angemessen festgelegt ist. Handbuch L1 Pass Der Parameter ist nicht festgelegt, wodurch der Standardwert = 60s festgelegt ist (was kompatibel ist)
1.2.21 Stellen Sie sicher, dass das Argument --service-account-lookup auf „true“ festgelegt ist. Automatisiert L1 Pass Der Parameter ist nicht festgelegt, wodurch der Standardwert als „true“ festgelegt ist (was kompatibel ist)
1.2.22 Stellen Sie sicher, dass das Argument --service-account-key-file angemessen festgelegt ist. Automatisiert L1 Pass
1.2.23 Stellen Sie sicher, dass die Argumente --etcd-certfile und --etcd-keyfile angemessen festgelegt sind. Automatisiert L1 Pass
1.2.24 Stellen Sie sicher, dass die Argumente --tls-cert-file und --tls-private-key-file angemessen festgelegt sind. Automatisiert L1 Pass
1.2.25 Stellen Sie sicher, dass das Argument --client-ca-file angemessen festgelegt ist. Automatisiert L1 Pass
1.2.26 Stellen Sie sicher, dass das Argument --etcd-cafile angemessen festgelegt ist. Automatisiert L1 Pass
1.2.27 Stellen Sie sicher, dass das Argument --encryption-provider-config angemessen festgelegt ist. Handbuch L1 Abhängig von der Umgebung Argument wird festgelegt, wenn Azure KMS aktiviert ist
1.2.28 Sicherstellen, dass die Verschlüsselungsanbieter angemessen konfiguriert sind Handbuch L1 Abhängig von der Umgebung Argument wird festgelegt, wenn Azure KMS aktiviert ist
1.2.29 Stellen Sie sicher, dass der API-Server nur starke kryptografische Verschlüsselungen verwendet. Handbuch L1 Pass AKS unterstützt eine Teilmenge von 4 Strong Ciphersuites von 21 empfohlenen von CIS
1.2.30 Stellen Sie sicher, dass der --service-account-extend-token-expiration Parameter auf „false“ festgelegt ist Automatisiert L1 Abhängig von der Umgebung Dieser Parameter wird auf „false“ festgelegt, wenn OIDC im Cluster aktiviert ist
1.3 Controller-Manager
1.3.1 Stellen Sie sicher, dass das Argument --terminated-pod-gc-threshold angemessen festgelegt ist. Handbuch L1 Pass AKS legt den Standardwert auf 6000 anstelle von 12500 fest
1.3.2 Stellen Sie sicher, dass das Argument --profiling auf „false“ festgelegt ist. Automatisiert L1 Pass
1.3.3 Stellen Sie sicher, dass das Argument --use-service-account-credentials auf „true“ festgelegt ist. Automatisiert L1 Pass
1.3.4 Stellen Sie sicher, dass das Argument --service-account-private-key-file angemessen festgelegt ist. Automatisiert L1 Pass
1.3.5 Stellen Sie sicher, dass das Argument --root-ca-file angemessen festgelegt ist. Automatisiert L1 Pass
1.3.6 Stellen Sie sicher, dass das Argument „RotateKubeletServerCertificate“ auf „true“ festgelegt ist. Automatisiert L2 Pass Der Parameter ist auf „true“ festgelegt, siehe Kubelet Serving Certificate Rotation
1.3.7 Stellen Sie sicher, dass das Argument --bind-address auf „127.0.0.1“ festgelegt ist. Automatisiert L1 Äquivalente Steuerung Die IP-Adresse von Pod wird verwendet
1.4 Scheduler
1.4.1 Stellen Sie sicher, dass das Argument --profiling auf „false“ festgelegt ist. Automatisiert L1 Pass
1.4.2 Stellen Sie sicher, dass das Argument --bind-address auf „127.0.0.1“ festgelegt ist. Automatisiert L1 Äquivalente Steuerung Die IP-Adresse von Pod wird verwendet
2 etcd
2.1 Stellen Sie sicher, dass die Argumente --cert-file und --key-file angemessen festgelegt sind. Automatisiert L1 Pass
2.2 Stellen Sie sicher, dass das Argument --client-cert-auth auf „true“ festgelegt ist. Automatisiert L1 Pass
2.3 Stellen Sie sicher, dass das --auto-tls Argument nicht auf „true“ festgelegt ist Automatisiert L1 Pass Der Parameter ist nicht festgelegt, wodurch der Standardwert als „false“ festgelegt ist (was kompatibel ist)
2.4 Stellen Sie sicher, dass die Argumente --peer-cert-file und --peer-key-file angemessen festgelegt sind. Automatisiert L1 Pass
2.5 Stellen Sie sicher, dass das Argument --peer-client-cert-auth auf „true“ festgelegt ist. Automatisiert L1 Pass
2.6 Stellen Sie sicher, dass das --peer-auto-tls Argument nicht auf „true“ festgelegt ist Automatisiert L1 Pass Der Parameter ist nicht festgelegt, wodurch der Standardwert als „false“ festgelegt ist (was kompatibel ist)
2.7 Stellen Sie sicher, dass eine eindeutige Zertifizierungsstelle für etcd verwendet wird. Handbuch L2 Pass --client-ca-file für API-Server unterscheidet sich von --trusted-ca-file für etcd
3 Konfiguration der Steuerungsebene
3.1 Authentifizierung und Autorisierung
3.1.1 Clientzertifikatauthentifizierung sollte nicht für Benutzer verwendet werden Handbuch L1 Pass Bei der Bereitstellung eines AKS-Clusters sind lokale Konten standardmäßig aktiviert. Sie können lokale Konten deaktivieren, um Clientzertifikate für die Authentifizierung zu deaktivieren.
3.1.2 Die Dienstkontotokenauthentifizierung sollte nicht für Benutzer verwendet werden Handbuch L1 Pass AKS bietet Unterstützung für die Microsoft Entra-Authentifizierung für Anforderungen, die an die Clustersteuerungsebene gesendet werden. Die Nutzung von Servicekonto-Token bleibt dem Kunden überlassen (um bei Bedarf eine bewährte Methode zu erzwingen)
3.1.3 Bootstrap-Tokenauthentifizierung sollte nicht für Benutzer verwendet werden Handbuch L1 Pass Bootstrap-Token können von Benutzern nicht verwendet werden
3.2 Protokollierung
3.2.1 Stellen Sie sicher, dass eine minimale Überprüfungsrichtlinie erstellt wurde. Handbuch L1 Pass
3.2.2 Stellen Sie sicher, dass die Überprüfungsrichtlinie die wichtigsten Sicherheitsbedenken abdeckt. Handbuch L2 Pass
4 Workerknoten
4,1 Workerknoten-Konfigurationsdateien
4.1.1 Stellen Sie sicher, dass die Berechtigungen für die Datei „kubelet service“ auf 600 oder restriktiver festgelegt sind. Automatisiert L1 Pass
4.1.2 Stellen Sie sicher, dass der Besitzer der Kubelet-Dienstdatei auf root: root festgelegt ist Automatisiert L1 Pass
4.1.3 Wenn die Datei „proxy kubeconfig“ vorhanden ist, stellen Sie sicher, dass die Berechtigungen auf 600 oder restriktiver festgelegt sind. Handbuch L1
4.1.4 Wenn eine Kubeconfig-Proxydatei vorhanden ist, stellen Sie sicher, dass der Besitz auf root: root festgelegt ist Handbuch L1
4.1.5 Stellen Sie sicher, dass die Berechtigungen für die Datei „kubelet.conf“ --kubeconfig auf 600 oder restriktiver festgelegt sind. Automatisiert L1 Pass
4.1.6 Stellen Sie sicher, dass der Besitz der --kubeconfig Kubelet.conf-Datei auf root: root festgelegt ist Automatisiert L1 Pass
4.1.7 Stellen Sie sicher, dass die Berechtigungen für die Zertifizierungsstellendatei auf 600 oder restriktiver festgelegt sind. Handbuch L1 Pass
4.1.8 Stellen Sie sicher, dass der Besitzer der Datei der Clientzertifizierungsstellen auf root: root festgelegt ist Handbuch L1 Pass
4.1.9 Wenn die Konfigurationsdatei „kubelet config.yaml“ verwendet wird, stellen Sie sicher, dass die Berechtigungen auf 600 oder restriktiver festgelegt sind. Automatisiert L1 Pass
4.1.10 Wenn die Kubelet config.yaml-Konfigurationsdatei verwendet wird, stellen Sie sicher, dass der Dateibesitz auf root: root festgelegt ist Automatisiert L1 Pass
4,2 Kubelet
4.2.1 Stellen Sie sicher, dass das Argument --anonymous-auth auf „false“ festgelegt ist. Automatisiert L1 Pass
4.2.2 Stellen Sie sicher, dass das --authorization-mode Argument nicht auf AlwaysAllow festgelegt ist Automatisiert L1 Pass
4.2.3 Stellen Sie sicher, dass das Argument --client-ca-file angemessen festgelegt ist. Automatisiert L1 Pass
4.2.4 Stellen Sie sicher, dass das Argument --read-only-port auf „0“ festgelegt ist. Handbuch L1 Pass
4.2.5 Stellen Sie sicher, dass das --streaming-connection-idle-timeout Argument nicht auf 0 festgelegt ist Handbuch L1 Pass
4.2.6 Stellen Sie sicher, dass das Argument --make-iptables-util-chains auf „true“ festgelegt ist. Automatisiert L1 Pass
4.2.7 Stellen Sie sicher, dass das --hostname-override Argument nicht festgelegt ist Handbuch L1 Pass
4.2.8 Stellen Sie sicher, dass das Argument --eventRecordQPS auf einen Wert festgelegt ist, der eine geeignete Ereigniserfassung sicherstellt. Handbuch L2 Pass
4.2.9 Stellen Sie sicher, dass die Argumente --tls-cert-file und --tls-private-key-file angemessen festgelegt sind. Handbuch L1 Pass
4.2.10 Stellen Sie sicher, dass das --rotate-certificates Argument nicht auf „false“ festgelegt ist Automatisiert L1 Pass
4.2.11 Vergewissern Sie sich, dass das Argument „RotateKubeletServerCertificate“ auf TRUE festgelegt ist. Handbuch L1 Pass
4.2.12 Stellen Sie sicher, dass das Kubelet nur starke kryptografische Verschlüsselungen verwendet. Handbuch L1 Pass
4.2.13 Stellen Sie sicher, dass ein Grenzwert für Pod-PIDs festgelegt ist. Handbuch L1 Pass
4.2.14 Stellen Sie sicher, dass das Kubelet die Verwendung des RuntimeDefault seccomp-Profils erzwingt Handbuch L1 Abhängig von der Umgebung AKS verwendet standardmäßig Unconfined. Die benutzerdefinierte Knotenkonfiguration kann verwendet werden, um das Seccomp-Profil zu aktivieren RuntimeDefault .
4.3 kube-proxy
4.3.1 Stellen Sie sicher, dass der Metrikdienst kube-proxy an localhost gebunden ist. Automatisiert L1 Fehler AKS verfügt über zentrales Prometheus-Scraping für kube-proxy und wendet Warnungen und automatische Korrekturen an, wenn KubeProxyStale erkannt wird. metrics-bind-address ist für diesen Zweck festgelegt.
5 Richtlinien
5,1 RBAC- und Dienstkonten
5.1.1 Stellen Sie sicher, dass die Clusteradministratorrolle nur bei Bedarf verwendet wird. Automatisiert L1 Abhängig von der Umgebung Verwenden Sie integrierte Azure-Richtliniendefinitionen für Azure Kubernetes Service
5.1.2 Minimieren Sie den Zugriff auf Geheimnisse. Automatisiert L1 Abhängig von der Umgebung
5.1.3 Minimieren Sie die Nutzung von Platzhaltern in „Roles“ und „ClusterRoles“. Automatisiert L1 Abhängig von der Umgebung Verwenden Sie integrierte Azure-Richtliniendefinitionen für Azure Kubernetes Service
5.1.4 Minimieren Sie den Zugriff auf die Poderstellung. Automatisiert L1 Abhängig von der Umgebung
5.1.5 Stellen Sie sicher, dass Standarddienstkonten nicht aktiv verwendet werden Automatisiert L1 Abhängig von der Umgebung
5.1.6 Stellen Sie sicher, dass Dienstkonto-Token nur bei Bedarf eingebunden werden. Automatisiert L1 Abhängig von der Umgebung
5.1.7 Vermeiden Sie die Verwendung der Gruppe „system:masters“ Handbuch L1 Abhängig von der Umgebung
5.1.8 Beschränken Sie die Verwendung der Berechtigungen „Binden“, „Identität wechseln“ und „Eskalieren“ im Kubernetes-Cluster Handbuch L1 Abhängig von der Umgebung
5.1.9 Minimieren Sie den Zugriff auf die Erstellung persistenter Volumes. Handbuch L1 Abhängig von der Umgebung
5.1.10 Minimieren Sie den Zugriff auf die Proxy-Unterressource von Knoten Handbuch L1 Abhängig von der Umgebung
5.1.11 Minimieren des Zugriffs auf die Genehmigungsunterressource von certificatesigningrequests Objekten Handbuch L1 Abhängig von der Umgebung
5.1.12 Minimieren Sie den Zugriff auf Webhook-Konfigurationsobjekte. Handbuch L1 Abhängig von der Umgebung
5.1.13 Minimieren Sie den Zugriff auf die Erstellung von Dienstkontotoken. Handbuch L1 Abhängig von der Umgebung
5.2 Pod-Sicherheitsstandards
5.2.1 Stellen Sie sicher, dass der Cluster über mindestens einen aktiven Richtliniensteuerungsmechanismus verfügt. Handbuch L1 Abhängig von der Umgebung Verwenden Sie integrierte Azure-Richtliniendefinitionen für Azure Kubernetes Service
5.2.2 Minimieren Sie die Zulassung privilegierter Container. Handbuch L1 Abhängig von der Umgebung Verwenden Sie integrierte Azure-Richtliniendefinitionen für Azure Kubernetes Service
5.2.3 Minimieren Sie die Zulassung von Containern, die den Namespace der Hostprozess-ID freigeben möchten. Handbuch L1 Abhängig von der Umgebung Verwenden Sie integrierte Azure-Richtliniendefinitionen für Azure Kubernetes Service
5.2.4 Minimieren Sie die Zulassung von Containern, die den Host-IPC-Namespace teilen möchten. Handbuch L1 Abhängig von der Umgebung Verwenden Sie integrierte Azure-Richtliniendefinitionen für Azure Kubernetes Service
5.2.5 Minimieren Sie die Zulassung von Containern, die den Namespace des Host-Netzwerks freigeben möchten. Handbuch L1 Abhängig von der Umgebung Verwenden Sie integrierte Azure-Richtliniendefinitionen für Azure Kubernetes Service
5.2.6 Minimieren Sie die Zulassung von Containern mit allowPrivilegeEscalation. Handbuch L1 Abhängig von der Umgebung Verwenden Sie integrierte Azure-Richtliniendefinitionen für Azure Kubernetes Service
5.2.7 Minimieren Sie die Zulassung von root-Containern. Handbuch L2 Abhängig von der Umgebung
5.2.8 Minimieren Sie die Zulassung von Containern mit der NET_RAW-Funktion. Handbuch L1 Abhängig von der Umgebung Verwenden Sie integrierte Azure-Richtliniendefinitionen für Azure Kubernetes Service
5.2.9 Minimieren Sie die Zulassung von Containern mit zusätzlichen Funktionen. Handbuch L1 Abhängig von der Umgebung Verwenden Sie integrierte Azure-Richtliniendefinitionen für Azure Kubernetes Service
5.2.10 Minimieren Sie die Zulassung von Containern mit zugewiesenen Funktionen Handbuch L2 Abhängig von der Umgebung
5.2.11 Minimieren Sie die Zulassung von Windows HostProcess-Containern. Handbuch L1 Abhängig von der Umgebung
5.2.12 Minimieren Sie die Zulassung von HostPath-Volumes. Handbuch L1 Abhängig von der Umgebung Verwenden Sie integrierte Azure-Richtliniendefinitionen für Azure Kubernetes Service
5.2.13 Minimieren Sie die Zulassung von Containern, die HostPorts verwenden. Handbuch L1 Abhängig von der Umgebung
5.3 Netzwerkrichtlinien und CNI
5.3.1 Stellen Sie sicher, dass die verwendete CNI Netzwerkrichtlinien unterstützt. Handbuch L1 Pass
5.3.2 Stellen Sie sicher, dass für alle Namespaces Netzwerkrichtlinien definiert sind. Handbuch L2 Abhängig von der Umgebung
5.4 Geheimnisverwaltung:
5.4.1 Verwenden Sie vorzugsweise Geheimnisse als Dateien gegenüber Geheimnissen als Umgebungsvariablen. Handbuch L2 Abhängig von der Umgebung
5.4.2 Erwägen Sie die externe Speicherung von Geheimnissen. Handbuch L2 Abhängig von der Umgebung
5.5 Erweiterbare Zulassungssteuerung
5.5.1 Konfigurieren Sie die Bildherkunft mithilfe des ImagePolicyWebhook-Zulassungskontrollers. Handbuch L2 Fehler Gleichwertiges Steuerelement implementiert
5.6 Allgemeine Richtlinien
5.6.1 Erstellen Sie Verwaltungsgrenzen zwischen Ressourcen mithilfe von Namespaces Handbuch L1 Abhängig von der Umgebung
5.6.2 Stellen Sie sicher, dass das seccomp-Profil in Ihren Poddefinitionen auf „docker/default“ festgelegt ist. Handbuch L2 Abhängig von der Umgebung
5.6.3 Wenden Sie Sicherheitskontext auf Ihre Pods und Container an. Handbuch L2 Abhängig von der Umgebung
5.6.4 Der Standardnamespace sollte nicht verwendet werden Handbuch L2 Abhängig von der Umgebung

Weitere Anmerkungen

  • Das sicherheitsgehärtete Betriebssystem wird speziell für AKS erstellt und verwaltet und außerhalb der AKS-Plattform nicht unterstützt.
  • Um die Angriffsfläche weiter zu verringern, wurden einige unnötige Kernelmodultreiber im Betriebssystem deaktiviert.

Nächste Schritte

Weitere Informationen zur AKS-Sicherheit finden Sie in den folgenden Artikeln: