Configuration des Secrets dans GitHub Actions

GitBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez à utiliser les Secrets GitHub Actions. Les secrets sont des variables d'environnement chiffrées que vous créez au niveau d'une organisation, d'un dépôt (repository) ou d'un environnement de dépôt. Les secrets que vous créez sont disponibles pour être utilisés dans vos workflows GitHub Actions.

Ceci est essentiel pour sécuriser les informations sensibles telles que les clés d'API, les jetons d'accès (access tokens) et les mots de passe. GitHub Actions masque automatiquement les secrets dans les journaux (logs), garantissant qu'ils ne sont pas exposés.

Ce laboratoire s'appuie sur le dépôt que vous avez créé lors des laboratoires précédents. Vous allez ajouter un secret à votre dépôt github-actions-demo et créer un workflow qui l'utilise.

Vous suivrez les étapes suivantes :

  1. Ajouter un secret de dépôt à votre dépôt GitHub existant.
  2. Cloner le dépôt et créer un fichier de workflow qui référence le secret.
  3. Ajouter des étapes pour utiliser le secret.
  4. Pousser (Push) le workflow vers GitHub.
  5. Vérifier que le secret est masqué dans les journaux d'exécution.

Créer un secret de dépôt nommé MY_SECRET dans les paramètres GitHub

Dans cette étape, vous allez ajouter un secret à votre dépôt github-actions-demo existant sur GitHub et cloner le dépôt dans votre environnement LabEx.

Ajouter un secret de dépôt

  1. Ouvrez votre navigateur web et naviguez vers votre dépôt github-actions-demo sur GitHub : https://github.com/your-username/github-actions-demo
  2. Cliquez sur l'onglet Settings (Paramètres).
  3. Dans la barre latérale gauche, faites défiler jusqu'à la section Security (Sécurité), cliquez sur Secrets and variables, puis sélectionnez Actions.
  4. Cliquez sur le bouton vert New repository secret (Nouveau secret de dépôt).
  5. Entrez les détails suivants :
    • Name (Nom) : MY_SECRET
    • Secret : SuperSecretValue123
  6. Cliquez sur Add secret (Ajouter un secret).
GitHub Actions secrets

Vous devriez maintenant voir MY_SECRET listé sous "Repository secrets" (Secrets de dépôt).

Cloner le dépôt

Revenez maintenant à l'environnement LabEx pour cloner le dépôt.

  1. Sur la page de votre dépôt GitHub pour github-actions-demo, cliquez sur le bouton vert Code.
  2. Assurez-vous que l'onglet HTTPS est sélectionné et copiez l'URL. Elle devrait ressembler à https://github.com/your-username/github-actions-demo.git.
  3. Ouvrez le terminal dans l'environnement LabEx. Le chemin par défaut est ~/project.
  4. Utilisez la commande git clone pour télécharger le dépôt. Remplacez your-username par votre nom d'utilisateur GitHub réel.
cd ~/project
git clone https://github.com/your-username/github-actions-demo.git

Exemple de sortie :

