Tech Hub

@ Solution Architecture Works

Automatiser les tests de charge Azure en utilisant GitHub

Gérer les secrets dans GitHub

Temps estimé :5 minutes 21 vues

Les secrets sont des variables que vous créez au niveau d’une organisation, d’un dépôt ou d’un environnement de dépôt. Ces secrets sont disponibles pour être utilisés dans les workflows GitHub Actions.
GitHub Actions ne peut lire un secret que si vous l’incluez explicitement dans un fichier de workflow.

Secrets au niveau de l’organisation

Pour les secrets stockés au niveau de l’organisation, vous pouvez utiliser des politiques d’accès pour contrôler quels dépôts peuvent utiliser ces secrets.
Les secrets au niveau de l’organisation permettent de partager des secrets entre plusieurs dépôts, ce qui réduit le besoin de les dupliquer.
La mise à jour d’un secret à un seul endroit garantit que le changement est pris en compte dans tous les workflows qui l’utilisent.

Secrets au niveau de l’environnement

Pour les secrets stockés au niveau de l’environnement, vous pouvez activer des examinateurs obligatoires pour contrôler l’accès.
Un job de workflow ne peut pas accéder aux secrets d’environnement sans l’approbation des personnes requises.

Remarque

Vous pouvez configurer vos workflows pour s’authentifier directement auprès d’Azure afin d’accéder à des ressources.

Nommer vos secrets

Les règles suivantes s’appliquent aux noms de secrets :

  • Les noms ne peuvent contenir que des caractères alphanumériques ([a-z], [A-Z], [0-9]) ou des tirets bas (_). Les espaces ne sont pas autorisés.
  • Les noms ne doivent pas commencer par le préfixe GITHUB_.
  • Les noms ne doivent pas commencer par un chiffre.
  • Les noms ne sont pas sensibles à la casse.
  • Les noms doivent être uniques au niveau où ils sont créés.

Pour garantir que GitHub masque vos secrets dans les journaux, évitez d’utiliser des données structurées comme valeurs de secrets (par exemple, évitez les secrets contenant du JSON ou des blobs Git encodés).

Accéder à vos secrets

Définissez le secret comme une entrée ou une variable d’environnement dans le fichier de workflow pour le rendre disponible à une action.
Vous pouvez utiliser et lire les secrets dans un fichier de workflow si vous avez les droits pour modifier ce fichier.
Pour plus d’informations, consultez la page Permissions d’accès sur GitHub.

  • Les secrets d’organisation et de dépôt sont lus lorsque l’exécution du workflow est mise en file d’attente.
  • Les secrets d’environnement sont lus lorsque le job qui référence l’environnement démarre.
  • Vous pouvez également gérer les secrets via l’API REST.

Limiter les permissions des identifiants

Il est recommandé d’accorder le minimum de permissions nécessaires.
Par exemple, au lieu d’utiliser des identifiants personnels, utilisez des clés de déploiement ou un compte de service.
Accordez des permissions en lecture seule si cela suffit, et limitez l’accès autant que possible.

  • Lors de la génération d’un jeton d’accès personnel classique, sélectionnez le minimum de portées nécessaires.
  • Lors de la génération d’un jeton d’accès personnel à granularité fine, sélectionnez les permissions minimales et l’accès aux dépôts requis.

Créer des secrets

Pour créer des secrets ou des variables sur GitHub :

  • Pour un dépôt personnel, vous devez être propriétaire du dépôt.
  • Pour un dépôt d’organisation, vous devez avoir un accès administrateur.
  • Pour créer des secrets via l’API REST, vous devez avoir un accès collaborateur.

Étapes pour créer un secret :

  1. Sélectionnez Settings dans la barre de navigation supérieure du dépôt.
  2. Dans la section Security de la barre latérale gauche, sélectionnez le menu déroulant Secrets and variables.
  3. Sélectionnez Actions pour accéder à la page des secrets et variables des Actions.

Utiliser des secrets dans un workflow

Pour fournir un secret à une action en tant qu’entrée ou variable d’environnement, utilisez le contexte secrets pour accéder aux secrets créés dans votre dépôt.

YAML
steps:
  - name: Hello world action
    with: # Set the secret as an input
      super_secret: ${{ secrets.SuperSecret }}
    env: # Or as an environment variable
      super_secret: ${{ secrets.SuperSecret }}

⚠️ Les secrets ne peuvent pas être référencés directement dans une condition if:.
Il est recommandé de définir les secrets comme variables d’environnement au niveau du job, puis de référencer ces variables pour exécuter conditionnellement des étapes.

Si la valeur d’un secret n’est pas définie, l’expression qui le référence (comme ${{ secrets.SuperSecret }} dans l’exemple) renverra une chaîne vide.

Share this Doc

Gérer les secrets dans GitHub

Or copy link

CONTENTS