Skip to main content

Compréhension des types de secrets GitHub

En savoir plus sur l’utilisation, l’étendue et les autorisations d’accĂšs des secrets GitHub.

À propos des types de secrets de GitHub

Les secrets GitHub sont utilisés pour stocker en toute sécurité des informations sensibles telles que les clés API, les jetons et les mots de passe dans les référentiels.

Lorsque vous stockez les informations sensibles en tant que secret GitHub, vous n’avez plus besoin de coder en dur les informations d’identification ou la clĂ©, et vous empĂȘchez leur exposition dans votre code ou vos journaux. Le secret peut ensuite ĂȘtre utilisĂ© pour authentifier des services, gĂ©rer des informations d’identification et transmettre en toute sĂ©curitĂ© des donnĂ©es sensibles dans les flux de travail.

Il existe trois types de secrets utilisĂ©s par GitHub :

Selon le type de secret GitHub, vous pouvez créer et gérer des secrets dans la page des paramÚtres de sécurité de votre référentiel, de votre organisation ou de votre compte personnel.

Comprendre comment GitHub stocke les secrets

GitHub utilise des boĂźtes scellĂ©es Libsodium pour chiffrer les secrets. Un secret est chiffrĂ© avant d’atteindre GitHub et reste chiffrĂ© jusqu’à ce qu’il soit utilisĂ© par le service concernĂ© (Dependabot, GitHub Actions ou Codespaces).

Les secrets Dependabot

Les secrets Dependabot sont utilisĂ©s pour stocker les informations d’identification et les informations sensibles Ă  utiliser dans Dependabot.

Les secrets Dependabot sont rĂ©fĂ©rencĂ©s dans le fichier dependabot.yml d’un rĂ©fĂ©rentiel.

Utilisation

Les secrets Dependabot sont gĂ©nĂ©ralement utilisĂ©s par Dependabot pour s’authentifier auprĂšs des registres de packages privĂ©s. Cela permet Ă  Dependabot d’ouvrir des demandes de tirage pour mettre Ă  jour les dĂ©pendances vulnĂ©rables ou obsolĂštes dans les rĂ©fĂ©rentiels privĂ©s. UtilisĂ©s pour l'authentification, ces secrets Dependabot sont rĂ©fĂ©rencĂ©s dans le fichier dependabot.yml d’un rĂ©fĂ©rentiel.

