Mettre en place du filtrage IP sur Kubernetes

Il arrive parfois que l'on ait besoin d'effectuer du filtrage IP sur une infrastructure Kubernetes pour restreindre l'accès depuis l'extérieur. Regardons comment mettre en place une whitelist d'adresses IP via l'Ingress Nginx sur Kubernetes.
Introduction
Pour pouvoir contrôler le flux entrant au sein de son cluster Kubernetes, il est important de bien contrôler ses flux. L'Ingress Nginx en est un bon exemple, voici le lien de son repository Github :
Avec la mise en place de l'Ingress Nginx au sein de votre cluster Kubernetes, vous pourrez gérer votre configuration comme vous le souhaitez (mise en place de Headers, HSTS etc..) et aussi maîtriser votre flux entrant.
Cette maîtrise des flux passe notamment par le filtrage IP, ce que nous allons voir dans la suite de cet article.
Le filtrage IP
Dans Kubernetes, lorsque l'on souhaite customiser une ressource déjà existante, cela se passe souvent au niveau des annotations.
Pour l'Ingress Nginx, il est possible d'ajouter beaucoup d'annotations, voici la liste complète :
L'annotation qui nous intéresse c'est celle-ci :
nginx.ingress.kubernetes.io/whitelist-source-range
Pour l'implémenter dans sa configuration, voici un exemple de filtrage IP :
ingress:
annotations:
nginx.ingress.kubernetes.io/whitelist-source-range: |
0.0.0.0,
1.1.1.1,
2.2.2.2,
3.3.3.3
Cette configuration autorise donc les adresses IP 0.0.0.0
, 1.1.1.1
et ainsi de suite...