
Introduction
En tant qu’ingénieur DevOps, la gestion des secrets est souvent notre cauchemar. Qui n’a jamais eu peur de commiter par erreur une paire de clésAWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY ?
Pour mon portfolio, j’ai décidé d’appliquer une politique “Zéro Clé Longue Durée”. Voici comment j’ai connecté GitHub Actions à AWS en utilisant le protocole OIDC (OpenID Connect).
Le Problème des Clés Classiques
Traditionnellement, pour que GitHub puisse déployer sur AWS, on crée un utilisateur IAM, on génère des clés, et on les stocke dans les “Secrets” du repository. Les risques sont majeurs :- Rotation difficile : On oublie souvent de changer ces clés régulièrement.
- Fuite possible : Si un script malveillant tourne dans la CI, il peut exfiltrer ces clés.
- Maintenance : C’est une charge mentale inutile.
La Solution : OIDC (Identity Federation)
L’idée est simple : Au lieu de donner une clé (comme un double des clés de chez vous) à GitHub, on lui donne un badge temporaire.- GitHub Actions demande un jeton (Token) à son propre fournisseur d’identité.
- Il présente ce jeton à AWS.
- AWS vérifie la signature et l’origine (ex: “Cela vient bien du repo
YOUR_USERNAME/YOUR_REPO_NAME”). - Si tout est bon, AWS délivre des credentials temporaires valables uniquement pour la durée du job.
L’Implémentation Terraform
J’ai tout codé en Terraform pour que ce soit reproductible.Le Résultat
Dans mon pipeline GitHub Actions, je n’ai plus aucun secret à gérer. Juste une configuration propre :Article complet
Pour une vue d’ensemble complète incluant l’architecture GitOps, FinOps, monitoring SRE et tous les détails, consultez l’article principal “Portfolio DevOps à 0€”.

