Mise en place d'une Authentification Basic Auth sur Traefik pour Kubernetes
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.