Photo by Towfiqu barbhuiya / Unsplash

Mise en place d'une Authentification Basic Auth sur Traefik pour Kubernetes

Tutoriels 12 janv. 2024

Dans cet article, nous allons aborder la mise en place d'une authentification Basic Auth sur Traefik dans un environnement Kubernetes. Cette méthode est cruciale pour sécuriser vos applications et services. Nous utiliserons Traefik comme ingress controller et Kubernetes pour orchestrer nos conteneurs.


Préparation de l'Environnement

Avant de commencer, assurez-vous que vous avez un cluster Kubernetes opérationnel et que Traefik est installé en tant qu'Ingress Controller.

Étape 1: Création du Fichier d'Authentification

Commencez par créer un fichier d'authentification avec htpasswd. Cette commande génère un fichier contenant le nom d'utilisateur et le mot de passe.

htpasswd -c auth-file admin

Étape 2: Création du Secret Kubernetes

Utilisez le fichier d'authentification pour créer un secret Kubernetes. Ce secret sera utilisé par Traefik pour l'authentification.

kubectl create secret generic basic-auth --from-file=auth-file

Notez que nous avons renommé le secret en "basic-auth" pour plus de clarté.

Étape 3: Configuration de Traefik avec Basic Auth

Maintenant, configurez Traefik pour utiliser l'authentification Basic Auth. Vous devez définir un middleware dans un fichier YAML.

Exemple de fichier YAML pour le Middleware Basic Auth:

---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: basic-auth-middleware
spec:
  basicAuth:
    secret: basic-auth
    

Étape 4: Configuration du Service Kubernetes

Configurez le service Kubernetes que vous souhaitez protéger avec Basic Auth.

Exemple de fichier YAML pour le Service:

---
apiVersion: v1
kind: Service
metadata:
  name: monapp
  labels:
    app: monapp
spec:
  type: LoadBalancer
  ports:
  - name: web
    port: 80
  selector:
    app: monapp
    

Étape 5: Configuration de l'Ingress Route

Enfin, configurez l'Ingress Route pour utiliser le middleware d'authentification.

Exemple de fichier YAML pour l'Ingress Route:

---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: monapp-route
spec:
  entryPoints:
    - web
  routes:
    - match: Host(`example.foo.com`)
      kind: Rule
      middlewares:
        - name: basic-auth-middleware
      services:
      - name: monapp
        port: 80
        

Déploiement

Déployez la configuration en appliquant le fichier YAML.

kubectl apply -f votre-fichier.yaml

Conclusion

En suivant ces étapes, vous avez sécurisé votre application sur Kubernetes avec une authentification Basic Auth via Traefik. Cette méthode simple mais efficace assure un niveau de sécurité supplémentaire pour vos applications.

Mots clés