À 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 dépôts.
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 évitez 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 workflows.
Il existe trois types de secrets utilisés par GitHub :
-
[Les secrets Dependabot](#dependabot-secrets) -
[Les secrets Actions](#actions-secrets) -
[Les secrets Codespaces](#codespaces-secrets)
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 dépôt, 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 données sensibles à utiliser dans Dependabot.
Les secrets Dependabot sont référencés dans le fichier dependabot.yml du dépôt.
Usage
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 (pull request) pour mettre à jour les dépendances vulnérables ou obsolètes dans les dépôts privés. Utilisés pour l’authentification, ces secrets Dependabot sont référencés dans le fichier dependabot.yml du dépôt.
Les secrets Dependabot peuvent également inclure les secrets requis pour les workflows initiés par Dependabot. Par exemple, Dependabot peut déclencher des workflows GitHub Actions lorsqu’il crée des demandes de tirage pour mettre à jour des dépendances, ou lorsqu’il commente des demandes de tirage. Dans ce cas, les secrets Dependabot peuvent être référencés à partir des fichiers de workflow (.github/workflows/*.yml), tant que le workflow est déclenché par un événement Dependabot.
Scope
Vous pouvez définir les secrets Dependabot aux niveaux suivants :
- Au niveau du dépôt
- Au niveau de l’organisation
Les secrets Dependabot peuvent être partagés entre les dépôts lorsqu’ils sont définis au niveau de l’organisation. Vous devez spécifier les dépôts 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 utilisés par les workflows GitHub Actions lorsque l’événement déclencheur du workflow est initié par Dependabot. En effet, lorsqu’un workflow 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 workflows 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 dépôt :
- Les utilisateurs disposant d’un accès administrateur au dépôt peuvent créer et gérer les secrets Dependabot.
- Les utilisateurs disposant d’un accès collaborateur au dépôt peuvent utiliser le secret pour Dependabot.
Secrets au niveau de l’organisation :
-
**Les propriétaires d’organisation** peuvent créer et gérer les secrets Dependabot. - Les utilisateurs disposant d’un accès collaborateur aux dépôt ayant accès à chaque secret peuvent utiliser le secret pour Dependabot.
Limitations et restrictions
Pour les workflows 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 workflow reçoit un
GITHUB_TOKENen lecture seule. - Les secrets ne sont pas disponibles pour le workflow.
Cette restriction supplémentaire permet de prévenir 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 workflows.
Usage
Les secrets Actions sont référencés dans les fichiers de workflow (.github/workflows/*.yml).
Scope
Vous pouvez définir des secrets Actions :
- Au niveau du dépôt
- Au niveau de l’environnement
- Au niveau de l’organisation
Les secrets au niveau de l’environnement sont propres à un environnement particulier, tel que la production ou la préproduction. Les secrets Actions peuvent être partagés entre les dépôts s’ils sont définis au niveau de l’organisation. Vous pouvez utiliser des stratégies d’accès pour contrôler les dépôts qui ont accès au secret.
Autorisations d'accès
Les secrets Actions sont uniquement disponibles dans les workflows GitHub Actions. Même s’il s’exécute sur Actions, Dependabot n’a pas accès aux secrets Actions.
Pour les workflows initiés par Dependabot, les secrets Actions ne sont pas disponibles. Ces secrets de workflow doivent être stockés en tant que secrets Dependabot afin d’être accessibles au workflow.
L’emplacement où vous stockez le secret Actions détermine son accessibilité :
- Secret de dépôt : tous les workflows du dépôt peuvent accéder au secret.
- Secret d’environnement : le secret est limité aux travaux faisant référence à cet environnement particulier.
- Secret d’organisation : tous les workflows des dépôts 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 dépôt et secrets d’environnement :
- Les utilisateurs disposant d’un accès administrateur au dépôt peuvent créer et gérer les secrets Actions.
- Les utilisateurs disposant d’un accès collaborateur au dépôt peuvent utiliser le secret.
Secrets au niveau de l’organisation :
-
**Les propriétaires d’organisation** peuvent créer et gérer les secrets Actions. - Les utilisateurs disposant d’un accès collaborateur aux dépôts ayant accès à chaque secret peuvent utiliser le secret.
Limitations et restrictions
- Les secrets Actions ne sont pas disponibles pour les workflows initiés par Dependabot.
- Les secrets Action ne sont pas transmis aux workflows qui sont déclenchés par une demande de tirage provenant d’une duplication (fork).
- GitHub Actions masque automatiquement le contenu de tous les secrets GitHub qui sont affichés dans les journaux de workflow.
- 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 données 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.
Usage
Les secrets Codespaces sont référencés dans la configuration du conteneur de développement Codespaces (devcontainer.json).
Scope
Vous pouvez définir les secrets Codespaces aux niveaux suivants :
- Niveau du compte d’utilisateur
- Au niveau du dépôt
- Au niveau de l’organisation
Pour les secrets au niveau du compte d’utilisateur, vous pouvez choisir les dépôts qui auront accès au secret. Les secrets Codespaces peuvent être partagés entre les dépôts s’ils sont définis au niveau de l’organisation. Vous pouvez utiliser des stratégies d’accès pour contrôler les dépôts 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 dépôts ayant accès à ce secret.
Secrets au niveau du dépôt :
- Les utilisateurs disposant d’un accès administrateur au dépôt peuvent créer et gérer les secrets Codespaces.
- Les utilisateurs disposant d’un accès collaborateur au dépôt peuvent utiliser le secret.
Secrets au niveau de l’organisation :
-
**Les propriétaires d’organisation** peuvent créer et gérer les secrets Codespaces. - Les utilisateurs disposant d’un accès collaborateur aux dépôts ayant 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).
Lectures complémentaires
-
[AUTOTITLE](/code-security/dependabot/working-with-dependabot/configuring-access-to-private-registries-for-dependabot#storing-credentials-for-dependabot-to-use) -
[AUTOTITLE](/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions)