Meine Kubernetes Sicherheitscheckliste
RBAC, Netzwerkrichtlinien, Sicherheitsmaßnahmen. Die Einstellungen überprüfe ich bei jedem Cluster.
RBAC, Netzwerkrichtlinien, Sicherheitsmaßnahmen. Die Einstellungen überprüfe ich bei jedem Cluster.

Kubernetes ist nicht unsicher, aber es ist auch nicht standardmäßig sicher. Ein neuer Cluster lässt Pods als Root laufen, mit allen anderen Pods kommunizieren und das Dateisystem des Hosts montieren, wenn Sie fragen. Die meisten Cluster, die ich überprüfe, haben mindestens ein paar dieser Türen offen.
Ich überprüfe die Dinge in jeder Reihe, von wichtigsten bis zu weniger dringend.
cluster-admin Tag für Tag. Bewahren Sie ihn für den Zugang zum Glasbrecher auf, protokolliert und alarmiert.automountServiceAccountToken: false Für die.secrets über Namensräume hinweg, pods/exec, die Schaffung von Kapseln in kube-system, escalate und bind Verben und Wildcards (*).kubectl auth can-i --list, rbac-tool oder KubiScan helfen, überprivilegierte Konten zu finden.Kubernetes hat dafür einen eingebauten Mechanismus: Sicherheitseinweisung, mit drei Ebenen: privileged, baseline und restricted- Ich weiß . Aktivieren Sie es pro Namespace mit Labels:
apiVersion: v1
kind: Namespace
metadata:
name: shop
labels:
pod-security.kubernetes.io/enforce: restricted
pod-security.kubernetes.io/warn: restricted
Die restricted Die Kommission hat die Kommission aufgefordert, die in den letzten Jahren durchgeführten Maßnahmen zu überprüfen. Der Sicherheitskontext einer konformen Kapsel sieht so aus:
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
containers:
- name: app
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop: ["ALL"]
Ziel restricted auf allen Anwendungsnamenräumen. Bleib dran. privileged nur für Systemkomponenten, die sie wirklich benötigen (CNI, Speichertreiber, Überwachungsagenten), in ihren eigenen Namensräumen.
Ein Container, der als Root läuft, mit allen Fähigkeiten, ist eine Schwachstelle davon entfernt, den Knoten zu besitzen.
Standardmäßig kann jede Kapsel mit jeder anderen Kapsel im Cluster sprechen. Wenn ein Angreifer in einen gerät, kann er alles erreichen.
Beginnen Sie mit Standardweise ablehnen in jedem Namespaces, dann erlauben, was benötigt wird:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny
namespace: shop
spec:
podSelector: {}
policyTypes: ["Ingress", "Egress"]
Dann fügen Sie Richtlinien hinzu, die zum Beispiel das Gateway erlauben, die API zu erreichen, die API, die Datenbank zu erreichen, und alles, was DNS erreicht. Denken Sie daran: Netzwerkrichtlinien funktionieren nur, wenn Ihr CNI sie unterstützt (Cilium, Calico und die meisten modernen CNIs tun dies).
Beschränkung Ausgang (ausgehender Verkehr) ist genauso wertvoll: Eine kompromittierte Kapsel, die nicht ins Internet gelangen kann, kann keine Tools herunterladen oder Daten einfach senden.
get und list über Geheimnisse in RBAC. Geheimnisse in einem Namensraum aufzulisten, enthüllt sie alle.latest - Die Marken. Pin-Versionen, im Idealfall Verdauungen.Diese werden mit einer Zulassungspolitik-Engine wie Kürbis oder OPA-Torwächter, oder mit Kubernetes eingebaut Validierung der Zulassungsrichtlinie für einfachere Regeln.
Die Präventionsmaßnahmen können umgangen werden. Die Sicherheitsvorkehrungen im Laufzeitbereich erkennen verdächtige Verhaltensweisen auf:
Schicken Sie ihre Warnungen an den gleichen Ort wie Ihre anderen Warnungen und schalten Sie sie ein, sonst werden sie Lärm.
trivy k8s) Scannen Sie Cluster auf Fehlkonfigurationen und verknüpfen Sie sie mit Rahmenbedingungen wie NSA/CISA-Hardening Guidance.Überprüfen Sie sie regelmäßig. Ziel nicht auf 100%, sondern auf das Verständnis aller Ergebnisse.
Wenn Sie nur drei Dinge tun können: Menschen mit wenigsten Privilegien RBAC zu SSO wechseln, Pod Security durchzusetzen restricted Sie können die Daten über die Anwendungsnamensräume und die Netzwerkrichtlinien für die Standardverweigerung hinzufügen. Das schließt die größten Sicherheitslücken in den meisten Clustern.
Ich denke, Kubernetes gibt dir alle Schlösser, die du brauchst. Sie kommen einfach nicht verschlossen in der Box.
Desly