
La gestion des secrets et .ENV
Durée: 24m16s
Date de sortie: 18/09/2024
Les variables d'environnement sont essentielles pour la sécurité et la flexibilité des applications web. Bien que le fichier .ENV soit couramment utilisé, il présente des risques de partage d'informations sensibles. Des solutions alternatives comme les gestionnaires de mots de passe et les "secrets managers" offrent une meilleure sécurité pour le stockage et le partage d'informations confidentielles, particulièrement dans les environnements de développement collaboratifs et les déploiements cloud. Retrouvez toutes les notes et les liens de l'épisode sur cette page : https://double-slash.dev/podcasts/secret-environnement/
Bonjour à tous, bienvenue sur ce nouvel épisode de Double Slash. Comme d'habitude, nous sommes
avec Alex, salut Alex. Salut Patrick, salut tout le monde. Donc, épisode, alors on ne
va pas faire de news dans cet épisode, on va parler de secrets et de variables d'environnement
en fait, le truc qu'on a au quotidien quand on fait du développement web. Voilà, donc
les bonnes pratiques. On va essayer de partager toutes les bonnes pratiques, malheureusement
enrichie de toute l'actualité qu'on a pu voir sur ces derniers mois, des gros leaks et on voit
en fait beaucoup de mauvaises pratiques s'installer au sein des équipes sur le partage de variables
d'environnement, des tokens, soit pour les services, soit pour les consignes ou en tout cas toutes
les données sensibles. Il y a quand même des règles à respecter et ce qu'on vous propose dans
ce petit épisode, c'est justement de re-baller un petit peu tous les bonnes pratiques et de voir
comment on peut essayer de minimiser le leak, voire essayer de faire un truc tip top pour être au top
de la sécurité, même si l'intégrité absolue, c'est toujours difficile, mais en tout cas on peut
essayer d'y tendre et d'éviter des gros leaks comme il y a eu sur cet objet qui te tient à coeur
Patrick, tu trouves ce cet objet ? C'est parfaitement inutile, mal codé en plus a priori puisqu'ils
ont mis les tokens ou je ne sais pas quoi, les id en dur dans le code, quelle bonne idée, géniale.
Donc pour ceux qui nous écoutent, c'est l'objet qui s'appelle un rabit, le R1, en fait où c'était
un petit objet que tu viens mettre dans ta poche et qui filme et qui enregistre à peu près tout et qui
te donne un contexte de ta journée et tu peux lui poser des questions et il écoutait, il fait la
transcription et je crois que c'est le token de la synthesisation vocale, je crois, qui a été liqué
parce qu'il était écrit en dur, c'est astronomique comme truc, c'est lunaire.
Qui n'a jamais fait cet art ? Moi je l'ai déjà fait de balancer un truc en dur, sans faire exprès,
par méconncence tu vas peut-être au début, ça arrive, c'est arrivé.
Mais on l'a tous fait, on l'a tous fait, on l'a tous fait et on l'a dit.
On a fait de brosser un petit peu le spectre des solutions qu'on a pour éviter de faire des trucs
un peu à l'arrache parce que ce qui est clair, la sécurité c'est quand même hyper important
et aujourd'hui on ne peut pas dissocier notre travail avec la sécurité. J'ai encore eu des
conversations avec un client sur l'hébergement et il me dit non mais il y a l'hébergement et il y a la
non, c'est intrinsèquement dans l'hébergement. La sécurité fait partie intrinsèque de l'hébergement,
c'est comme si on disait on va vendre une voiture mais vous savez monsieur elle a des roues.
Mais en fait c'est tellement inclus et tellement transversal qu'aujourd'hui on ne peut pas
en tant que développeur dire moi je m'en balaie que c'est bon je m'en fous, yolo et on pousse
et on ne néglige la sécurité et c'est au quotidien, c'est vraiment mais vraiment
au quotidien. La plupart des failles sont souvent humaines donc déjà à partir de là
d'avoir des outils. Ça a beaucoup évolué parce que c'est vrai que je ne me rappelle plus comment
on faisait au début. Aujourd'hui on parle directement d'hébergement d'environnement,
aujourd'hui ça s'est généralisé avec le point 1 mais je ne me souviens plus trop comment on
faisait avant, je pense qu'on faisait un fichier avec les variables.
Ou c'était un fichier de config en fait. Tu vois tu as bien fiché 10 points config et tu avais tout
dedans. On peut faire ça je ne sais plus. Et ça passait par contre tu avais ce fichier là qui était
liqué ou qui était corrompu, compliqué quoi, méga, méga compliqué quoi. Après il y a aussi
un vrai sujet c'est que potentiellement ça vient donner de la friction sur le déploiement
et sur l'expérience utilisateur parce que tu vas mettre plein de surcouche ou plein d'interface
pour ces variables d'environnement, ces secrets, ces configs ou ces données sensibles.
En fait plus tu vas utiliser d'outils en intermédiaire et plus ça va c'est
soulant quoi, ça va être chiant, ah ouais j'ai pas les bonnes variables, ah ben non mais j'ai pas
accès à cela tout. Donc en fait il faut essayer de respecter, de trouver un bon compromis entre
respecter les consignes de sécurité et avoir une expérience utilisateur ou en tout cas une
expérience développeur la plus fluide possible pour que ça soit quand même facile à utiliser
et simple et que ça soit pas vraiment la chiant l'idée parce que si on met une friction en tout cas
une contrainte trop trop forte, qu'est-ce que va faire le développeur et moi le premier,
bah vas-y je m'en fous, je vais te partager mon secret comme ça à l'arrache où je vais te l'envoyer
sur un email ou sur un Slack et tout ça quoi. Ça c'est constant ça, ça c'est tout le temps, ça c'est
pas un email, c'est chaud quoi. Des fois il y a des gens qui t'envoient en deux emails ça me fait un
peu rire mais on pourrait déjà accès à tes emails et à tous les emails donc bon bref. On
pourrait déjà commencer par, on commence par le B à A ou quoi, pourquoi parce qu'on a quand même,
je sais qu'on a quand même beaucoup de développeurs junior entre guillemets ou voilà qui, alors pourquoi
on utilise aujourd'hui des variables d'environnement dans un projet en fait et pourquoi la plupart
des frameworks maintenant on utilise les points angles, les variables d'environnement, tout ça.
Je commence. Carrément, on peut attaquer tout de suite. Ce qui est sûr c'est que ton code il va être sur
plusieurs machines et il va être aussi exposé au public donc ça veut dire qu'une application
JS classique ou du PHP ou qu'importe enfin peut-être pas du PHP mais en tout cas une application
JS elle va s'exécuter en fait dans le navigateur donc potentiellement tout ton code en fait est
transporté dans ton navigateur donc si tu as écrit quelque chose en dur dans ce code là en fait
potentiellement quelqu'un qui va inspecter ton code va récupérer ses clés quoi. Donc en fait tu
vas vraiment vraiment exposer des accès parce qu'il se trouve aussi qu'aujourd'hui on utilise de
plus en plus de services tiers par exemple Google Maps par exemple je sais pas un token de Melly
Search pour faire de la recherche on va utiliser un token pour quasiment quasiment tous les services
en fait on va avoir un token. Ce token il va avoir deux possibilités soit il est vraiment public et
dans ce cas là en fait il peut être exposé au public parce que c'est en fait c'est juste
ton identification donc ça c'est pas gênant s'il est compromis parce que la plupart du temps je pense
au token Google Maps même s'il faut pas les divulguer mais il est associé à un nom de domaine
donc en fait tu vas pouvoir utiliser ce service là et en fait ta clé ne fonctionne n'est rattachée que
à ton nom de domaine donc ton nom de domaine en fait est aussi une sorte de protection mais même si
cette clé publique par définition quand c'est marqué public il faut bien comprendre qu'elle
ne doit pas être sensible quoi c'est oui on l'expose mais on sait ce qu'on fait on sait pourquoi on
le fait et c'est pas gênant mais en tout cas parfois il y a on a besoin en fait d'avoir des clés privés
pour accéder à des services tiers par exemple pour les opérateurs bancaires bon bah il nous
faut notre clé d'authentification pour valider pour demander à une émission de paiement ou
plein de choses comme ça où là pour le coup le token ça va vraiment être ton identification
dès qu'on parle d'argent ça va être hyper hyper critique donc là pour le coup on va être obligé
de sécuriser et de cacher en fait ces variables d'environnement et donc aujourd'hui tous les
les hébergements et les opérateurs qui exécutent ce code vont pouvoir en fait exécuter ce code là en
intermédiaire c'est à dire il va pas l'information va remonter ne va pas descendre jusqu'à l'utilisateur
mais va s'arrêter chez les bergeurs et c'est les bergeurs qui va injecter cette cette variable au
moment voulu du cycle de la requête quoi ouais donc la sécurité ouais donc vraiment ça permet
d'avoir de mettre de stocker les informations sensibles il y a aussi comme tu l'as dit aussi la
flexibilité en fait le fait d'avoir différents environnement et donc différents systèmes
d'hébergement tout ça donc évidemment en développement bah tu parles de mini-search je
vais avoir une base de recherche de recherche qui sera plutôt développement je m'amuse à faire des
tests machin tout ça par contre en production bah j'ai une base de recherche de recherche qui est
production donc là c'est là c'est la vraie où il y a tous les produits tout ça machin voilà
d'avoir vraiment sur la même base de code en fait bah différents points d'accès sur la base de
données la base mini-search ou le système de paiement parce que par exemple si tu prends Stripe
tu as une clé qui permet de faire des tests tu as une clé de production aussi voilà ça permet
vraiment de gérer ces différents environnements en fait donc et plus c'est plus simple pour le
config en fait on va nous en tant que développeur on va toujours essayer de faire un seul code source
par contre on va variabiliser les environnements avec des clés de config et des clés de vraiment
environnement sensibles quoi et donc en fait parfois il y a de plus en plus en fait de développeurs
qui vont faire un fichier de config et en fait c'est le fichier de config pour la prod et des fichiers
de config pour le staging pour le déploiement pour le local où en fait ils sont venus variabiliser
tout ce qu'ils ont besoin qui est propre à l'instance de à l'environnement par contre et
après il va avoir un deuxième niveau de secret en fait où là c'est vraiment toutes les données
valeur sensibles où là ils vont mettre ça dans les variables d'environnement parce que à l'inverse
si on met tout sur les variables d'environnement potentiellement on va se retrouver avec des
fichiers d'environnement qui est énorme avec beaucoup beaucoup beaucoup de variables donc en
fait il faut bien trouver le juste milieu entre qu'est ce qui relève de la config et dans ce cas là
beaucoup de frémoire qu'aujourd'hui on des fichiers config où on va mettre de la config dedans
et si c'est propre si c'est public on peut le mettre là-dedans si c'est sensible on le met
dans le fichier point point en v. Ouais ouais ok et donc première bonne pratique pour tous ceux
qui nous écoutent alors j'imagine qu'il y en a qui sont déjà habitués à cette pratique mais on ne
doit jamais mettre de token de password ou d'ID ou d'identifiant ou ce que tu veux en dur dans
le code donc ne jamais faire comme rabit le boîtier exactement exactement c'est vraiment une pratique
à adopter même pour un petit projet en fait voilà on fait un point en v tchac on met tout dedans et
on met jamais dans le code en dur à part si vraiment pendant cinq minutes tu veux tester un id voir
si ça fonctionne parce que ça bug machin imidule mais tu te de suite tu l'enlèves et si jamais
parce qu'en fait avec git en fait avec les outils de versioning on a un petit piège si jamais par
erreur vous mettez un id ou un token ou n'importe quoi et vous l'envoyer sur git et vous vous dites
bah c'est bon attend je vais l'effacer je commis je pousse et c'est bon et en fait non parce qu'en
fait ça reste dans l'historique donc en fait quelqu'un peut revenir dans l'historique et retrouver le
token facilement en fait et j'ai cru déjà entendre qu'il y avait des bots en fait qui parcouraient
git up tout ça pour trouver tout ce qui était identifié en token qui pouvait traîner en fait sur
les codes sourcils potentiellement si tu balance un truc sur git up en fait dans les peut-être dans
l'heure qui suit il peut être vite attrapé par un bot en fait ce soit un id google map ou un truc
comme ça et donc on peut quand même cliner son historique git et on vous met justement un petit
lien d'un article qui explique justement comment faire pour bah cliner son historique git si on a
exposé malo de manière très très malheureuse des tokens sensibles bah il faut faire cette
manip et je pense que au lieu de rien dire au cto ou de faire style que ça va c'est passé en fait
je pense qu'il faut plutôt l'informer et dire ok j'ai fait une connerie soit mais vas-y comment
on fait pour revenir en arrière et pour cliner ça et après il y a toujours la possibilité de
regenerer des clés la plupart des services aujourd'hui tu peux régénérer tes clés par
contre c'est hyper chronophage et ça prend beaucoup de temps de ressources et personne a envie de
faire ça quoi surtout personne a envie de faire ça quoi c'est c'est pas c'est pas top en termes de
de d'expérience et de boulot à faire c'est pas le plus gratifiant et le plus marrant à faire
un autre point aussi qui est un petit peu annexe et on va dire connex c'est tout ce qui est
tout simplement déjà password de services déjà comment tu fais pour rentrer dans tes passwords
log in password comment tu fais pour partager tes t comptes à grande question toi tu fais comment
moi perso j'ai 1 password moi j'utilise 1 password je vais certainement on en dis ce que
tu as justement passé sur protopas parce que voilà j'utilise déjà protomail qui est plutôt pas
mal c'est à côté c'est pas loin de chez moi et bon voilà ils ont protopas qui est gratuit protopas
pour ceux alors si vous avez pas de gestionnaire de mot de passe actuellement je vous recommande
protopas puisqu'il y a une version gratuite qui permet déjà d'utiliser largement tous les
systèmes de mot de passe tout ça et puis après voilà mais ouais ça fait un moment que j'ai
1 password j'avais bossé pour une agence il y a je crois 2017 un truc comme ça qui
utilisait 1 password et il partageait justement moi j'étais externe et il me partageait les
mots de passe des services via 1 password en fait donc j'avais installé 1 password et j'avais
trouvé ça pas mal en fait et puis je depuis je l'utilise donc c'est pas mal et tous tous les
accès personnellement tous les accès de mes clients ftp et machin tout ce que tu veux c'est ça
je les mets là dedans et rien qui traîne dans la machine en fait c'est sécurisé c'est vraiment
là où je voulais en venir c'est exactement ça c'est qu'en fait au delà de nos propres variables
d'environnement on va souvent aussi avoir les accès clients et exposé en tout cas moi je
considère que exposer mes variables d'environnement ça craint mais exposer les variables d'environnement
où les comptes de mes clients c'est encore pire c'est là c'est pas grave pour moi c'est vraiment
faux de grave donc nous si on doit gérer des clis des comptes clients un gestionnaire de password
c'est obligatoire c'est on peut pas faire sans on ne peut pas faire sans c'est même pas on
discute quoi c'est même pas on discute c'est évidemment j'ai encore vu alors pas dans le
monde du dev j'ai pas vu ça dans le monde du dev mais dans le monde de l'entreprise le fichier
avec ça le fichier avec avec tout et et et et et la meuf super fier me dit non non mais tu as vu
c'est tout bien rangé c'est tout bien rangé c'est parfait pour le mec qui tombe sur le fichier et
là tu fais ouah tu vois tu vois donc c'est ouais c'est c'est l'unaire c'est vraiment l'unaire mais
ça existe encore après je pense que dans la tech on est déjà beaucoup beaucoup mieux familiarisé
avec ça après que vous soyez sur android ou sur iphone aussi et de manière native maintenant
les les os sont des des gestionnaires de password assez simple mais c'est au moins stocké quelque
part et c'est pas en clair voilà il faut plusieurs niveaux de sécurité pour accéder à toutes ces
données c'est déjà ça c'est pas l'idéal mais ça au moins le mérite d'exister il faut il faut bien
comprendre aussi qu'en tant que prestataire tu es responsable en fait en cas de déjà tout ce qui
est rgpd tout ça on est déjà responsable des données on doit assurer la sécurisation des données
personnelles etc mais en plus les mots de passe tout ça c'est responsable si demain il y a un leak et
qu'ils aperçoivent ils s'aperçoivent que ça vient de toi parce que tu t'as mis ton ordi dans le
train tu l'as laissé ouvert t'as été au toilette et puis quelqu'un a chopé des trucs t'es
responsable donc pénalement évidemment et donc voilà faire attention à ça parce que c'est
ça peut aller loin quoi et récemment fin récemment je crois qu'il y a deux jours ou trois quatre jours
boulanger annoncé qui s'était fait encore liquer une fois de plus voilà avec tous les informations
des clients tout ça donc va savoir d'où ça vient certainement un mail avec un clic dessus je
sais pas ce qui s'est passé mais voilà il a réussi à rentrer ouais en tout cas attention à attention
à ça gros gros gros fans de proton mail perso tu vois je te valide alors moi j'ai déjà fait le
switch j'ai passé de dash line de proton passe ouais et pardon je suis passé de dash line où j'étais
beta tester depuis très très très très très très très longtemps et j'ai lâché mon dash line
pour proton passe parce que je suis passé sur sur la suite tout ça on mettra de toute façon tous
les liens en bas de l'épisode si vous voulez aller voir et ça peut être ça peut être sympa par
contre parfois ok ça toutes ces données elles vont être sur notre ordinateur mais parfois en fait
sur le projet on va avoir des externes on va avoir des gens qui sont hors entreprise et là comment
on fait pour pour gérer pour gérer ça ça c'est le ça c'est aussi c'est la c'est spécial parce
que justement bah aujourd'hui je vais raconter ma vie dernière une des dernières missions que j'ai
fait avec une agence bah ils avaient impartagé les points en veux tout ça enfin toutes les variables
dans l'environnement mais sauf qu'à un moment donné ils avaient un abonnement à la stick church
enfin un système de recherche et là bah ouais ouais bon je sais plus trop mais enfin voilà ils
avaient des accès et là ils ont tické ils étaient pas trop chauds pour les données et tout ça
etc donc tu vois on est passé sur une alternative où il n'y avait pas d'accès machin et tu vois
et donc en tant qu'externe c'est pas qui me faisait pas confiance mais il voulait pas que ça
traîne en fait dans la nature en fait les accès se servisent donc tu vois ça se tient là on arrive
voilà on arrive sur un point où c'est compliqué en fait bah j'ai un externe ça arrive assez
régulièrement d'avoir des externes des stagiaires des stagiaires en dev qui viennent trois quatre mois
tu leur donnes des accès après ils partent et tu sais pas ce qu'ils vont faire tes accès est-ce
qu'ils vont les effacer ou quoi ça va traîner ou est-ce qu'ils vont se faire voler leur ordi et
ils seront dessus enfin voilà ça peut donc là c'est un peu délicat ouais avec des externes
et ouais c'est c'est c'est beaucoup beaucoup mais c'est le cas de plus en plus parce que beaucoup
de boîtes utilisent des prestataires extérieurs et pareil un stagiaire un stagiaire il est là pendant
trois mois il fait son stage de six mois bah une fois qu'une fois que la personne part qu'est ce
qui se passe il a accès aux données et tout ça donc c'est c'est c'est un peu un peu plus compliqué
quoi mais sur le travail en équipe on va on va aborder il existe des solutions qui sont qui sont
plutôt qui sont plutôt pas mal on parle un petit peu des des des frémoires qui en fait dit moderne
et qui aujourd'hui en fait nous y a un mix entre du front et du bac donc c'est des frémoires
qu'on va dire hybride ou full stack ou je sais pas comment tu peux appeler ça qu'elle n'ont marqué
nous ont sorti qu'elle n'ont l'équipe du market à sorti mais toujours est-il qu'il y a un mix entre
du front et du bac et en fait on disait tout à l'heure tous ces nouveaux frémoires en fait on
a pris une sorte de convention sur sur la variable d'environnement souvent ils viennent
préfixer avec le nom du framework donc next ou nukst et derrière ils vont encore préfixer public
ou pas ce qui fait que en fait quand tu écris ta variable d'environnement ça va être très clair
et très explicite sur le fait que tu vas exposer cette valeur au public et ça met une sorte en fait
un peu de garde fou mais tu viens en fait vraiment conscientiser le fait que ça mec ça va être
public t'es ok avec ça et je trouve que c'est plutôt bien parce que en fait c'est une sorte de
niveau de sécurité mais en fait par design en fait par dans la conception dans laquelle ils ont
fait leur leur framework c'est c'est implicit et je trouve ça vachement bien en fait et c'est
toujours mieux quoi ouais ouais c'est pour éviter les erreurs c'est vrai que c'est tu peux vite te
retrouver parce qu'en fait il faut effectivement quand t'as le ssr le côté serveur le côté
front en fait le côté front est compilé et si t'as une variable d'environnement qui est
compilé en même temps bah va se retrouver visible dans le code source donc le fait comme tu
dis de mettre public ça tu dis ok c'est là il va être front public on y a accès c'est chou c'est
une bonne idée c'est pas très vieux un xgh s'ils me sentent pas qu'ils l'ont mis pas ça fait pas
dix ans que ça existe mais je trouve c'est une bonne méthode c'est sur nex c'est sur next et puis
sur d'autres évidemment donc ça voilà c'est alors des fois évidemment c'est quand vous connaissez
pas bien le framework si vous mettez une variable d'environnement et vous dites putain mais je
comprends pas j'arrive pas à l'avoir en front mon idea de google map bah en fait c'est juste parce
que vous avez oublié de mettre une next underscore public pré-pré-fixé comme toujours comme toujours
bien comprendre le système de tous ces frameworks en fait qui sont dit on va dire très implicit où
ils vont faire plein de choses pour vous en fait bah il faut bien respecter la convention si on
aspecte par la convention et on sort des des guidelines et bah tout de suite c'est tout de
suite un petit peu plus compliqué ouais ouais ouais autre sujet aussi qui qui peut être hyper
polymique ou en tout cas qui peut être sensible en fait c'est toutes les clés ssh tout simplement
potentiellement on va pouvoir se connecter à une à une machine distante on va se connecter à son
compte aws ovh n'importe qui digital océan ou n'importe quel opérateur qui fait de l'hébergement
ce qu'elle ouai et on va avoir en dur dans notre ordinateur des des clés ssh et potentiellement
alors la majorité des ordres des os maintenant ont un niveau de où ils encryptent en fait ils vont
encrypter ton ton disque dur donc ok c'est déjà bien mais parfois c'est pas suffisant quand même
et en tout cas comment on va exposer ces clés ssh tout simplement il ya plein de systèmes qui te
permet en fait de mettre ces clés ssh à travers ces petites clés pour ceux qui nous vois sur
youtube ou en tout cas qui voit la vidéo c'est une clé yubiki et qui en fait est une clé physique
tout simplement et qui permet en fait c'est comme un trouceau de clé mais physique au lieu d'avoir
un token d'accès bah tout est mais comment ouais comment ça marche en fait moi tu vois j'utilise
pas ça moi j'ai fait je suis à l'ancienne clé ssh classique sur la machine donc si demain on
prend mon ordis bon si on a mon emploi alors on coupe le doigt aussi parce qu'il faut m'empreindre
digital mais quoi que le mac évite tu peux éventuellement rentrer dessus mais avec l'historique
sur mon terminal tu peux rentrer sur un serveur tu remontes en arrière et hop t'as clé ssh comment
tu fais avec une ébiki c'est quoi c'est ancré peut-être suite tes clés ssh en fait tu vas associer
en fait ta clé ssh il ya une partie publique il ya une partie privée et en fait là il ya la partie
là dessus en fait t'as la partie privée et donc en fait ta partie publique elle est elle est bah par
définition elle est publique et toute ta partie privée elle est elle est elle est tu vas utiliser
celle ci en fait et donc c'est en ça où tu viens casser cette relation parce que tes clés ssh
fonctionnent avec pris tu devais brancher la clé à chaque fois oui tu veux te connecter à ssh tu mets
ta clé et exactement en fait c'est si on essaye de simplifier le truc c'est vraiment ta clé c'est
une clé physique dans dans un verrou quoi tu as un verrou si tu ne mets pas ta clé tu ne peux pas
accéder au service c'est c'est vraiment une clé physique donc voilà et ta house voulait que
on en redit mais ça marchera pas sans la clé exactement exactement si t'as pas la clé t'es baisé
par contre ce qui prouve aussi que ça m'est déjà arrivé où tu oublies ta clé ah bah et là t'es
mal ah bah c'est simple tu tu tu prends le laptop tu clappes et tu rentres chez toi et c'est fini
donc voilà ce qui veut dire aussi que si tu as perdu ta clé et c'est la c'est le seul accès que tu
as bah t'es baisé donc ça veut dire qu'il faut il te faut plusieurs clés il te faut voilà donc
c'est ouais c'est quand même contraignant mais c'est quand même pas mal on voit aussi alors on pourrait
faire un épisode sur que les que sur les clés ssh et comment on gère ça comment on les on
est mais pour le coup il faudrait plutôt faire un espèce de tuto il ya on voit aussi un de plus
en plus en fait l'utilisation des pas skis ou en fait je pense qu'on connaît tous le côté avec
l'iphone là le face id ou le touch id avec avec avec son doigt en fait ça utilise les pas skis et
et je pense que mais ça c'est mon intime conviction que ça fait aussi partie de l'avenir de l'authentification
parce que quand je vois ma mère en fait qui qui galère avec ses mots de passe en fait
bah la majorité des gens ne sont pas en capacité à gérer beaucoup de mot de passe
nous on est des devs donc ça passe on est plutôt familiarisé avec ce système là mais le grand
public lui ne l'est pas et donc en fait les pas skis en fait vont utiliser ta clé de machine en
fait pour t'identifier donc c'est une autre solution qui marche plutôt bien et tu peux en
fait associer cette ce pas ski en fait avec ton face id ou ton touch id et en plus apple a été
hyper ouvert on peut faire notre appliquette on peut faire du web avec les touches id et les
et les facs id et tout ça quoi donc c'est plutôt cool à utiliser pour le coup ils ont pas fermé
ce truc ça marche vraiment pour pour le web donc ça c'est plutôt bien et en fait on n'a pas
stocké toutes ces données là on rebalance la propriété enfin nous en tant en tant que développeur
on n'a pas à gérer ça on va gérer l'implémentation mais on ne va on ne va pas gérer les données
sensibles parce que bah ça sera tout balancé chez l'utilisateur quoi
allez on voit ça c'est super pratique même je vais dire au quotidien sur l'iphone tout ça le fait
d'essayer d'y tout ça quand tu connais que les applications de la banque tout ça t'as pas besoin
de taper le mot pas c'est tout et ouais il n'y a pas photo mais c'est sache après ça fonctionne le pas
ski pour le ssage tu arrives à jamais non non non c'est c'est c'est c'est deux choses différentes
c'est vraiment deux choses différentes ça se coule d'abord mais pour le sd pour le coup tu vois
moi je suis intimement convaincu que l'avenir ça sera passeport de l'es quoi tu vois ça sera
utilisé alors ça on est là ça c'est j'en suis convaincu donc c'est à nous en fait de développeur de
mettre en place des choses pour pour pouvoir gérer gérer ça allez on aborde un autre sujet qui est
pour le coup en fait bah le travail en équipe comment on fait pour pour travailler en équipe
parce que quand on est tout seul on est plutôt d'accord avec nous même on se passe sauf si on a
problèmes psychiatriques mais ça c'est autre chose mais souvent on est en équipe on va avoir
deux trois développeurs minimum et parfois des beaucoup plus grosses équipes et comment on fait
pour partager ces variables d'environnement bah écoute la plupart du temps alors quand on est
en équipe de dev la plupart du temps les devs ont plutôt accès aux environnement de dev donc c'est
la production il ya plusieurs environnement comme on les partage ouais alors point en c'est un fichier
ça reste sur la machine des fois il faut les mettre à jour ils sont pas à jour attend filmois le
nouveau nouveau token machin enfin voilà ou le nouveau token centri voilà t'as les trucs comme
centri tout ça t'as pas mal de trucs voilà où ça peut être il y a aussi alors le truc classique
je me suis planté j'ai pris centri de prod au lieu de prendre su dev j'ai pourri les logs voilà
c'est un truc classique donc déjà des plus part des verselles netlify qu'on utilise beaucoup
en tant que dev de web dev ils ont déjà des systèmes de variant d'environnement par environnement
tout simplement staging production machin donc quand tu déploies les pour le request tout ça
machin en preview bah il va prendre les développements sinon il va prendre les productions
quand ça la branche main ça c'est vraiment disposent sur pas mal de services automatique
mais après qu'est ce qu'il ya d'autre les déploiements aussi bah après tu vas avoir ton
ton pipe de déploiement ou de test en fait potentiellement tu veux tu veux il ya ça aussi les
tests et ça c'est vrai ton environnement donc voilà c'est pas c'est pas ça c'est pas gênant
ce qui est sûr c'est qu'il faut éviter de partager les données en fait en clair on lui disait tout
à l'heure email sur laque sur laque sur voilà ça c'est ça c'est carton jaune mais très très
orangé rouge aujourd'hui il ya des solutions qui nous permettent en fait je sais que proton
passe en fait permet d'envoyer un token sécurisé et tu lui dis ok tu peux l'ouvrir que deux fois ou
tu peux le tu peux le c'est viable pendant 24 heures et au moins c'est sécurisé par un service
tiers on va y venir on va en parler des services tiers mais au moins tu permet d'envoyer de l'information
sensible mais elle n'est pas écrit dans le marbre quoi et donc ça c'est vraiment le concept de
qui est important à retenir de quand je partage une information sensible qu'elle trace elle va
laisser dans le temps que ça soit sur le repo guide ou sur une nappe de messagerie quoi
et donc on arrive à la solution en fait là en fait on va avoir des logiciels et des services tiers
qui s'appellent des secrets manager on va dire des secrets manager software alors ça va être
des solutions je sais que one password gère déjà le côté collaboratif mais là on va vraiment
être sur one password ça peut être aussi bien pour la société ou de manière globale là sur les
secrets manager on est vraiment sur des solutions orientées pour les dev c'est à dire on va vraiment
avoir quelque chose de spécifique et vraiment orienté développement pour nous tous quoi
ouais parce qu'en fait c'est stocker les variables d'environnement c'est cool mais derrière
il faut pouvoir les utiliser c'est à dire que déjà en local sur docker éventuellement ou sur
versel ou netlify ou d'autres voilà il faut pouvoir à un moment donné des injectés donc il faut
que ces services s'ils offrent des ci et là et des services comme ça des appellis pour les chercher
les variables et les injecter directement quand tu vas bilder le projet ou des choses comme ça
ouais alors soit ils le font de manière native soit ils font appel à des services tiers et c'est
justement là où on va commencer à parler de tous ces services alors il en existe plusieurs
il ya doppler qui fait ça qui est déjà en place après chacun va avoir des formules en fait en tout
cas un niveau d'offre qui est un petit peu différent par contre leur but c'est quand même de
sécuriser en fait tous les laur les laisser mettre un layer de sécurité sur toutes ces données
sensibles évidemment on ne peut pas faire sans archi corp qui est vraiment la grosse grosse
machine de guerre ils ont un système qui s'appelle vault donc vraiment quelque chose de dédié
pour la gestion des secrets parce que dès qu'on arrive sur des secrets on va dire sur des fournisseurs
natifs je pense à wbs à google console et à azure là potentiellement ça va être assez critique
en fait et et ça va être souvent des on va avoir plein plein plein plein plein plein de variables
d'environnement ça peut vite être très très complexe à gérer d'où l'émergence en fait de
tous ces services qui te permettent en fait de gérer tout ça et grosse on connaît sur double slash
notre affection pour l'open source et en fait il ya une solution donc qui est soit ébergé en cloud
soit qu'on peut auto héberger nous-mêmes justement où on va pouvoir gérer les tous les secrets
management et on va en fait au lieu de d'injecter en fait en dur on va mettre une sorte de d'intermédiaire
de l'aieurs intermédiaires dans notre code et c'est ce service là en fait qui va prendre le relais
et qui va en fait substituer les clés et donc ce qui permet aussi de pouvoir utiliser des clés
en fait que des personnes puissent utiliser des clés sans voir les clés ouais ça c'est top et je
pense par exemple au stagiaire qui vient pendant trois semaines bah lui il n'a pas à voir la clé
de prod par exemple il n'a pas il n'a pas besoin de l'avoir néanmoins il faut quand même sa machine
il faut qu'il puisse travailler donc on va lui donner les clés de dev mais on ne va pas lui donner
les clés de prod on ne va pas lui donner le staging parce qu'il n'a pas besoin le test oui et en
fait on va avoir un niveau de gradulométrie assez intéressant et tous ces services là en fait
on sont connectés avec tous les services majeurs quoi donc GitLab, GitHub évidemment,
Versel, Netlify, Yeruku, OVH et tout et tous ces systèmes là quoi Azure évidemment
et puis ça marche avec pas mal de frémoire qu'aussi la Ravel tout ça voilà ça fonctionne directement
donc tu peux vraiment l'utiliser soit sur différents cloud différents frameworks voilà
c'est assez compatible par contre ce qui est sûr c'est que potentiellement tu vas avoir quand même
un coût à la mise en place de cette solution là c'est quand même c'est pas rien je pense que
c'est une vraie migration je pense que c'est adapté pour des équipes qui commencent à être un
peu conséquentes qui sont structurés avec peut-être des devs des lead devs ou avec différents
départements voilà si on est deux ou trois devs c'est peut-être too much quoi je pense
il y a une notion d'équipe combien on est dans l'équipe il y a aussi je pense une notion
de projet en fait tu peux être seul mais si t'as 30 projets que tu déploies pour des clients
tout ça ça peut être quand même plus facile de gérer via un tableau dans une physique avec
les différentes variables plutôt que de la chaque fois dans le fichier machin attend puis c'est
stocké là c'est pas forcément du coup tu le doubles pas avec one password ou pour ton passe tu
vois enfin voilà je sais pas après ça se tient après peut-être que ça peut se suffire en fait
le fait d'être d'utiliser ce système là pour juste mieux gérer même en état ouais meilleure
gestion ouais peut-être attester attester en fait moi j'ai peur que le si tu veux le le coup de
l'implémentation soit un peu trop fort par rapport au gain que tu pourrais avoir à travailler seul à
travailler en équipe c'est indéniable même pas en discute ça c'est clair ouais tout seul je sais
pas je pense qu'il faudrait tester pour pour voir un petit peu le truc et ça peut être ça peut être
sympa on a un compère yoann dev qui a fait une vidéo assez récente sur le sujet où justement
il vient un peu crash tester ce système là ouais il a fait une vidéo bah c'est la dernière
vidéo une physique ou sur une physique donc il fait voir comment bah comment ça s'installe en fait
il survole un peu le truc il va pas trop profond dans les détails mais il faut il fait voir il
installe sur un cloud ensuite il fait voir comment dans docker en fait dans le docker file tu peux
importer en fait les les variables d'environnement et de physique et il fait voir aussi bah quand tu
change dans une physique tu vas modifier la valeur bah ça met automatiquement à jour la valeur aussi
dans le docker sans que tu a re toucher en fait le docker file donc ça c'est pas mal ok c'est pas
mal en fait je trouve pour ne serait-ce que cette partie là où tu vas mettre à jour la clé tu vas
redéployer t'as même pas un toucher tu vois le le le moins de refichiers pour que ça soit mis
à jour ça se met tout de suite à jour dans ton projet donc c'est pas mal non je suis j'ai regardé
la vidéo je trouve ça très intéressant j'ai jamais encore utilisé de secret manager mais je pense
que je vais peut-être m'y mettre dans pas longtemps peut-être pour tester nice tester ouais ouais
ouais bah je crois au bout d'un moment tu as commencé à accumuler pas mal de variables
de projet non mais c'est sûr c'est sûr c'est sûr non mais c'est évident c'est clair donc ouais
moi j'ai bien envie de tester nice bah tu nous diras il ya une autre solution aussi qui qui peut
être envisageable mais peut-être pour des tailles d'équipe un petit peu plus modérée on va dire c'est
un site un type qui s'appelle dot envo point d'attent tata ouais c'est dot envo point org où en
fait tout simplement le concept c'est le dropbox des variables d'environnement en clair en fait on
va synchroniser toutes les variables d'environnement entre les entre les devs donc par exemple on est
deux ou trois devs à utiliser sur le projet je vais inviter mes collègues sur ce projet sur
cette plateforme là et eux vont récupérer un token ce token va leur permettre en fait de synchroniser
toutes les variables d'environnement et donc ça ça peut être super utile parce que en fait on
vient introduire un tiers c'est vraiment le voilà on imagine le dropbox ou sur le cloud c'est un
service donc c'est payant mais je crois que c'est gratuit pour les trois premiers ouais les trois
premiers teammates donc les collègues jusqu'à trois on est limité sur toutes les sur toutes les
features mais après c'est quatre dollars par utilisateur et pour avoir toutes les toutes les
fonctionnalités mais déjà gratuit de choses mais ce qui permet déjà une exacte exactement tu peux
déjà déjà passer par là après ça peut être aussi une solution pour sécuriser toi tout seul
tes variables d'environnement voilà ok tu viens mettre un tiers dans la boucle évidemment si
tu n'as pas confiance en leur service n'y va pas là dessus on est d'accord sinon ça sert à rien mais
c'est plutôt évidemment ils ont une intégration parfaite avec aussi bien toutes les bases codes que
toutes les bases infras et ils ont une petite fonctionnalité que je trouve hyper sympa où en
fait dans ton c'est clock s'appelle autoclock ou un truc comme ça c'est en fait dans ton vs code ou
ton jetbrain ou ce que tu veux en fait quand tu arrives dans ton fichier point enf quand tu l'ouvres
en fait par défaut en fait toutes tes valeurs donc tu vois les clés et donc par exemple database
url égal donc tu vois la clé mais tu ne vois pas en fait la valeur il y a un énorme bandeau
noire dessus ce qui te permet en fait de toi tu dois cliquer sur un petit truc qui s'est vu qui est
vu qui est venu en fait tout en haut de la page pour dire affiché ce qui fait que je pense par
exemple au streamer ou youtubeur qui stream du code et qui potentiellement en fait leak des variables
d'environnement qui passe des heures à tout reconfigurer avec ce petit système là en fait déjà
il n'expose pas leur variable d'environnement après je pense pour des personnes qui travaillent un
peu à droite à gauche potentiellement vous travaillez dans un café ou dans ma je sais qu'on
est en train de devenir complètement parano quand on parle de sécurité mais on est dev donc à la fin
on finit par un autre par définition parce qu'on est dev mais voilà potentiellement tu travailles
dans un avion ou je sais pas quoi tu vois tu veux pas exposer tes variables d'environnement
potentiellement tu peux utiliser ça pour cacher tes variables d'environnement et tu cliques
dessus pour les afficher et tu cliques pour les masquer je trouve cette petite fonctionnalité
plutôt sympa c'est plutôt sympa c'est pas mal je vais laisser je pense celui là je vais
laisser d'a peut-être aujourd'hui allez go facile facile vas-y j'installe dans le vscode et je me
fais un compte et c'est super facile après il existe d'autres d'autres systèmes aussi qui s'appelle
n volt voilà on va avoir plusieurs plusieurs services qui vont faire à peu près la même chose donc
donc on a aussi dans les fonds histoire de clout de clout aussi des systèmes natifs aussi a w s gcp
ouais ouais alors par contre ils sont ils vont pas toujours gérer les teammates enfin les collègues
donc est ce que c'est plus complexe à mettre en place et donc le fait d'utiliser des des
des logiciels secret manager un intermédiaire en tout cas si il y a eu si il y a eu ce service qui
s'est développé c'est que justement les les providers natifs en fait ne répondaient pas à
toutes les demandes des entreprises et c'est pour ça qu'il y a des intermédiaires qui se sont
venus qui se sont créés qui ont répondu à ces besoins là parce que parce que les cloud natifs
ne le font pas toujours quoi et ça peut être super quoi et puis t'as qu'à voir la console d'a w s
quoi c'est non c'est un viol visuel le truc donc donc mais pour le coup en fait on voit quand même
une tendance on voit encore un blogueur là qui qui qui qui disait qu'il fallait arrêter avec les
variables d'environnement et qu'il fallait passer vraiment sur des sur des secrets manager quoi
au moins en tout cas gérer les gérer les fichiers secrets et les points en va avec avec un tiers
et éviter et arrêter de gérer ça à la mano à l'ancienne quoi tout simplement à l'ancienne
et d'accord voilà en tout cas il ya pas mal de solutions en plus il y a du gratuit il y a du
cfosti donc quand même pas mal de choix le d'autres un qui se met sur vs code je trouve ça pas mal
avec la version gratuite qui sera peut-être pas gratuit tout le temps mais en tout cas ça reste
toujours des sommes modiques vous même que tu vois ou même ou un passeword des choses comme ça
les gestions en mode passe c'est pas c'est pas hors de prix je crois que pour ton passe à l'année
si tu prends un truc à l'année ça te coûte 1 euro 99 par mois je crois enfin franchement c'est pas le
bout du monde quoi c'est un café quoi enfin un café pas à paris mais donc je veux dire c'est ça
coûte pas très cher et après en fait c'est juste une une habitude à prendre en fait voilà mais
après il ya toutes les les extensions dans les navigateurs dans les os dans le téléphone tout ça
donc voilà il ya pas de frein aujourd'hui qui fait tu vas pas utiliser un gestion en mode passe
il ya plus d'excuse les gars vous avez plus d'excuse vous n'avez plus d'excuse
ouais yes c'est clair parfait on en reste là merci patrick merci d'être resté jusqu'au bout de l'épisode
à plus ciao ciao merci à tous ciao retrouver double slash sur le plateforme de podcast préféré
et sur le site internet du podcast www.slash-podcast.fr sur le site où vous allez
retrouver tous les liens de l'épisode les références évoquées durant l'émission
Episode suivant:
Les infos glanées
DoubleSlashPodcast
Double Slash, un podcast sur le développement web. Retrouvez-nous régulièrement pour parler de sujets variés tels que la JAMStack, l’accessibilité, l’écoconception, React.js, Vue.js, Next.js, Nuxt.js, le CSS et des retours d’expériences sur des implémentations.
Tags
Card title
[{'term': 'Technology', 'label': None, 'scheme': None}, {'term': 'Technology', 'label': None, 'scheme': 'http://www.itunes.com/'}]
Go somewhere
Les news web dev pour octobre 2024