Oui : GitHub Actions peut accéder à AWS sans stocker de clés AWS permanentes dans les secrets GitHub. Le workflow demande un jeton OIDC, puis aws-actions/configure-aws-credentials l’échange contre des identifiants temporaires pour un rôle IAM. Pour que cela réduise réellement le risque, limitez la confiance du rôle au dépôt et à la branche ou à l’environnement attendus, protégez la mise en production dans GitHub et vérifiez le rollback en préproduction par un échec contrôlé.
Comment l’accès sans clé fonctionne
GitHub Actions émet un jeton OIDC pour le job. AWS Security Token Service (STS) le valide et délivre des identifiants temporaires permettant au job d’assumer un rôle IAM. Dans cette configuration, le dépôt n’a pas besoin de conserver une clé d’accès AWS longue durée comme secret. GitHub documente le fournisseur OIDC https://token.actions.githubusercontent.com et l’audience sts.amazonaws.com pour l’action officielle de configuration des identifiants. Voir la configuration OIDC GitHub pour AWS.
As an Amazon Associate I earn from qualifying purchases.
Trois contrôles distincts interviennent : GitHub détermine quels jobs peuvent demander un jeton et atteindre l’étape de déploiement; la politique de confiance IAM détermine quels jetons peuvent assumer le rôle; les autorisations IAM du rôle déterminent ce que le job peut faire dans AWS. L’autorisation de workflow id-token: write permet de demander un jeton OIDC, mais n’accorde pas, à elle seule, le droit de modifier des ressources AWS.
Limiter le rôle IAM au dépôt et au contexte voulus
- Dans IAM, ajoutez le fournisseur OIDC GitHub avec l’URL
https://token.actions.githubusercontent.com. Pour l’action officielle, utilisez l’audience attenduests.amazonaws.com. - Créez un rôle dont la politique de confiance vérifie à la fois l’audience et le claim
sub. Pour une branche précise, une condition restrictive peut prendre cette forme conceptuelle :
{
"Condition": {
"StringEquals": {
"token.actions.githubusercontent.com:aud": "sts.amazonaws.com",
"token.actions.githubusercontent.com:sub": "repo:ORG/REPO:ref:refs/heads/BRANCH"
}
}
}
Remplacez les valeurs d’exemple par celles du dépôt et de la branche autorisés. Si le job référence un environnement GitHub, le sujet est plutôt de la forme repo:ORG/REPO:environment:ENVIRONMENT; dans ce cas, la confiance IAM doit correspondre à cet environnement et ses règles GitHub doivent empêcher un déploiement non autorisé.
#1 Best Overall
Ne supposez pas que la forme du sujet est identique pour tous les dépôts. GitHub indique que les dépôts créés après le 15 juillet 2026, ainsi que ceux qui ont activé les claims de sujet immuables, utilisent un sujet comprenant des identifiants immuables du propriétaire et du dépôt. Vérifiez le format effectivement émis pour votre dépôt et faites correspondre la condition IAM à ce format. Une condition générique telle que repo:ORG/REPO:* est plus large qu’une restriction à une branche ou à un environnement précis. GitHub décrit les claims et la confiance AWS OIDC.
Dans le job de déploiement, accordez id-token: write et configurez aws-actions/configure-aws-credentials pour demander le rôle. Attribuez ensuite à ce rôle une politique IAM limitée aux opérations et ressources dont le déploiement a besoin. Le jeton établit l’identité du job; ce sont les politiques du rôle qui déterminent ses permissions AWS.
Rank #2
Mettre une barrière avant la production
Référencez un environnement GitHub de production dans le job afin de pouvoir lui appliquer des règles de déploiement : approbation requise, restrictions de branches ou autres protections disponibles. Le job ne progresse pas tant que les protections configurées ne sont pas satisfaites. Si l’approbation d’un job reste en attente, GitHub indique qu’il échoue après 30 jours. Consulter les contrôles de déploiement GitHub.
Recommended Free Tools
Ajoutez également un groupe concurrency commun aux workflows qui peuvent déployer vers la même cible de production. Cela empêche plusieurs jobs du même groupe de déployer simultanément. GitHub ne relie pas automatiquement les groupes de concurrence aux environnements : le nom du groupe doit donc être choisi de façon cohérente dans tous les workflows concernés.
Rank #3
- Deck-building game: Build your own deck of AWS services during the game. Gradually expand your deck and build better architectures than your fellow players!
- Ideal for both AWS professionals and those wanting to explore cloud services through gameplay!
- Perfect for team building: Play during breaks or events to share knowledge and foster collaboration!
- 2-4 players, 20-30 minutes playing time
- Contents: 144 cards
Choisir le mécanisme de retour arrière adapté
Le mot « rollback » recouvre des opérations différentes. Le contrôleur de déploiement utilisé par ECS ou CodeDeploy détermine le signal d’échec et la façon de revenir à une version précédente; les effets externes de l’application ne sont pas nécessairement annulés.
| Option | Détection et point de retour | Opération et validation |
|---|---|---|
ECS rolling update avec contrôleur ECS |
Le disjoncteur détecte un déploiement qui n’atteint pas un état stable; des alarmes CloudWatch peuvent aussi signaler l’échec. Le rollback automatique vise le dernier déploiement terminé avec succès. Un déploiement antérieur en état COMPLETED est nécessaire. |
Activez la détection et le rollback souhaités. Contrôlez l’état du service et les événements de déploiement ECS ou EventBridge. Le disjoncteur évoqué ici concerne le contrôleur rolling ECS. |
| CodeDeploy pour ECS blue/green | Le rollback automatique peut être déclenché par un échec de déploiement ou un seuil de surveillance configuré. Le retour manuel redéploie une révision antérieure comme un nouveau déploiement, avec un nouvel identifiant. | Configurez les déclencheurs ou prévoyez qui lancera le redéploiement manuel. Vérifiez l’historique CodeDeploy et le changement de trafic ou de task set. |
| CloudFormation pilotant ECS blue/green | Le retour s’effectue en annulant la mise à jour de stack, selon la configuration et les signaux d’alarme ou événements associés. | Précisez qui annule la mise à jour et vérifiez les événements et l’état de la stack, puis la santé de l’application. |
La détection d’échec et le disjoncteur ECS sont décrits dans la documentation ECS sur la détection d’échec et la documentation du disjoncteur de déploiement. Pour CodeDeploy, consultez les consignes de rollback et redéploiement et celles des déploiements ECS.
Rank #4
Comment vérifier le rollback en préproduction
La configuration d’une option de rollback ne prouve pas qu’elle fonctionne pour votre application. Testez le chemin complet dans une préproduction représentative, avec un déploiement antérieur sain déjà achevé et le mécanisme de détection que vous utiliserez en production.
- Choisissez un mode d’échec contrôlé qui correspond au mécanisme configuré, par exemple un service qui ne devient pas stable ou une alarme de santé déclenchée. Évitez de provoquer cet échec sur la production.
- Déployez la version défaillante et suivez le signal dans les événements ECS, CloudWatch ou EventBridge, ou dans l’historique CodeDeploy ou CloudFormation selon l’option choisie.
- Confirmez que le mécanisme attendu s’est déclenché et que le résultat correspond à votre contrôleur : retour à un déploiement ECS achevé, redéploiement CodeDeploy de la révision antérieure, ou annulation de la mise à jour de stack.
- Vérifiez que la version attendue reçoit de nouveau le trafic ou que la stack a retrouvé un état stable, puis exécutez les contrôles de santé applicatifs.
- Contrôlez séparément les migrations de schéma, tâches ayant des effets de bord et dépendances externes. Revenir à du code ou à des tâches antérieurs ne révoque pas automatiquement les modifications de données ni les actions déjà réalisées à l’extérieur du déploiement.
Un essai n’est concluant que si vous observez le signal, le déclenchement du mécanisme, le retour à l’état attendu et la santé applicative après coup. Pour les déploiements ECS, les événements de déploiement et conditions de rollback documentés par AWS permettent de vérifier le comportement du service; les procédures CodeDeploy ECS sont précisées dans la documentation AWS sur les déploiements ECS.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




