Gestion des secrets avec GitHub
Approfondissez le stockage et l’accès sécurisés aux identifiants sensibles avec GitHub Secrets et OpenID Connect (OIDC).
Gestion des secrets avec GitHub est une leçon DevOps Bootcamp gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage DevOps Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours DevOps Bootcamp comprend 4 leçons au total.
Pourquoi une gestion sécurisée des secrets est-elle importante
Dans tout projet logiciel, vous devez souvent utiliser des informations sensibles comme des clés d'API, des identifiants de bases de données ou des jetons d'accès. Les stocker directement dans votre code ou votre dépôt représente un risque de sécurité majeur.
La gestion des secrets consiste à stocker et à gérer ces données sensibles de manière sécurisée. Elle garantit que seuls les systèmes et utilisateurs autorisés peuvent y accéder, empêchant ainsi toute exposition non autorisée.
Que sont les secrets GitHub
GitHub fournit un moyen sécurisé de stocker les informations sensibles, appelé secrets GitHub. Il s'agit de variables d'environnement chiffrées que vous pouvez utiliser dans vos flux de travail GitHub Actions.
- Ils ne sont pas écrits dans les journaux par défaut.
- Ils ne sont pas visibles dans l'interface utilisateur après leur création.
- Ils ne sont accessibles qu'aux flux de travail sélectionnés.
Cela protège vos identifiants contre toute exposition accidentelle.
Configurer les secrets du dépôt
Vous pouvez définir des secrets à différents niveaux : dépôt, environnement ou organisation. Le plus souvent, vous commencerez par les secrets du dépôt.
Pour en créer un :
- Accédez à l'onglet Paramètres de votre dépôt.
- Accédez à Secrets et variables > Actions.
- Cliquez sur Nouveau secret du dépôt.
Donnez-lui un nom unique (par exemple, API_KEY) et collez la valeur de votre secret.
Accéder aux secrets dans les flux de travail
Une fois qu'un secret est défini, vous pouvez l'utiliser dans vos fichiers YAML de flux de travail. GitHub Actions injecte automatiquement les secrets en tant que variables d'environnement dans vos tâches.
Vous y accédez à l'aide du contexte ${{ secrets.SECRET_NAME }}. Ce script simule une étape qui utiliserait un tel secret. Pour l'exécuter, imaginez que MY_API_KEY est défini comme variable d'environnement par GitHub Actions.
#!/bin/bash
# This script simulates a workflow step
# where a secret is passed as an environment variable.
echo "Attempting to use an API key..."
# In a real GitHub Action, MY_API_KEY would be
# set by ${{ secrets.MY_API_KEY }} in the workflow YAML.
if [ -z "$MY_API_KEY" ]; then
echo "Error: MY_API_KEY is not set!"
echo "Please define it as a secret in your workflow."
else
echo "Successfully accessed API key (partially shown): ${MY_API_KEY:0:5}..."
fiPortées plus larges des secrets
En plus des secrets du dépôt, GitHub propose deux portées plus puissantes :
- Secrets d'organisation : disponibles dans plusieurs dépôts d'une même organisation. Ils sont utiles pour les secrets partagés entre de nombreux projets (par exemple, un jeton de déploiement commun à toute l'entreprise).
- Secrets d'environnement : associés à des environnements de déploiement spécifiques (par exemple,
stagingouproduction). Ils peuvent être soumis à des règles de protection, comme l'obligation d'obtenir une approbation manuelle avant le déploiement.
Utilisez toujours la portée la plus restreinte nécessaire pour garantir une sécurité maximale.
Qu'est-ce qu'OpenID Connect (OIDC)
OpenID Connect (OIDC) est une couche d'authentification fondée sur OAuth 2.0. Il s'agit d'une norme qui permet aux clients de vérifier l'identité d'un utilisateur final en fonction de l'authentification effectuée par un serveur d'autorisation.
Dans la CI/CD, OIDC permet à vos flux de travail de s'authentifier de manière sécurisée auprès de fournisseurs de services cloud (comme AWS, Azure et GCP) sans avoir à stocker des identifiants à longue durée de vie (comme des clés d'API) en tant que secrets GitHub.
Fonctionnement d'OIDC avec Actions
GitHub Actions peut jouer le rôle de fournisseur OIDC. Lorsqu'un flux de travail s'exécute, GitHub génère un jeton OIDC unique et à courte durée de vie pour cette tâche spécifique.
Ce jeton contient des assertions vérifiables sur le flux de travail, comme le dépôt, la branche et l'ID de la tâche. Les fournisseurs de services cloud peuvent alors être configurés pour faire confiance aux jetons émis par GitHub et accorder un accès temporaire en fonction de ces assertions.
Principaux avantages d'OIDC
L'utilisation d'OIDC avec GitHub Actions offre des avantages importants en matière de sécurité :
- Pas d'identifiants à longue durée de vie : vous ne stockez pas de clés d'API cloud statiques dans les secrets GitHub.
- Réduction des risques : les jetons à courte durée de vie limitent les conséquences au cas où un jeton serait compromis.
- Accès précis : les rôles cloud peuvent être associés à des conditions spécifiques du flux de travail (par exemple, n'autoriser le déploiement qu'à partir de la branche
main). - Audit : il est plus facile de suivre qui a fait quoi, car les identités sont liées à l'exécution du flux de travail.
Intégrer OIDC aux services cloud
Pour utiliser OIDC, vous devez configurer votre fournisseur de services cloud (par exemple, AWS IAM, Azure AD ou GCP IAM) afin qu'il fasse confiance à l'émetteur OIDC de GitHub.
Cette configuration implique généralement :
- Configurer un fournisseur d'identité (IdP) dans votre compte cloud.
- Définir un rôle ou une politique qui accorde des autorisations spécifiques.
- Ajouter une « politique de confiance » au rôle, afin d'autoriser les jetons OIDC de GitHub à l'assumer, souvent avec des conditions fondées sur les assertions du jeton (par exemple, uniquement depuis un dépôt spécifique).
Le flux de travail demande ensuite un jeton et l'utilise pour s'authentifier.
Vérification rapide : accès sécurisé
Vous avez découvert les secrets GitHub pour stocker les données sensibles et OpenID Connect pour l'authentification cloud sans identifiants.
Lesquelles des affirmations suivantes concernant la gestion des secrets de GitHub Actions sont TRUE ?
Récapitulatif : sécuriser vos identifiants
Excellent travail ! Vous avez appris à gérer de manière sécurisée les données sensibles dans vos chaînes CI/CD.
- Les secrets GitHub fournissent un stockage chiffré pour les clés d'API et les jetons au sein de votre dépôt, de votre organisation ou d'environnements spécifiques.
- OpenID Connect (OIDC) offre un moyen encore plus sécurisé de s'authentifier auprès des fournisseurs de services cloud en utilisant des jetons à courte durée de vie et vérifiables au lieu d'identifiants statiques.
Ces pratiques sont essentielles pour créer des chaînes DevOps robustes et sécurisées.
Questions Fréquemment Posées
La leçon « Gestion des secrets avec GitHub » est-elle gratuite ?
Oui — le texte complet de « Gestion des secrets avec GitHub » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours DevOps Bootcamp, passe à CoddyKit PRO. Le cours DevOps Bootcamp comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Gestion des secrets avec GitHub » ?
Approfondissez le stockage et l’accès sécurisés aux identifiants sensibles avec GitHub Secrets et OpenID Connect (OIDC). Tu pratiques DevOps Bootcamp avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer DevOps Bootcamp ?
Aucune expérience préalable n'est requise. DevOps Bootcamp sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Gestion des secrets avec GitHub » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon DevOps Bootcamp ?
Oui. Chaque leçon DevOps Bootcamp inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Bonnes pratiques de sécurité dans l’intégration et la livraison continues
- Gestion des secrets avec GitHub
- Tests statiques de sécurité des applications (SAST)
- Sécurité des dépendances et de la chaîne d’approvisionnement (SCA)