GitHub Actions OIDC (déploiement sans clé)

DevOps 🟡 Mid

Définition

Mécanisme par lequel un job GitHub Actions obtient un jeton OpenID Connect éphémère signé par GitHub, échangé ensuite contre des identifiants temporaires chez AWS, GCP, Azuré ou Vault. Il faut la permission « id-token: write » (qui ne donne aucun droit d'écriture sur le dépôt, uniquement le droit de demander le jeton) et une relation de confiance côté cloud qui filtre sur le dépôt, la branche ou l'environnement.

Analogie

Un badge visiteur imprimé à l'accueil pour la journée, avec votre nom et le service visité, plutôt qu'un passe permanent qui traîne dans un tiroir.

Exemple de code

jobs:
  deploy:
    runs-on: ubuntu-latest
    permissions:
      id-token: write    # autorise la demande du jeton OIDC
      contents: read
    steps:
      - uses: actions/checkout@v5
      - uses: aws-actions/configure-aws-credentials@v4
        with:
          role-to-assume: arn:aws:iam::123456789012:role/gha-deploy
          aws-region: eu-west-3
      # plus aucun AWS_SECRET_ACCESS_KEY stocké dans les secrets
      - run: aws s3 sync ./dist s3://mon-site-prod

Cas d'usage

Déployer depuis GitHub Actions vers un cloud sans stocker de clés d'accès longue durée dans les secrets du dépôt.

Anti-pattern

Configurer la relation de confiance sur « n'importe quel dépôt de l'organisation » : un fork ou un dépôt compromis pourrait assumer le rôle de production.
#devops#security#cicd

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre