Die Vorteile der Cloud liegen auf der Hand in Form schnell verfügbarer IT-Ressourcen, um deren Betrieb sich der Administrator nur noch eingeschränkt kümmern ... (mehr)

Netzwerkrichtlinien festlegen

Die Verbindung des Clusters zum Internet ist die eine Seite der Netzwerk-Sicherheit für Kubernetes. Tatsächlich sollte natürlich auch der Zugang von und zu den einzelnen Pods entsprechend konfiguriert werden. Dafür bietet Kubernetes die Definition von "NetworkPolicies". Dort können Sie für eingehende und ausgehende Verbindungen entsprechende Regeln konfigurieren, die wie ein Paketfilter funktionieren. In der Standardeinstellung ist jegliche Netzwerkverbindung in beide Richtungen erlaubt. Wenn Sie dies nicht möchten, können Sie eine neue Standard-Regel wie in Listing 1 erstellen, die zunächst jeden eingehenden Verkehr für Pods unterbindet.

Listing 1: default.yaml



apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
      name: default-deny
spec:
      podSelector: {}
      policyTypes:
      - Ingress

Das Ganze können Sie mit folgendem Befehl in Ihren Cluster übernehmen:

$ kubectl create -f default.yaml

Wollen Sie nun für Pods mit dem Label "dmz" wieder beliebigen eingehenden Verkehr erlauben, dann können Sie dies mit der Policy in Listing 2 erreichen, anschließend nutzen Sie denselben Befehl für die Übernahme in Kubernetes.

Listing 2: dmz.yml



apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
      name: allow-dmz
spec:
      podSelector:
                matchLabels:
                                    run: dmz
      ingress:
      - {}

Mit Hilfe der NetworkPolicies und entsprechender Labels können Sie also die Verbindungen Ihrer Pods sehr detailliert steuern. Natürlich können Sie Pods auch individuell auswählen, allerdings ist eine Verwaltung der Labels gerade bei vielen Pods deutlich einfacher.

Fazit

Kubernetes bietet den Benutzern eine native Cloud. Als Betreiber sollten Sie aber darauf achten, dass Sie diese Umgebung ordentlich absichern. Dieser Security-Tipp gibt Ihnen zwar keinen umfassenden Ratgeber über die vielen Konfigurationsmöglichkeiten, bietet aber einen guten Start zum sicheren Ausprobieren von Kubernetes. Ausgehend von den gezeigten Konzepten können Sie sich nach und nach an eine sichere Konfiguration herantasten, die sich an Ihren Ansprüchen und Ihrer Infrastruktur orientiert.

(dr)

Link-Codes

[1] Debian-Linux absichern: https://www.debian.org/doc/manuals/securing-debian-howto/

[2] kube-bench: https://github.com/aquasecurity/kube-bench/

[3] Shodan: https://www.shodan.io/

comments powered by Disqus
Mehr zum Thema

Cluster mit Raspberry Pi (2)

Eine Handvoll Raspberry-Rechner lässt sich als Testplattform für Docker-Container verwenden, wie der erste Teil unseres Workshops gezeigt hat. Damit die kleinen Rechner zusammenarbeiten, setzen wir jetzt die Orchestrierungslösung Kubernetes ein.

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019