Ă 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).