Skip to main content

Sécuriser les informations d’identification de l’API

Suivez ces bonnes pratiques pour sécuriser vos jetons et informations d’identification d’API.

Choisir une méthode d’authentification appropriée

Vous devez choisir une méthode d’authentification appropriée pour la tâche que vous souhaitez accomplir.

  • Pour utiliser l’API pour une utilisation personnelle, vous pouvez créer un personal access token.
  • Pour utiliser l’API pour le compte d’une organisation ou d’un autre utilisateur, vous devez créer un GitHub App.
  • Pour utiliser l’API dans un GitHub Actions flux de travail, vous devez vous authentifier avec le module intégré GITHUB_TOKEN.

Pour plus d’informations, consultez « À propos de l’authentification à GitHub ».

Limitez les permissions de vos identifiants

Lors de la création d’un personal access token, sélectionnez uniquement les autorisations ou étendues minimales nécessaires, puis définissez une date d’expiration pour la durée minimale pendant laquelle vous devez utiliser le jeton. GitHub recommande d’utiliser fine-grained personal access tokens au lieu de personal access tokens (classic). Pour plus d’informations, consultez « Gestion de vos jetons d’accès personnels ».

Un jeton possède les mêmes capacités d’accès aux ressources et d’exécution d’actions sur ces ressources que le propriétaire du jeton, et est en outre limité par toute portée ou autorisation accordée au jeton. Un jeton ne peut pas accorder des fonctionnalités d’accès supplémentaires à un utilisateur.

Lors de la création d’un GitHub App, sélectionnez les autorisations minimales dont vous GitHub App aurez besoin. Pour plus d’informations, consultez « Meilleures pratiques pour la création d’une application GitHub ».

Lors de l’authentification avec GITHUB_TOKEN dans un flux de travail GitHub Actions, donnez seulement les autorisations minimales nécessaires. Pour plus d’informations, consultez « Utiliser GITHUB_TOKEN pour l’authentification dans les flux de travail ».

Stocker vos informations d’identification d’authentification de manière sécurisée

Traitez les informations d’identification d’authentification de la même façon que vous traitez vos mots de passe ou d’autres informations d’identification sensibles.

  • Ne partagez pas d’informations d’identification d’authentification en utilisant un système de messagerie ou d’e-mail non chiffré.
  • Ne passez pas votre personal access token en clair dans la ligne de commande. Pour plus d’informations, consultez « Gestion de vos jetons d’accès personnels ».
  • Ne poussez pas d’informations d’identification d’authentification non chiffrées, comme des jetons ou des clés, vers un dépôt, même si celui-ci est privé. Au lieu de cela, envisagez d’utiliser un GitHub Actions secret ou un secret Codespaces. Pour plus d’informations, consultez Utilisation de secrets dans GitHub Actions et Gestion des secrets spécifiques à votre compte pour GitHub Codespaces.
  • Vous pouvez utiliser l’analyse des secrets pour découvrir des jetons, des clés privées et d’autres secrets qui ont été poussés vers un dépôt, ou pour bloquer les poussées (push) ultérieures qui contiennent des secrets. Pour plus d’informations, consultez « À propos de l’analyse des secrets ».

Limiter les personnes autorisées à accéder à vos informations d’identification d’authentification

Ne partagez pas vos personal access token informations avec d’autres personnes. Au lieu de partager un personal access token, envisagez de créer un GitHub App. Pour plus d’informations, consultez « À propos de la création d’applications GitHub ».

Si vous devez partager des informations d’identification avec une équipe, stockez les informations d’identification dans un système partagé sécurisé. Par exemple, vous pouvez stocker et partager des mots de passe en toute sécurité à l’aide de 1Password ou stocker des clés dans Azure KeyVault et gérer l’accès avec votre iam (Gestion des identités et des accès).

Si vous créez un GitHub Actions flux de travail qui doit accéder à l’API, vous pouvez stocker vos informations d’identification dans un secret chiffré et accéder au secret chiffré à partir du flux de travail. Pour plus d’informations, consultez « Utilisation de secrets dans GitHub Actions » et « Effectuer des requêtes d’API authentifiées avec une application GitHub dans un flux de travail GitHub Actions ».

Utiliser les informations d’identification d’authentification de manière sécurisée dans votre code

Ne codez jamais en dur les informations d’identification d’authentification telles que les jetons, les clés ou les secrets liés à l’application dans votre code. Au lieu de cela, envisagez d’utiliser un gestionnaire de secrets tel que Azure Key Vault ou HashiCorp Vault. Pour plus d’informations sur la sécurisation GitHub App des informations d’identification, consultez Meilleures pratiques pour la création d’une application GitHub.

Si vous trouvez un autre utilisateur personal access token exposé sur GitHub ou ailleurs, vous pouvez envoyer une demande de révocation via l’API REST. Consultez « Révocation ».

Lorsque vous utilisez un script personal access token, envisagez de stocker votre jeton en tant que secret GitHub Actions et d’exécuter votre script via GitHub Actions. Vous pouvez également stocker votre jeton en tant que secret Codespaces et exécuter votre script dans Codespaces. Pour plus d’informations, consultez Utilisation de secrets dans GitHub Actions et Gestion des secrets spécifiques à votre compte pour GitHub Codespaces.

Si aucune de ces options n’est possible, vous pouvez stocker les informations d’identification d’authentification dans un fichier .env. Veillez à chiffrer votre fichier .env et à ne jamais le pousser vers un dépôt.

Préparer un plan de correction

Vous devez créer un plan pour gérer les violations de sécurité en temps opportun. En cas de fuite de votre jeton ou d’autres informations d’authentification, vous devez :

  • Générer de nouvelles informations d’identification.
  • Remplacer les anciennes informations d’identification par les nouvelles partout où vous stockez les informations d’identification ou y accédez.
  • Supprimer les anciennes informations d’identification compromises.

Pour plus d’informations sur le remplacement des informations d’identification compromises pour un GitHub App, consultez Meilleures pratiques pour la création d’une application GitHub.

Pour plus d’informations sur la création et la suppression de personal access tokens, consultez Gestion de vos jetons d’accès personnels.