À 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 deux 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.
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.