Cloning into 'github-actions-demo'...
remote: Enumerating objects: X, done.
remote: Counting objects: 100% (X/X), done.
remote: Total X (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (X/X), done.
  1. Naviguez dans le dépôt cloné :
cd ~/project/github-actions-demo

Référencer le secret dans le workflow avec ${{ secrets.MY_SECRET }}

Dans cette étape, vous allez créer un fichier de workflow qui référence le secret que vous venez de créer.

  1. Assurez-vous d'être dans le répertoire du dépôt (repository) :
cd ~/project/github-actions-demo
  1. Créez un nouveau fichier nommé secrets-demo.yml à l'intérieur du répertoire .github/workflows :
touch .github/workflows/secrets-demo.yml
  1. Ouvrez .github/workflows/secrets-demo.yml dans le WebIDE et ajoutez le contenu suivant. Ceci définit un workflow de base qui se déclenche lors des événements push.
name: Secrets Demo
on: [push]

jobs:
  use-secret:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

Ceci configure la tâche (job). Dans l'étape suivante, nous ajouterons la logique pour utiliser le secret.

Ajouter une étape pour afficher la valeur du secret en toute sécurité

Dans cette étape, vous allez modifier le workflow pour accéder au secret. GitHub Actions vous permet d'accéder aux secrets en utilisant la syntaxe ${{ secrets.SECRET_NAME }}.

Modifier le Workflow

Ouvrez .github/workflows/secrets-demo.yml et ajoutez l'étape suivante à la liste steps. Assurez-vous que l'indentation est correcte.

- name: Print Secret
  env:
    MY_SECRET_VAL: ${{ secrets.MY_SECRET }}
  run: |
    echo "Printing secret directly (masked): ${{ secrets.MY_SECRET }}"
    echo "Printing secret from env (masked): $MY_SECRET_VAL"

Votre fichier complet .github/workflows/secrets-demo.yml devrait ressembler à ceci :

name: Secrets Demo
on: [push]

jobs:
  use-secret:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Print Secret
        env:
          MY_SECRET_VAL: ${{ secrets.MY_SECRET }}
        run: |
          echo "Printing secret directly (masked): ${{ secrets.MY_SECRET }}"
          echo "Printing secret from env (masked): $MY_SECRET_VAL"

Concept Clé

Lorsque vous utilisez un secret dans un workflow, GitHub le masque automatiquement dans les journaux (logs). Même si vous essayez de l'afficher avec echo, la sortie affichera des astérisques (***) au lieu de la valeur réelle.

Committez et poussez le workflow avec la référence au secret

À cette étape, vous allez valider (commit) vos modifications et les pousser (push) vers GitHub. Cela déclenchera l'Action GitHub (GitHub Action).

  1. Assurez-vous d'être dans le répertoire du dépôt (repository) :
cd ~/project/github-actions-demo
  1. Mettez en scène (stage) le fichier de flux de travail :
git add .github/workflows/secrets-demo.yml
  1. Validez les modifications avec un message descriptif :
git commit -m "Add workflow to test secrets"
  1. Poussez les modifications vers le dépôt distant sur GitHub :
git push

Note sur l'Authentification :
Lorsque vous exécutez git push, l'environnement WebIDE vous invitera automatiquement à vous authentifier. Suivez ces étapes détaillées :

  1. Une fenêtre contextuelle (popup) apparaîtra avec le message : "The extension 'GitHub' wants to sign in using GitHub." Cliquez sur Allow.
  2. Une nouvelle notification apparaîtra. Cliquez sur "Copy&Continue to GitHub", puis cliquez sur "Open" dans l'invite suivante.
  3. Connectez-vous à votre compte GitHub dans la fenêtre du navigateur qui s'ouvre, et entrez le code d'autorisation qui a été copié. Après avoir confirmé l'autorisation, la page se fermera automatiquement.
  4. Attendez quelques secondes, et vous verrez le terminal terminer avec succès l'opération de poussée (push).

Note sur la Confidentialité : L'environnement WebIDE demandera un accès complet à votre compte GitHub à des fins d'authentification. Vous n'avez pas à vous soucier des problèmes de confidentialité - la machine virtuelle LabEx sera immédiatement détruite après avoir terminé le laboratoire actuel, et vos informations d'identification et d'autorisation ne seront pas conservées.

Vérifier les logs pour s'assurer que le secret est utilisé sans exposition

Après avoir poussé votre code, le flux de travail (workflow) se déclenchera automatiquement sur GitHub. Vous pouvez consulter les journaux d'exécution du flux de travail pour vérifier que le secret est utilisé de manière sécurisée.

  1. Visitez votre dépôt sur GitHub dans un navigateur web : https://github.com/your-username/github-actions-demo
  2. Cliquez sur l'onglet Actions en haut de la page du dépôt.
  3. Vous devriez voir une exécution de flux de travail listée, probablement nommée "Add workflow to test secrets" ou "Secrets Demo".

Note : Lorsque vous poussez du code, plusieurs Actions peuvent être déclenchées si vous avez plusieurs fichiers de flux de travail dans votre dépôt. Veuillez identifier l'exécution de flux de travail correcte en vérifiant le nom du flux de travail dans la barre latérale gauche ou en utilisant la liste des exécutions de flux de travail sur le côté droit.

  1. Cliquez sur le titre de l'exécution du flux de travail, puis cliquez sur la tâche (job) use-secret.
  2. Développez l'étape Print Secret pour voir la sortie.

Vous devriez voir quelque chose comme ceci :

Printing secret directly (masked): ***
Printing secret from env (masked): ***

Remarquez que même si le flux de travail a tenté d'imprimer la valeur du secret, GitHub Actions l'a automatiquement masquée avec *** dans les journaux. C'est une fonctionnalité de sécurité critique : elle empêche les informations sensibles d'être accidentellement exposées dans les journaux, même si vous essayez de les imprimer. Cela confirme que votre secret est configuré de manière sécurisée et utilisé dans le flux de travail sans exposer sa valeur réelle.

GitHub Actions logs

Résumé

Dans ce laboratoire, vous avez réussi à apprendre comment :

  1. Créer un Secret de Dépôt (Repository Secret) dans les Paramètres GitHub pour stocker des données sensibles.
  2. Créer un fichier de workflow GitHub Actions.
  3. Référencer le secret en utilisant la syntaxe ${{ secrets.MY_SECRET }}.
  4. Transmettre le secret aux variables d'environnement au sein d'une étape de job.
  5. Vérifier que GitHub masque automatiquement la valeur du secret dans les journaux de construction (build logs).

Cette pratique garantit que vos données sensibles, telles que les clés de déploiement et les jetons API, restent sécurisées tout au long de votre processus CI/CD.