Secrets et environnements
Ce qui protège réellement un jeton, et ce qui le divulgue sans que vous le voyiez.
Un secret fuit rarement par une attaque. Il fuit parce qu'un développeur pressé a ajouté echo $API_KEY pour vérifier que la variable était bien transmise, que le journal d'exécution est resté six mois dans un dépôt public, et que personne ne s'en est souvenu. Il fuit aussi parce qu'un jeton a été passé en argument de ligne de commande — donc visible dans la liste des processus du runner — ou parce qu'une commande curl en mode verbeux a recopié l'en-tête d'autorisation dans sa sortie.
GitHub masque automatiquement les secrets dans les journaux, en remplaçant leur valeur exacte par des astérisques. Cette protection est réelle mais fragile par construction : elle fonctionne par comparaison de chaînes. Si le secret est encodé, découpé, ou affiché caractère par caractère, le masquage ne reconnaît plus rien et la valeur apparaît en clair. Comprendre où cette protection s'arrête est plus utile que de la considérer comme un filet de sécurité.
Secrets ou variables : la bonne distinction
GitHub propose deux stockages, dans les réglages du dépôt.
Les variables (vars) sont lisibles en clair dans l'interface et affichées dans les journaux. Elles servent à ce qui est de la configuration et non du droit d'accès : une URL d'API, un nom de région, un identifiant de projet, un niveau de journalisation.
Commentaires
Les commentaires sont alimentés par GitHub Discussions
Connectez-vous avec GitHub pour participer à la discussion