Les secrets Dependabot peuvent Ă©galement inclure des secrets requis pour les flux de travail initiĂ©s par Dependabot. Par exemple, Dependabot peut dĂ©clencher des flux de travail GitHub Actions lorsqu’il crĂ©e des demandes de tirage pour mettre Ă  jour les dĂ©pendances, ou des commentaires sur les demandes de tirage. Dans ce cas, les secrets Dependabot peuvent ĂȘtre rĂ©fĂ©rencĂ©s Ă  partir de fichiers de flux de travail (.github/workflows/*.yml) tant que le flux de travail est dĂ©clenchĂ© par un Ă©vĂ©nement Dependabot.

Étendue

Vous pouvez dĂ©finir les secrets Dependabot au :

  • Niveau du rĂ©fĂ©rentiel
  • Niveau de l’organisation

Les secrets Dependabot peuvent ĂȘtre partagĂ©s entre les rĂ©fĂ©rentiels lorsqu’ils sont dĂ©finis au niveau de l’organisation. Vous devez spĂ©cifier les rĂ©fĂ©rentiels dans l’organisation qui peuvent accĂ©der au secret.

Autorisations d'accĂšs

Les secrets Dependabot sont accessibles par Dependabot lors de l’authentification auprĂšs des registres privĂ©s pour mettre Ă  jour les dĂ©pendances.

Les secrets Dependabot sont accessibles par les flux de travail GitHub Actions lorsque l’évĂ©nement dĂ©clencheur du flux de travail est initiĂ© par Dependabot. En effet, lorsqu’un flux de travail est initiĂ© par Dependabot, seuls les secrets Dependabot sont disponibles. Les secrets Actions ne sont pas accessibles. Par consĂ©quent, tous les secrets requis pour ces flux de travail doivent ĂȘtre stockĂ©s en tant que secrets Dependabot, plutĂŽt qu’en tant que secrets Actions. Il existe des restrictions de sĂ©curitĂ© supplĂ©mentaires pour l’évĂ©nement pull_request_target. Consultez Limitations et restrictions.

Autorisations d’accùs utilisateur

Secrets au niveau du rĂ©fĂ©rentiel :

  • Les utilisateurs disposant d’un accĂšs administrateur au rĂ©fĂ©rentiel peuvent crĂ©er et gĂ©rer des secrets Dependabot.
  • Les utilisateurs disposant d’un accĂšs collaborateur au rĂ©fĂ©rentiel peuvent utiliser le secret pour Dependabot.

Secrets au niveau de l’organisation :

  • Les propriĂ©taires d’organisations peuvent crĂ©er et gĂ©rer des secrets Dependabot.
  • Les utilisateurs disposant d’un accĂšs collaborateur aux rĂ©fĂ©rentiels avec accĂšs Ă  chaque secret peuvent utiliser le secret pour Dependabot.

Limitations et restrictions

Pour les flux de travail initiĂ©s par Dependabot, l’évĂ©nement pull_request_target est traitĂ© diffĂ©remment des autres Ă©vĂ©nements. Pour cet Ă©vĂ©nement, si la rĂ©fĂ©rence de base de la demande de tirage a Ă©tĂ© créée par Dependabot (github.event.pull_request.user.login == 'dependabot[bot]') :

  • Le flux de travail reçoit un GITHUB_TOKEN en lecture seule.
  • Les secrets ne sont pas disponibles pour le flux de travail.

Cette restriction supplĂ©mentaire permet d’éviter les risques de sĂ©curitĂ© potentiels qui pourraient rĂ©sulter des demandes de tirage créées par Dependabot.

Les secrets Dependabot ne sont pas transmis aux duplications (forks).

Secrets pour les actions

Les secrets Actions sont utilisĂ©s pour stocker des informations sensibles telles que les clĂ©s API, les jetons d’authentification et d’autres informations d’identification dans les flux de travail.

Utilisation

Les secrets Actions sont référencés dans les fichiers de flux de travail (.github/workflows/*.yml).

Étendue

Vous pouvez dĂ©finir des secrets Actions au :

  • Niveau du rĂ©fĂ©rentiel
  • Niveau d’environnement
  • Niveau de l’organisation

Les secrets au niveau de l’environnement sont spĂ©cifiques Ă  un environnement particulier, tel que la production ou la mise en lots. Les secrets Actions peuvent ĂȘtre partagĂ©s entre les rĂ©fĂ©rentiels s’ils sont dĂ©finis au niveau de l’organisation. Vous pouvez utiliser des stratĂ©gies d’accĂšs pour contrĂŽler les rĂ©fĂ©rentiels qui ont accĂšs au secret.

Autorisations d'accĂšs

Les secrets Actions sont uniquement disponibles dans les flux de travail GitHub Actions. MĂȘme s’il s’exĂ©cute sur Actions, Dependabot n’a pas accĂšs aux secrets Actions.

Pour les flux de travail initiĂ©s par Dependabot, les secrets Actions ne sont pas disponibles. Ces secrets de flux de travail doivent ĂȘtre stockĂ©s en tant que secrets Dependabot afin d’ĂȘtre accessibles au flux de travail.

L’emplacement oĂč vous stockez le secret Actions dĂ©termine son accessibilitĂ© :

  • Secret du rĂ©fĂ©rentiel : tous les flux de travail du rĂ©fĂ©rentiel peuvent accĂ©der au secret.
  • Secret de l’environnement : le secret est limitĂ© aux tĂąches faisant rĂ©fĂ©rence Ă  cet environnement particulier.
  • Secret de l’organisation : tous les flux de travail dans les rĂ©fĂ©rentiels qui ont obtenu l’accĂšs par l’organisation peuvent accĂ©der aux secrets d’organisation.

Autorisations d’accùs utilisateur

Secrets au niveau du rĂ©fĂ©rentiel et de l’environnement :

  • Les utilisateurs disposant d’un accĂšs administrateur au rĂ©fĂ©rentiel peuvent crĂ©er et gĂ©rer des secrets Actions.
  • Les utilisateurs disposant d’un accĂšs collaborateur au rĂ©fĂ©rentiel peuvent utiliser le secret.

Secrets au niveau de l’organisation :

  • Les propriĂ©taires d’organisation peuvent crĂ©er et gĂ©rer des secrets Actions.
  • Les utilisateurs disposant d’un accĂšs collaborateur aux rĂ©fĂ©rentiels avec accĂšs Ă  chaque secret peuvent utiliser le secret.

Limitations et restrictions

  • Les secrets Actions ne sont pas disponibles pour les flux de travail initiĂ©s par Dependabot.
  • Les secrets Actions ne sont pas transmis aux flux de travail dĂ©clenchĂ©s par une demande de tirage provenant d’une duplication (fork).
  • GitHub Actions masque automatiquement le contenu de tous les secrets GitHub imprimĂ©s dans les journaux de flux de travail.
  • Vous pouvez stocker jusqu’à 1 000 secrets d’organisation, 100 secrets de dĂ©pĂŽt et 100 secrets d’environnement. La taille des secrets est limitĂ©e Ă  48 ko. Pour plus d’informations, consultez Limites pour les secrets.

Secrets Codespaces

Les secrets Codespaces stockent les informations d’identification et les informations sensibles, telles que les jetons API et les clĂ©s SSH, Ă  utiliser dans GitHub Codespaces, ce qui vous permet de configurer des environnements de dĂ©veloppement sĂ©curisĂ©s.

Utilisation

Les secrets Codespaces sont référencés dans la configuration du conteneur de développement Codespaces (devcontainer.json).

Étendue

Vous pouvez dĂ©finir les secrets Codespaces au :

  • Niveau du compte d’utilisateur
  • Niveau du rĂ©fĂ©rentiel
  • Niveau de l’organisation

Pour les secrets de niveau du compte d’utilisateur, vous pouvez choisir les rĂ©fĂ©rentiels qui ont accĂšs au secret. Les secrets Codespaces peuvent ĂȘtre partagĂ©s entre les rĂ©fĂ©rentiels s’ils sont dĂ©finis au niveau de l’organisation. Vous pouvez utiliser des stratĂ©gies d’accĂšs pour contrĂŽler les rĂ©fĂ©rentiels qui ont accĂšs au secret.

Autorisations d'accĂšs

Les secrets Codespaces sont uniquement accessibles dans Codespaces.

GitHub Actions ne peut pas accéder aux secrets Codespaces.

Autorisations d’accùs utilisateur

Secrets au niveau du compte d’utilisateur :

  • Les secrets Codespaces sont disponibles pour tous les codespaces que vous crĂ©ez Ă  l’aide de rĂ©fĂ©rentiels ayant accĂšs Ă  ce secret.

Secrets au niveau du rĂ©fĂ©rentiel :

  • Les utilisateurs disposant d’un accĂšs administrateur au rĂ©fĂ©rentiel peuvent crĂ©er et gĂ©rer des secrets Codespaces.
  • Les utilisateurs disposant d’un accĂšs collaborateur au rĂ©fĂ©rentiel peuvent utiliser le secret.

Secrets au niveau de l’organisation :

  • Les propriĂ©taires d’organisations peuvent crĂ©er et gĂ©rer des secrets Codespaces.
  • Les utilisateurs disposant d’un accĂšs collaborateur aux rĂ©fĂ©rentiels avec accĂšs Ă  chaque secret peuvent utiliser le secret.

Limitations et restrictions

  • Vous pouvez stocker jusqu’à 100 secrets pour GitHub Codespaces.
  • La taille des secrets est limitĂ©e Ă  48 Ko.
  • Les secrets Codespaces ne sont pas transmis aux duplications (forks).

Pour aller plus loin