39 Implementierung von NetworkPolicies für Nginx Service

NetworkPolicies in Kubernetes bieten eine Möglichkeit, die Kommunikation zwischen den Pods im Cluster zu regeln. Sie definieren, welche Pods mit anderen Pods kommunizieren dürfen und welche nicht. Im Folgenden wird eine NetworkPolicy erstellt, die den Zugriff auf den Nginx-Service regelt.

39.1 Definition einer NetworkPolicy für Nginx

Zur Steuerung des Netzwerkverkehrs zum Nginx Pod kann eine NetworkPolicy wie folgt definiert werden:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: nginx-network-policy
spec:
  podSelector:
    matchLabels:
      app: nginx
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    - podSelector:
        matchLabels:
          access: nginx
    ports:
    - protocol: TCP
      port: 80
  egress:
  - to:
    - podSelector:
        matchLabels:
          access: nginx
    ports:
    - protocol: TCP
      port: 80

39.2 Erläuterung der NetworkPolicy

39.3 Anwendung der NetworkPolicy auf das Nginx-Beispiel

Um diese NetworkPolicy auf den Nginx-Service anzuwenden, müssen alle Pods, die auf den Nginx Service zugreifen dürfen, mit dem entsprechenden Label (access: nginx) versehen werden. Die NetworkPolicy sorgt dafür, dass nur Pods mit diesem Label mit dem Nginx Pod kommunizieren können.

Für den Ingress Controller, der Verkehr an den Nginx-Service weiterleitet, muss ebenfalls eine entsprechende NetworkPolicy definiert werden, die sicherstellt, dass der Ingress Controller mit dem Nginx-Pod kommunizieren kann. Dies wird notwendig, wenn der Ingress Controller als Pod innerhalb desselben Clusters läuft.

Die Anwendung von NetworkPolicies kann die Sicherheit innerhalb des Clusters erheblich erhöhen, indem sie den Datenverkehr auf autorisierte Wege beschränkt und so die Angriffsfläche für potenzielle Sicherheitsverletzungen reduziert.