Delite Compose datoteko za VPN? Odstranite skrivnosti iz upodobljene kopije
Zasebni ključ je lahko v YAML, v okoljski vrednosti ali v razrešenem izhodu, ki si ga ni nihče ogledal. Preverite kopijo, ki jo resnično prilagate.
Vsakič, ko delite Compose datoteko, obstajata dva artefakta: tisti, ki ste ga napisali, in tisti, ki ga orodje upodobi po zamenjavi spremenljivk. Drugi je pogosto občutljivejši od prvega, in prav tega ljudje prilepijo v poročilo o težavi, ne da bi ga prebrali. Če pregledate samo izvorno datoteko, pregledate napačen dokument.
Preden se odločite, kaj odstraniti, primerjajte, kaj lahko vsebuje vsaka kopija.
Upodobljeni model je drug dokument
Compose razreši okoljske spremenljivke, združi datoteke s prepisi in ustvari učinkovito konfiguracijo, ki je bralec ne more več ločiti od ročno napisanih vrednosti. Sklicevanje, na primer ime spremenljivke v viru, v izhodu postane sam žeton računa. Struktura, ki datoteko naredi uporabno za diagnostiko, preživi to pretvorbo; preživi tudi vse, česar v njej ne bi smelo biti nikoli.
Upodobite datoteko sami, preden jo priložite, in ta izhod obravnavajte kot artefakt, ki ga pregledujete. Če je ne morete upodobiti, ne morete vedeti, kaj nameravate objaviti.
Skrivnosti sedijo na več mestih kot v polju za ključ
Začnite z očitnim: zasebni ključi, vnaprej deljeni ključi, žetoni, gesla in povezovalni URL-ji, ki vsebujejo poverilnice. Nato poglejte vse, na kar datoteka kaže, ker sklicevanje ni odstranitev. Okoljska datoteka, pripeta v storitev, konfiguracijska datoteka, vezana z gostitelja, oznaka, ki nosi žeton, in argument ukaza z geslom vsi potujejo z uvedbo tudi takrat, ko je YAML videti čist. Ključ, prilepljen v spremenljivko s pomirjujočim imenom, je še vedno ključ.
Poti gostitelja in imena storitev razkrivajo drugo vrsto informacij. Ime domače mape, interno ime gostitelja ali omrežni razpon lahko prepoznajo osebo ali organizacijo brez ene same poverilnice, in ta kontekst je vreden odstranitve iz istega razloga.
Izjava o skrivnosti ni skrivnost
Predmeti skrivnosti v Compose ločijo izjavo od gradiva: storitev dobi pot ali cilj, vsebina pa živi drugje. Obdržati izjavo ob zamenjavi gradiva je običajno prava izmenjava, ker mora pregledovalec videti, da skrivnost obstaja in kako je pripeta. Kar ne sme preživeti, je vsebina sama.
Oznake in komentarji si zaslužijo enako obravnavo. Komentar, ki pove, katera pot v trezorju hrani produkcijski ključ, pove napadalcu, kam naj pogleda, tudi če ne vsebuje ključa.
Ohranite obliko, da bo datoteka še vedno diagnosticirala
Odstranitev, ki izbriše omrežni način, različico slike ali nastavitve zmogljivosti, ustvari datoteko, s katero nihče ne more razhroščevati. Zamenjajte občutljive vrednosti in ohranite razmerja: katera storitev kaj pripne, kateremu omrežju se pridruži, katero napravo potrebuje. To je del, ki ga bralec uporablja za razlago manjkajoče poti ali nedosegljive naprave. To je tudi različica, ki jo lahko sodelavec primerja s svojo delujočo uvedbo.
docker compose -f compose.yaml config > rendered.yaml
grep -nE 'PRIVATE_KEY|PASSWORD|TOKEN|PSK|PrivateKey|passphrase' rendered.yaml
wc -l rendered.yaml
Ne uvajajte redigirane kopije, kot da je delujoči izvirnik. To je opis, in opis, urejen tako, da je videti varen, bo spodletel na načine, ki so videti kot konfiguracijske napake.
Če je bilo gradivo izpostavljeno, ga zamenjajte
Odstranitev priloge ne odstrani kopij, ki so jih drugi že naredili, ogledala in predpomnilniki pa hranijo svoje. Za vse, kar je uhajalo, uporabite postopek preklica in zamenjave pri izdajatelju, nato posodobite uvedbo. Vrstni red je pomemben, ker zamenjava najprej in preklic pozneje pustita okno z dvema veljavnima poverilnicama.
V nitih podpore začnite s točno napako, različico slike, omrežnim načinom in eno ne-skrivno nastavitvijo, ki je pomembna. Ta kombinacija pojasni manjkajočo napravo ali zlomljeno pot veliko pogosteje kot ključ.