Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

NetworkPolicy Kubernetes

cloud

Dé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

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis