Comment définir le flag --trusted-proxy-ip d'une instance OAuth2 Proxy hébergée via Kubernetes ?

Depuis sa version 7.15.2, OAuth2 Proxy dispose d'un nouveau flag permettant de renforcer sa sécurité : --trusted-proxy-ip. Celui-ci définit les reverse-proxy autorisés à envoyer des entêtes X-Forwarded-*. Ce flag doit être renseigné avec des IPs, ou une plage d'IP.

Dans le cas d'un cluster Kubernetes, les reverse-proxy à autoriser sont fournis par les Ingress, ou Gateway API. Pour connaitre les IPs, il faut donc interroger son cluster afin d'obtenir la plage d'IP affectée aux pods d'Ingress / Gateway API.

Par exemple : sur un cluster RKE2 utilisant Traefik, les pods intéressants sont dans le namepace kube-system. On peut utiliser la commande suivante pour obtenir la liste des pods avec leurs IPs :

Pour Windows


kubectl get pod -n kube-system -o wide | Select-String traefik

Pour Linux


kubectl get pod -n kube-system -o wide | grep traefik

Exemple de sortie :


helm-install-rke2-traefik-xxx1 0/1     Completed   0                3d5h   10.42.3.44    xx1    <none>           <none>
helm-install-rke2-traefik-xxx2 0/1     Completed   0                3d5h   10.42.0.117   xx2    <none>           <none>
rke2-traefik-xxx1                       1/1     Running     0                3d5h   10.42.3.88    xx1    <none>           <none>
rke2-traefik-xxx2                       1/1     Running     0                3d5h   10.42.0.120   xx2    <none>           <none>
rke2-traefik-xxx3                       1/1     Running     0                3d5h   10.42.2.107   xx3    <none>           <none>
rke2-traefik-xxx4                       1/1     Running     0                3d5h   10.42.1.232   xx4    <none>           <none>

On peut en conclure que les Ips utilisées seront sur la plage 10.42.0.0/16.

Dans le fichier de déploiement de OAuth2 Proxy il suffit d'ajouter la variable d'environnement OAUTH2_PROXY_TRUSTED_PROXY_IPS avec la valeur 10.42.0.0/16.

Exemple :


env:
  # Reverse proxy
  - name: OAUTH2_PROXY_REVERSE_PROXY
    value: "true"
  - name: OAUTH2_PROXY_TRUSTED_PROXY_IPS
    value: "10.42.0.0/16"
Jérémy Jeanson

Comments

You have to be logged in to comment this post.