RousselTMLEARNING

Conteneurisation

Sécurité réseau des conteneurs (container network security) et networking Kubernetes

Sécuriser le réseau des conteneurs : fonctionnement du networking Docker et Kubernetes, CNI, NetworkPolicies en refus par défaut, mTLS avec un service mesh, contrôle des sorties, observabilité des flux et bonnes pratiques.

1. Comment communiquent les conteneurs #

Le networking de base.

Modèle #

  • Docker : réseaux bridge par hôte (isolation par réseau nommé), réseaux overlay entre hôtes Swarm.
  • Kubernetes : chaque pod a une IP, tous les pods peuvent se joindre par défaut ; le CNI (Calico, Cilium, Flannel) implémente ce réseau.
  • Les Services donnent une adresse stable ; l'Ingress ou la Gateway API exposent vers l'extérieur.
Erreur Courante : Par défaut, Kubernetes n'isole rien : un pod compromis peut joindre toutes les bases du cluster. La première mesure est une politique de refus par défaut.

2. Les mesures #

Couche par couche.

NetworkPolicies #

Couches de la sécurité réseau des conteneurs
# Refus par défaut dans le namespace, puis ouverture explicite
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata: { name: default-deny, namespace: shop }
spec: { podSelector: {}, policyTypes: [Ingress, Egress] }
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata: { name: api-to-db, namespace: shop }
spec:
  podSelector: { matchLabels: { app: postgres } }
  ingress:
    - from: [ { podSelector: { matchLabels: { app: api } } } ]
      ports: [ { port: 5432 } ]
À savoir : Les NetworkPolicies ne s'appliquent que si le CNI les implémente (Calico, Cilium oui ; Flannel seul non). Pensez à autoriser le DNS (port 53 vers kube-dns) dans les règles de sortie.

Autres couches #

MesureOutilProtège contre
mTLS entre servicesIstio, Linkerd, CiliumÉcoute et usurpation sur le réseau du cluster
Contrôle des sortiesPolitiques egress, proxy sortantExfiltration de données, téléchargement d'outils
EntréeIngress avec TLS, WAF, limitation de débitAttaques applicatives
Observabilité des fluxHubble (Cilium), Network Performance MonitoringFlux inattendus non détectés

Articles liés

Container registry : choisir et sécuriser son registre d'images (Docker Hub, Harbor, GHCR, ECR)

Comprendre les registres de conteneurs : Docker Hub, GitHub Container Registry, registres cloud (ECR, ACR, Ar…

Kubernetes : architecture et composants (control plane, nœuds, objets)

Comprendre l'architecture de Kubernetes : API server, etcd, scheduler, controller manager, kubelet, kube-prox…

Aide-mémoire kubectl : les commandes essentielles

Toutes les commandes kubectl utiles au quotidien : contextes, ressources, logs, exec, port-forward, rollouts,…

Pour aller plus loin