﻿﻿{"id":2107,"date":"2026-01-17T19:00:00","date_gmt":"2026-01-17T18:00:00","guid":{"rendered":"https:\/\/elearningsamba.com\/index.php\/envmap-fini-les-fichiers-env-qui-trainent-et-finissent-sur-github\/"},"modified":"2026-01-17T19:00:00","modified_gmt":"2026-01-17T18:00:00","slug":"envmap-fini-les-fichiers-env-qui-trainent-et-finissent-sur-github","status":"publish","type":"page","link":"https:\/\/elearningsamba.com\/index.php\/envmap-fini-les-fichiers-env-qui-trainent-et-finissent-sur-github\/","title":{"rendered":"Envmap &#8211; Fini les fichiers .env qui tra\u00eenent et finissent sur GitHub"},"content":{"rendered":"<p>Devinette du soir : Qu\u2019est-ce qui est pire qu&#8217;un secret que vous avez oubli\u00e9 de cacher ?<\/p>\n<p>R\u00e9ponse : Des dizaines, des millions de secrets qui tra\u00eenent sur GitHub parce que quelqu&#8217;un a eu la flemme de configurer un vrai gestionnaire de variables d&#8217;environnement !<\/p>\n<p>H\u00e9 oui, les amis ! On a tous fait cette boulette au moins une fois (ou alors vous mentez, ou vous \u00eates un robot). On cr\u00e9e un petit fichier <code>.env<\/code>, on oublie de le rajouter au <code>.gitignore<\/code>, et paf, vos cl\u00e9s AWS se retrouvent \u00e0 poil. Selon GitHub, c&#8217;est plus de 39 millions de secrets qui ont \u00e9t\u00e9 d\u00e9tect\u00e9s en fuite sur leurs d\u00e9p\u00f4ts en 2024. C&#8217;est du d\u00e9lire !<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/korben.info\/cdn-cgi\/image\/width=1200,fit=scale-down,quality=90,f=avif\/envmap-secrets-sans-fichier-env-disque-github-leaks\/envmap-secrets-sans-fichier-env-disque-github-leaks-2.png\" alt=\"\" loading=\"lazy\"><\/p>\n<p><em>Envmap &#8211; Le gestionnaire de variables d&#8217;environnement qui tue les fichiers .env (<br \/>\n<a href=\"https:\/\/github.com\/BinSquare\/envmap\">Source<\/a><br \/>\n)<\/em><\/p>\n<p>Du coup, au lieu de continuer \u00e0 se farcir du bricolage avec des fichiers qui tra\u00eenent en clair sur le disque, je vous propose de jeter un \u0153il \u00e0 <strong><br \/>\n<a href=\"https:\/\/github.com\/BinSquare\/envmap\">Envmap<\/a><br \/>\n<\/strong>.<\/p>\n<p>C&#8217;est un outil \u00e9crit en Go dont l&#8217;objectif est de r\u00e9duire au maximum l&#8217;\u00e9criture de vos secrets sur le disque dur. En mode normal, il va les pomper directement chez les grands manitous du stockage s\u00e9curis\u00e9 comme AWS Secrets Manager, HashiCorp Vault, 1Password ou encore Doppler (m\u00eame si pour l&#8217;instant, certains de ces providers sont encore en cours d&#8217;int\u00e9gration).<\/p>\n<p>Comme \u00e7a, au lieu de faire un vieux <code>source .env<\/code> qui laisse tra\u00eener un fichier sensible, vous lancez votre application avec <code>envmap run -- node app.js<\/code>. L&#8217;outil r\u00e9cup\u00e8re les variables en RAM et les injecte dans le process. C&#8217;est propre, c&#8217;est net, et \u00e7a \u00e9vite surtout de pousser par erreur votre config sur un repo public.<\/p>\n<p>Pour ceux qui se demandent s&#8217;il faut quand m\u00eame envoyer ses fichiers .env sur GitHub (spoiler : non, jamais !), Envmap propose une commande <code>import<\/code> pour ing\u00e9rer vos vieux secrets. Et pour ceux qui ont besoin d&#8217;un stockage local, sachez qu&#8217;Envmap peut aussi chiffrer vos variables en AES-256-GCM, ce qui est quand m\u00eame plus s\u00e9rieux qu&#8217;un fichier texte lisible par n&#8217;importe qui. Notez aussi qu&#8217;il existe une commande <code>sync<\/code> si vous avez vraiment besoin de g\u00e9n\u00e9rer un fichier <code>.env<\/code> temporaire.<\/p>\n<p>Perso, ce que je trouve vraiment cool, c&#8217;est l&#8217;int\u00e9gration avec <code>direnv<\/code>. On rajoute une ligne dans son <code>.envrc<\/code>, et hop, les secrets sont charg\u00e9s automatiquement quand on entre dans le dossier du projet. C&#8217;est magique et \u00e7a \u00e9vite les crises cardiaques au moment du push.<\/p>\n<p>D&#8217;ailleurs, si vous voulez aller plus loin dans la s\u00e9curisation de vos outils, je vous recommande de lire mon article sur<br \/>\n<a href=\"https:\/\/korben.info\/sops-gestionnaire-mots-passe-devops.html\">SOPS<\/a><br \/>\nou encore ma r\u00e9flexion sur<br \/>\n<a href=\"https:\/\/korben.info\/gitlab-pour-arreter-de-tout-mettre-sur-github.html\">l&#8217;usage de GitLab<\/a><br \/>\npour vos projets sensibles.<\/p>\n<p>Bref, c&#8217;est open source (sous licence Apache 2.0), et avec \u00e7a, vous dormirez sur vos deux oreilles !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Devinette du soir : Qu\u2019est-ce qui est pire qu&#8217;un secret que vous avez oubli\u00e9 de cacher ? R\u00e9ponse : Des dizaines, des millions de secrets qui tra\u00eenent sur GitHub parce que quelqu&#8217;un a eu la flemme de configurer un vrai gestionnaire de variables d&#8217;environnement ! H\u00e9 oui, les amis ! On a tous fait cette boulette au moins une fois (ou alors vous mentez, ou vous \u00eates un robot). On cr\u00e9e un petit fichier .env, on oublie de le rajouter au .gitignore, et paf, vos cl\u00e9s AWS se retrouvent \u00e0 poil. Selon GitHub, c&#8217;est plus de 39 millions de secrets qui ont \u00e9t\u00e9 d\u00e9tect\u00e9s en fuite sur leurs d\u00e9p\u00f4ts en 2024. C&#8217;est du d\u00e9lire ! Envmap &#8211; Le gestionnaire de variables d&#8217;environnement qui tue les fichiers .env ( Source ) Du coup, au lieu de continuer \u00e0 se farcir du bricolage avec des fichiers qui tra\u00eenent en clair sur le disque, je vous propose de jeter un \u0153il \u00e0 Envmap . C&#8217;est un outil \u00e9crit en Go dont l&#8217;objectif est de r\u00e9duire au maximum l&#8217;\u00e9criture de vos secrets sur le disque dur. En mode normal, il va les pomper directement chez les grands manitous du stockage s\u00e9curis\u00e9 comme AWS Secrets Manager, HashiCorp Vault, 1Password ou encore Doppler (m\u00eame si pour l&#8217;instant, certains de ces providers sont encore en cours d&#8217;int\u00e9gration). Comme \u00e7a, au lieu de faire un vieux source .env qui laisse tra\u00eener un fichier sensible, vous lancez votre application avec envmap run &#8212; node app.js. L&#8217;outil r\u00e9cup\u00e8re les variables en RAM et les injecte dans le process. C&#8217;est propre, c&#8217;est net, et \u00e7a \u00e9vite surtout de pousser par erreur votre config sur un repo public. Pour ceux qui se demandent s&#8217;il faut quand m\u00eame envoyer ses fichiers .env sur GitHub (spoiler : non, jamais !), Envmap propose une commande import pour ing\u00e9rer vos vieux secrets. Et pour ceux qui ont besoin d&#8217;un stockage local, sachez qu&#8217;Envmap peut aussi chiffrer vos variables en AES-256-GCM, ce qui est quand m\u00eame plus s\u00e9rieux qu&#8217;un fichier texte lisible par n&#8217;importe qui. Notez aussi qu&#8217;il existe une commande sync si vous avez vraiment besoin de g\u00e9n\u00e9rer un fichier .env temporaire. Perso, ce que je trouve vraiment cool, c&#8217;est l&#8217;int\u00e9gration avec direnv. On rajoute une ligne dans son .envrc, et hop, les secrets sont charg\u00e9s automatiquement quand on entre dans le dossier du projet. C&#8217;est magique et \u00e7a \u00e9vite les crises cardiaques au moment du push. D&#8217;ailleurs, si vous voulez aller plus loin dans la s\u00e9curisation de vos outils, je vous recommande de lire mon article sur SOPS ou encore ma r\u00e9flexion sur l&#8217;usage de GitLab pour vos projets sensibles. Bref, c&#8217;est open source (sous licence Apache 2.0), et avec \u00e7a, vous dormirez sur vos deux oreilles !<\/p>\n","protected":false},"author":1,"featured_media":2108,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"give_campaign_id":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_kadence_starter_templates_imported_post":false,"footnotes":""},"class_list":["post-2107","page","type-page","status-publish","has-post-thumbnail","hentry"],"campaignId":"","_links":{"self":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2107","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/comments?post=2107"}],"version-history":[{"count":0,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2107\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media\/2108"}],"wp:attachment":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media?parent=2107"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}