NetworkPolicy Kubernetes
cloudDéfinition
Les NetworkPolicies Kubernetes sont des ressources spécifiant comment les pods peuvent communiquer entre eux et avec les endpoints réseau externes. Par défaut, Kubernetes n'applique aucune restriction réseau : tous les pods peuvent communiquer avec tous les autres pods dans le cluster. Les NetworkPolicies permettent d'implémenter une micro-segmentation réseau basée sur des labels de pods, des namespaces, et des blocs CIDR. Une NetworkPolicy est une ressource Kubernetes namespaced définissant des règles d'Ingress (trafic entrant vers les pods sélectionnés) et d'Egress (trafic sortant depuis les pods sélectionnés). Les sélecteurs de pods (podSelector) ciblent les pods auxquels la politique s'applique, tandis que les sources/destinations peuvent être des pods (podSelector), des namespaces (namespaceSelector), ou des blocs IP (ipBlock). Important : les NetworkPolicies ne fonctionnent que si le plugin CNI (Container Network Interface) déployé dans le cluster les implémente. Les CNI supportant les NetworkPolicies incluent Calico, Cilium, Weave Net, Antrea, et d'autres. Les CNIs Flannel standard ne supportent pas les NetworkPolicies. Dans un cluster managé (EKS, AKS, GKE), vérifiez que le CNI déployé supporte les NetworkPolicies. Un pattern recommandé est de commencer par une politique "default-deny" dans chaque namespace applicatif (NetworkPolicy avec podSelector vide et pas de règles d'entrée/sortie, bloquant tout trafic non explicitement autorisé), puis d'ajouter des politiques d'autorisation granulaires pour les communications légitimes. Cette approche zero-trust au niveau réseau contient les mouvements latéraux entre pods. Cilium étend les NetworkPolicies standard avec des politiques L7 (HTTP, Kafka, gRPC) permettant de filtrer non seulement par IP/port mais aussi par méthode HTTP, path, ou topic Kafka, offrant une granularité de micro-segmentation applicative.
Pattern Default-Deny
Déployez une NetworkPolicy default-deny dans chaque namespace applicatif : apiVersion: networking.k8s.io/v1, kind: NetworkPolicy, spec.podSelector: {} (sélectionne tous les pods), policyTypes: [Ingress, Egress] sans règles. Cela bloque tout trafic non explicitement autorisé. Puis ajoutez des NetworkPolicies permettant les communications spécifiques (base de données vers cache, frontend vers API). Commencez par le mode monitoring de Calico/Cilium pour identifier les flux légitimes avant d'appliquer le deny.
Cilium et politiques L7
Cilium CiliumNetworkPolicy étend les NetworkPolicies standard avec le filtrage L7 : autoriser GET /api/* mais refuser POST /admin/* entre un pod frontend et un pod API. Cette granularité applicative réduit la surface d'attaque même si un pod est compromis (il ne peut appeler que les endpoints spécifiquement autorisés). Cilium repose sur eBPF pour une performance native sans iptables, et fournit Hubble pour la visibilité des flux réseau entre pods.
Audit et visualisation des NetworkPolicies
Des outils comme Network Policy Viewer, Calicoctl, et Hubble UI visualisent les flux réseau autorisés/bloqués. kubectl-netpol permet de valider les politiques. En environnement GKE, GCP Network Intelligence Center propose une visualisation graphique des NetworkPolicies. Vérifiez régulièrement que toutes les communications inter-services passent par des NetworkPolicies explicites et qu'aucun pod n'a un accès non restreint.
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h