NetworkPolicies
Les NetworkPolicies controlent le trafic reseau entre les Pods.
Par defaut
Sans NetworkPolicy, tous les Pods peuvent communiquer entre eux.
Deny All (default deny)
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-all
namespace: default
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
Allow Ingress depuis un namespace
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-from-frontend
spec:
podSelector:
matchLabels:
app: backend
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
app: frontend
ports:
- protocol: TCP
port: 8080
Allow Egress vers une IP
spec:
podSelector:
matchLabels:
app: myapp
policyTypes:
- Egress
egress:
- to:
- ipBlock:
cidr: 10.0.0.0/24
ports:
- protocol: TCP
port: 5432
Allow DNS
egress:
- to:
- namespaceSelector:
matchLabels:
name: kube-system
ports:
- protocol: UDP
port: 53
Bonnes pratiques de securite
- Activez RBAC sur tous les clusters
- Utilisez des ServiceAccounts dedies par application
- Implementez des NetworkPolicies (default deny)
- Scannez les images pour les vulnerabilites
- Activez Pod Security Standards
- Chiffrez les Secrets at-rest dans etcd
- Utilisez des outils comme OPA/Gatekeeper pour les policies
Production : Commencez par un default deny NetworkPolicy, puis autorisez uniquement le trafic necessaire.