Projets / eks

DevSecOps sur AWS EKS

Une API FastAPI et son frontend React déployés sur AWS EKS en trois environnements, avec Terraform, GitLab CI et ArgoCD. Le cluster est monté à la demande et détruit en fin de session.

État au 13/11/2026

  • Livré : dev, staging et prod sur un cluster, GitOps ArgoCD, Cilium à la place du CNI d’AWS, observabilité, secrets par External Secrets.
  • Suivant : identités et moindre privilège (permissions boundary, OIDC pour la CI). #221
  • Ensuite : détection à l’exécution et signature des images.

Ce qu’il reste à prouver : Jamais servi à de vrais utilisateurs ni tenu sous du trafic réel, et le cluster est recréé à chaque montage, jamais mis à jour sur place.

La documentation du projet ↗

Architecture du projet EKS : GitLab CI, ArgoCD, Envoy Gateway, Cilium, observabilité, External Secrets, RDS et ECR, sur un cluster éphémère et une stack persistante.
Cliquer pour agrandir · ouvrir l’image ↗

Exploitation

Un cluster éphémère, recréé à chaque session

Le cluster est monté par pipeline et détruit en fin de session, jamais mis à jour sur place. Après la destruction, un script vérifie huit postes facturés à l’heure.

Un runbook de validation

Une seule source pour remonter la plateforme et la vérifier, étape par étape, après chaque montage.

Des mises à jour proposées par un robot

Renovate ouvre les MR de mise à jour. Il s’est tu deux semaines quand son jeton a expiré : un job du lundi prévient désormais 30 jours avant.

Incidents

Un incident, étape par étape

INC-058 : webhooks d’admission injoignables après la migration vers Cilium →

  1. 1 · Symptôme

    Premier montage après le passage à Cilium : l’installation de cert-manager échoue, son webhook ne répond pas.

  2. 2 · Diagnostic

    Les pods sont dans l’overlay de Cilium, hors du VPC. Le control plane managé d’EKS ne sait pas les joindre.

  3. 3 · Cartographier

    Inventaire des webhooks : seuls ceux en failurePolicy Fail bloquent (cert-manager, External Secrets).

  4. 4 · Corriger

    Webhooks en hostNetwork, sur deux ports distincts hors de celui du kubelet, écrit dans le playbook Ansible.

  5. 5 · Leçon

    Sur un control plane managé, ce que l’API server doit joindre doit être routable depuis le VPC.

Tous les incidents, sprint par sprint

Sécurité

Comprendre la sécurité du projet

Gestion des vulnérabilités

Scan des images, puis VEX et acceptation du risque écrites : une vulnérabilité tolérée l’est avec sa raison.

kubectl apply sur EKS

Ce qui se passe entre la commande et le pod : authentification, RBAC, admission, etcd, puis les contrôleurs.

Comprendre Cilium →

Décisions

Cilium à la place du CNI d’AWS

Overlay VXLAN, kube-proxy remplacé par eBPF, Hubble pour voir les flux. Le CNI d’AWS limitait la densité de pods et liait le projet à AWS.

Trois environnements, un cluster

dev, staging et prod séparés par namespace et par overlay Kustomize, sur un seul cluster pour tenir le budget.

Les secrets hors du state Terraform

Un state Terraform garde une copie de ce qu’il crée. Les valeurs secrètes sont posées hors de Terraform.