Center for Internet Security (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
Nachfolgend finden Sie die aus dem CIS-Benchmark v1.9.0 für Kubernetes v1.27 resultierenden Empfehlungen für AKS. Die Ergebnisse gelten für AKS 1.27.x bis AKS 1.29.x.
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 unten definiert 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. Empfehlungen enthalten die erforderlichen Informationen zur Implementierung der Automatisierung.
- Manuell: stellt Empfehlungen dar, für die die Bewertung einer technischen Kontrollmaßnahme nicht vollständig automatisiert werden kann und manuelle Schritte erfordert (alle oder einzelne), 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:
- Bestanden: Die Empfehlung wurde angewandt.
- Nicht bestanden: Die Empfehlung wurde nicht angewandt.
- 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.
- Äquivalente Kontrollmaßnahme: Die Empfehlung wurde auf eine andere, gleichwertige Weise implementiert.
Benchmarkdetails
CIS-ID | Empfehlungsbeschreibung | Bewertungsstatus | Ebene | Status |
---|---|---|---|---|
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 | – |
1.1.2 | Stellen Sie sicher, dass die Spezifikationsdatei des API-Serverpods als Eigentum von root:root festgelegt ist. | Automatisiert | L1 | – |
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 | – |
1.1.4 | Stellen Sie sicher, dass die Spezifikationsdatei des Controller-Manager-Pods als Eigentum von root:root festgelegt ist. | Automatisiert | L1 | – |
1.1.5 | Stellen Sie sicher, dass die Berechtigungen für die Spezifikationsdatei des Scheduler-Pods auf 600 oder restriktiver festgelegt sind. | Automatisiert | L1 | – |
1.1.6 | Stellen Sie sicher, dass die Spezifikationsdatei des Scheduler-Pods als Eigentum von root:root festgelegt ist. | Automatisiert | L1 | – |
1.1.7 | Stellen Sie sicher, dass die Berechtigungen für die Spezifikationsdatei des etcd-Pods auf 600 oder restriktiver festgelegt sind. | Automatisiert | L1 | – |
1.1.8 | Stellen Sie sicher, dass die Spezifikationsdatei des etcd-Pods als Eigentum von root:root festgelegt ist. | Automatisiert | L1 | – |
1.1.9 | Stellen Sie sicher, dass die Berechtigungen für die Containernetzwerkschnittstellen-Datei auf 600 oder restriktiver festgelegt sind. | Manuell | L1 | – |
1.1.10 | Stellen Sie sicher, dass die Containernetzwerkschnittstellen-Datei als Eigentum von root:root festgelegt ist. | Manuell | L1 | – |
1.1.11 | Stellen Sie sicher, dass die Berechtigungen für das etcd-Datenverzeichnis auf 700 oder restriktiver festgelegt sind. | Automatisiert | L1 | – |
1.1.12 | Stellen Sie sicher, dass das etcd-Datenverzeichnis als Eigentum von etcd:etcd festgelegt ist. | Automatisiert | L1 | – |
1.1.13 | Stellen Sie sicher, dass die Berechtigungen für die Datei „admin.conf“ auf 600 oder restriktiver festgelegt sind. | Automatisiert | L1 | – |
1.1.14 | Stellen Sie sicher, dass die admin.conf-Datei als Eigentum von root:root festgelegt ist. | Automatisiert | L1 | – |
1.1.15 | Stellen Sie sicher, dass die Berechtigungen für die Datei „scheduler.conf“ auf 600 oder restriktiver festgelegt sind. | Automatisiert | L1 | – |
1.1.16 | Stellen Sie sicher, dass die scheduler.conf-Datei als Eigentum von root:root festgelegt ist. | Automatisiert | L1 | – |
1.1.17 | Stellen Sie sicher, dass die Berechtigungen für die Datei „controller-manager.conf“ auf 600 oder restriktiver festgelegt sind. | Automatisiert | L1 | – |
1.1.18 | Stellen Sie sicher, dass die controller-manager.conf-Datei als Eigentum von root:root festgelegt ist. | Automatisiert | L1 | – |
1.1.19 | Stellen Sie sicher, dass Kubernetes PKI-Verzeichnisse und -Dateien als Eigentum von root:root festgelegt sind. | Automatisiert | L1 | – |
1.1.20 | Stellen Sie sicher, dass die Berechtigungen für die Kubernetes-PKI-Zertifikatdatei auf 600 oder restriktiver festgelegt sind. | Manuell | L1 | – |
1.1.21 | Stellen Sie sicher, dass die Berechtigungen für die Kubernetes-PKI-Schlüsseldatei auf 600 festgelegt sind. | Manuell | L1 | – |
1.2 | API-Server | |||
1.2.1 | Stellen Sie sicher, dass das Argument --anonymous-auth auf „false“ festgelegt ist. |
Manuell | L1 | Pass |
1.2.2 | Stellen Sie sicher, dass der Parameter --token-auth-file nicht festgelegt ist. |
Automatisiert | L1 | Fehler |
1.2.3 | Vergewissern Sie sich, dass --DenyServiceExternalIPs nicht festgelegt ist. |
Manuell | L1 | Fehler |
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 |
1.2.6 | Stellen Sie sicher, dass das Argument --authorization-mode 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. | Manuell | L1 | Fehler |
1.2.10 | Stellen Sie sicher, dass das Zulassungssteuerungs-Plug-In „AlwaysAdmit“ nicht eingestellt ist. | Automatisiert | L1 | Pass |
1.2.11 | Stellen Sie sicher, dass das Zulassungssteuerungs-Plug-In „AlwaysPullImages“ eingestellt ist. | Manuell | L1 | Fehler |
1.2.12 | Stellen Sie sicher, dass das Zulassungssteuerungs-Plug-In „ServiceAccount“ eingestellt ist. | Automatisiert | L2 | Fehler |
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 | Äquivalentes Steuerelement |
1.2.18 | Stellen Sie sicher, dass das Argument --audit-log-maxbackup auf 10 oder angemessen festgelegt ist. |
Automatisiert | L1 | Äquivalentes Steuerelement |
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. |
Manuell | L1 | Pass |
1.2.21 | Stellen Sie sicher, dass das Argument --service-account-lookup auf „true“ festgelegt ist. |
Automatisiert | L1 | Pass |
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. |
Manuell | L1 | Abhängig von der Umgebung |
1.2.28 | Sicherstellen, dass die Verschlüsselungsanbieter angemessen konfiguriert sind | Manuell | L1 | Abhängig von der Umgebung |
1.2.29 | Stellen Sie sicher, dass der API-Server nur starke kryptografische Verschlüsselungen verwendet. | Manuell | L1 | Pass |
1.3 | Controller-Manager | |||
1.3.1 | Stellen Sie sicher, dass das Argument --terminated-pod-gc-threshold angemessen festgelegt ist. |
Manuell | L1 | Pass |
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 |
1.3.7 | Stellen Sie sicher, dass das Argument --bind-address auf „127.0.0.1“ festgelegt ist. |
Automatisiert | L1 | Äquivalentes Steuerelement |
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 | Äquivalentes Steuerelement |
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 Argument --auto-tls nicht auf „true“ festgelegt ist. |
Automatisiert | L1 | Pass |
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 Argument --peer-auto-tls nicht auf „true“ festgelegt ist. |
Automatisiert | L1 | Pass |
2.7 | Stellen Sie sicher, dass eine eindeutige Zertifizierungsstelle für etcd verwendet wird. | Manuell | L2 | Pass |
3 | Konfiguration der Steuerungsebene | |||
3.1 | Authentifizierung und Autorisierung | |||
3.1.1 | Die Clientzertifikatauthentifizierung sollte nicht für Benutzer verwendet werden. | Manuell | L1 | Pass |
3.1.2 | Die Authentifizierung über Dienstkontotoken sollte nicht für Benutzer verwendet werden. | Manuell | L1 | Pass |
3.1.3 | Die Authentifizierung über Bootstraptoken sollte nicht für Benutzer verwendet werden. | Manuell | L1 | Pass |
3.2 | Protokollierung | |||
3.2.1 | Stellen Sie sicher, dass eine minimale Überprüfungsrichtlinie erstellt wurde. | Manuell | L1 | Pass |
3.2.2 | Stellen Sie sicher, dass die Überprüfungsrichtlinie die wichtigsten Sicherheitsbedenken abdeckt. | Manuell | 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 die kubelet service-Datei als Eigentum von 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. | Manuell | L1 | – |
4.1.4 | Wenn die Datei „proxy kubeconfig“ vorhanden ist, stellen Sie sicher, dass der Besitz auf „root:root“ festgelegt ist. | Manuell | 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 Datei „kubelet.conf“ --kubeconfig 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. | Manuell | L1 | Pass |
4.1.8 | Stellen Sie sicher, dass die Clientzertifizierungsstellen-Datei als Eigentum von root:root festgelegt ist. | Manuell | 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 Konfigurationsdatei „kubelet config.yaml“ 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 Argument --authorization-mode 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. |
Manuell | L1 | Pass |
4.2.5 | Stellen Sie sicher, dass das Argument --streaming-connection-idle-timeout nicht auf „0“ festgelegt ist. |
Manuell | 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 Argument --hostname-override nicht festgelegt ist. |
Manuell | L1 | Pass |
4.2.8 | Stellen Sie sicher, dass das Argument --eventRecordQPS auf einen Wert festgelegt ist, der eine geeignete Ereigniserfassung sicherstellt. |
Manuell | L2 | Pass |
4.2.9 | Stellen Sie sicher, dass die Argumente --tls-cert-file und --tls-private-key-file angemessen festgelegt sind. |
Manuell | L1 | Pass |
4.2.10 | Stellen Sie sicher, dass das Argument --rotate-certificates nicht auf „false“ festgelegt ist. |
Automatisiert | L1 | Pass |
4.2.11 | Vergewissern Sie sich, dass das Argument „RotateKubeletServerCertificate“ auf TRUE festgelegt ist. | Manuell | L1 | Fehler |
4.2.12 | Stellen Sie sicher, dass das Kubelet nur starke kryptografische Verschlüsselungen verwendet. | Manuell | L1 | Pass |
4.2.13 | Stellen Sie sicher, dass ein Grenzwert für Pod-PIDs festgelegt ist. | Manuell | L1 | Pass |
4.3 | kube-proxy | |||
4.3.1 | Stellen Sie sicher, dass der Metrikdienst kube-proxy an localhost gebunden ist. | Automatisiert | L1 | Pass |
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 |
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 |
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“. | Manuell | 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. | Manuell | L1 | Abhängig von der Umgebung |
5.1.9 | Minimieren Sie den Zugriff auf die Erstellung persistenter Volumes. | Manuell | L1 | Abhängig von der Umgebung |
5.1.10 | Minimieren Sie den Zugriff auf die Proxy-Unterressource von Knoten. | Manuell | L1 | Abhängig von der Umgebung |
5.1.11 | Minimieren Sie den Zugriff auf die Genehmigungsunterressource von certificatesigningrequests-Objekten. | Manuell | L1 | Abhängig von der Umgebung |
5.1.12 | Minimieren Sie den Zugriff auf Webhook-Konfigurationsobjekte. | Manuell | L1 | Abhängig von der Umgebung |
5.1.13 | Minimieren Sie den Zugriff auf die Erstellung von Dienstkontotoken. | Manuell | L1 | Abhängig von der Umgebung |
5,2 | Podsicherheitsstandards | |||
5.2.1 | Stellen Sie sicher, dass der Cluster über mindestens einen aktiven Richtliniensteuerungsmechanismus verfügt. | Manuell | L1 | Abhängig von der Umgebung |
5.2.2 | Minimieren Sie die Zulassung privilegierter Container. | Manuell | L1 | Abhängig von der Umgebung |
5.2.3 | Minimieren Sie die Zulassung von Containern, die den Namespace der Hostprozess-ID freigeben möchten. | Manuell | L1 | Abhängig von der Umgebung |
5.2.4 | Minimieren Sie die Zulassung von Containern, die den Namespace der Host-IPC freigeben möchten. | Manuell | L1 | Abhängig von der Umgebung |
5.2.5 | Minimieren Sie die Zulassung von Containern, die den Namespace des Host-Netzwerks freigeben möchten. | Manuell | L1 | Abhängig von der Umgebung |
5.2.6 | Minimieren Sie die Zulassung von Containern mit allowPrivilegeEscalation. | Manuell | L1 | Abhängig von der Umgebung |
5.2.7 | Minimieren Sie die Zulassung von root-Containern. | Manuell | L2 | Abhängig von der Umgebung |
5.2.8 | Minimieren Sie die Zulassung von Containern mit der NET_RAW-Funktion. | Manuell | L1 | Abhängig von der Umgebung |
5.2.9 | Minimieren Sie die Zulassung von Containern mit zusätzlichen Funktionen. | Manuell | L1 | Abhängig von der Umgebung |
5.2.10 | Minimieren Sie die Zulassung von Containern mit zugewiesenen Funktionen | Manuell | L2 | Abhängig von der Umgebung |
5.2.11 | Minimieren Sie die Zulassung von Windows HostProcess-Containern. | Manuell | L1 | Abhängig von der Umgebung |
5.2.12 | Minimieren Sie die Zulassung von HostPath-Volumes. | Manuell | L1 | Abhängig von der Umgebung |
5.2.13 | Minimieren Sie die Zulassung von Containern, die HostPorts verwenden. | Manuell | L1 | Abhängig von der Umgebung |
5.3 | Netzwerkrichtlinien und CNI | |||
5.3.1 | Stellen Sie sicher, dass die verwendete CNI Netzwerkrichtlinien unterstützt. | Manuell | L1 | Pass |
5.3.2 | Stellen Sie sicher, dass für alle Namespaces Netzwerkrichtlinien definiert sind. | Manuell | L2 | Abhängig von der Umgebung |
5.4 | Geheimnisverwaltung: | |||
5.4.1 | Verwenden Sie vorzugsweise Geheimnisse als Dateien gegenüber Geheimnissen als Umgebungsvariablen. | Manuell | L2 | Abhängig von der Umgebung |
5.4.2 | Erwägen Sie die externe Speicherung von Geheimnissen. | Manuell | L2 | Abhängig von der Umgebung |
5.5 | Erweiterbare Zulassungssteuerung | |||
5.5.1 | Konfigurieren Sie die Imageherkunft mithilfe der ImagePolicyWebhook-Zulassungssteuerung. | Manuell | L2 | Fehler |
5.6 | Allgemeine Richtlinien | |||
5.6.1 | Erstellen Sie Verwaltungsgrenzen zwischen Ressourcen mithilfe von Namespaces | Manuell | L1 | Abhängig von der Umgebung |
5.6.2 | Stellen Sie sicher, dass das seccomp-Profil in Ihren Poddefinitionen auf „docker/default“ festgelegt ist. | Manuell | L2 | Abhängig von der Umgebung |
5.6.3 | Wenden Sie Sicherheitskontext auf Ihre Pods und Container an. | Manuell | L2 | Abhängig von der Umgebung |
5.6.4 | Der Standardnamespace sollte nicht verwendet werden. | Manuell | L2 | Abhängig von der Umgebung |
Hinweis
Zusätzlich zum CIS-Benchmark für Kubernetes ist auch ein AKS-CIS-Benchmark verfügbar.
Zusätzliche Hinweise
- 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:
Azure Kubernetes Service