Kubernetes
Segurança
CloudNative
RBAC
NetworkPolicies
Falco
OPA
DevSecOps

Cloud Native Security: Sicherung von Kubernetes-Infrastrukturen

Cloud Native Security: Sicherung von Kubernetes-Infrastrukturen

Kubernetes brachte Flexibilität, aber auch neue Angriffsvektoren. Sicherheit muss in die Pipeline integriert werden, von der Image-Erstellung bis zur Ausführung auf dem Cluster.

Hauptsicherheitsebenen

  • Supply-Chain, Suche nach Schwachstellen in Docker]-Images.
  • Zugriffskontrolle (RBAC), Mindestberechtigungen pro Dienstkonto.
  • Netzwerkrichtlinien, NetworkPolicy, um Pods zu isolieren.
  • Runtime Security, Falco, OPA Gatekeeper zur Erkennung von anomalem Verhalten.
  • Datensicherheit, mit KMS verschlüsselte Geheimnisse, Volume-Verschlüsselung.

Kubernetes-Sicherheitscheckliste

  • Aktivieren Sie PodSecurityPolicy oder Pod-Sicherheitsstandards.
  • Definieren Sie Rollen und RoleBindings mit dem Prinzip der geringsten Berechtigung.
  • Wenden Sie NetworkPolicy an, um den Intra-Namespace-Verkehr zu begrenzen.
  • Scannen Sie Bilder mit Trivy oder Clair in CI.
  • Implementieren Sie OPA Gatekeeper für Validierungsrichtlinien.
  • Konfigurieren Sie Falco zur Überwachung verdächtiger Systemaufrufe.
  • Secrets regelmäßig wechseln.
  • Überwachen Sie API-Server-Protokolle mit Überwachungsrichtlinie.

Beispiel für eingeschränktes RBAC

apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: prod name: read-only-role rules: - apiGroups: [""] resources: ["pods", "services", "configmaps"] verbs: ["get", "list", "watch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: read-only-binding namespace: prod subjects: - kind: ServiceAccount name: app-sa namespace: prod roleRef: kind: Role name: read-only-role apiGroup: rbac.authorization.k8s.io

Einfache Netzwerkrichtlinien

apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: deny-all-except-frontend namespace: prod spec: podSelector: {} policyTypes: - Ingress - Egress ingress: - from: - podSelector: matchLabels: app: frontend

Bildscannen in CI

## .gitlab-ci.yml stages: - scan - build - deploy scan_image: stage: scan image: aquasec/trivy:latest script: - trivy image --severity HIGH,CRITICAL myapp:latest

Laufzeitüberwachung mit Falco

apiVersion: apps/v1 kind: DaemonSet metadata: name: falco namespace: kube-system spec: selector: matchLabels: app: falco template: metadata: labels: app: falco spec: containers: - name: falco image: falcosecurity/falco:latest securityContext: privileged: true volumeMounts: - name: devfs mountPath: /host/dev - name: procfs mountPath: /host/proc - name: sysfs mountPath: /host/sys volumes: hostPath: path: /proc - name: sysfs hostPath: path: /sys

Fazit

Sicherheit in Kubernetes ist ein fortlaufender Prozess. Durch die Anwendung von Verteidigungsebenen, von der Image-Erstellung bis hin zu Laufzeitrichtlinien, reduzieren Sie die Angriffsfläche drastisch und erhöhen das Vertrauen in Produktionsumgebungen.


Welche Sicherheitspraktiken haben Sie bereits in Ihrem Cluster eingeführt? Teilen Sie es in den Kommentaren!

Lesen Sie auch