Delar du ei VPN Compose-fil? Fjern hemmeleikane frå den renderte kopien
Ein privat nøkkel kan liggje i YAML-en, i ein miljøverdi eller i det utløyste utdataet som ingen har sett på. Sjekk kopien du faktisk legg ved.
Kvar gong du delar ei Compose-fil, finst det to artefaktar: den du skreiv, og den eit verktøy renderer etter at variablane er bytte ut. Den andre er ofte meir følsam enn den første, og det er den folk limer inn i ein feilrapport utan å lese han. Viss du berre går gjennom kjeldefila, går du gjennom feil dokument.
Samanlikn kva kvar kopi kan innehalde før du avgjer kva som skal fjernast.
Den renderte modellen er eit anna dokument
Compose løyser opp miljøvariablar, slår saman overstyringsfiler og produserer ein effektiv konfigurasjon som ein lesar ikkje lenger kan skilje frå handskrivne verdiar. Ei tilvising som eit variabelnamn i kjelda blir sjølve kontotokenet i utdataet. Strukturen som gjer fila nyttig for diagnostikk overlever den transformasjonen; det gjer også alt som aldri burde ha vore i henne.
Render fila sjølv før du legg henne ved, og handsam det utdataet som artefakten du går gjennom. Viss du ikkje kan rendre henne, kan du ikkje vite kva du er i ferd med å publisere.
Hemmeleikar sit på fleire stader enn nøkkelfeltet
Byrja med det openberre: private nøklar, førehandsdelinga nøklar, token, passord og tilkoplings-URL-ar som byggjer inn påloggingsinformasjon. Sjå deretter på alt fila peikar på, fordi ei tilvising ikkje er ein fjerning. Ei miljøfil som er montert i tenesta, ei konfigurasjonsfil som er bunden frå verten, ei etikett som ber eit token, og eit kommandoparameter som inneheld eit passord reiser alle med utrullinga sjølv når YAML-en ser rein ut. Ein nøkkel som er lima inn i ein variabel med eit beroligande namn, er framleis ein nøkkel.
Vertbaner og tenestenamn lekk ein annan type informasjon. Eit heimekatalognamn, eit internt vertsnamn eller eit nettverksområde kan identifisere ein person eller ein organisasjon utan å innehalde ein einaste påloggingsinformasjon, og den konteksten er verdt å fjerne av same grunn.
Ein hemmeleikserklæring er ikkje hemmeleiken
Compose-hemmeleiksobjekt skil erklæringa frå materialet: tenesta får ei bane eller eit mål, og innhaldet bur ein annan stad. Å behalde erklæringa medan materialet blir bytt ut er vanlegvis den rette bytehandelen, fordi gjennomlesaren må sjå at ein hemmeleik finst og korleis han er montert. Det som ikkje må overleve, er innhaldet sjølv.
Etikettar og kommentarar fortener same handsaming. Ein kommentar som seier kva kvelvbane som held produksjonsnøkkelen, fortel ein angripar kvar dei skal sjå, sjølv om han ikkje inneheld ein nøkkel.
Behald forma slik at fila framleis kan diagnostisere
Ein fjerning som tek bort nettverksmodusen, image-versjonen eller kapasitetsinnstillingane, produserer ei fil som ingen kan feilsøkje med. Byt ut dei følsame verdiane og behald relasjonane: kva teneste monterer kva, kva nettverk ho koplar seg til, kva eining ho treng. Det er den delen ein lesar brukar for å forklare ei manglande rute eller ei utilgjengeleg eining. Det er også versjonen ein kollega kan samanlikne med si eiga fungerande utrulling.
docker compose -f compose.yaml config > rendered.yaml
grep -nE 'PRIVATE_KEY|PASSWORD|TOKEN|PSK|PrivateKey|passphrase' rendered.yaml
wc -l rendered.yaml
Ikkje rull ut den redigerte kopien som om han var det fungerande originaldokumentet. Det er ei skildring, og ei skildring som er redigert for å sjå trygg ut, vil feile på måtar som liknar konfigurasjonsfeil.
Viss materialet har blitt eksponert, byt det ut
Å fjerne vedlegget fjernar ikkje kopiane andre allereie har laga, og speglar og cachar held sine eigne. Bruk tilbakekallings- og erstatningsprosessen til utgivaren for alt som lek, og oppdater deretter utrullinga. Rekkjefølgja betyr noko, fordi erstatning først og tilbakekalling seinare lèt att eit vindauge med to gyldige påloggingsdata.
I støttetrådar bør du byrje med den nøyaktige feilen, image-versjonen, nettverksmodusen og den eine ikkje-hemmelege innstillinga som betyr noko. Den kombinasjonen forklarer ei manglande eining eller ei broten rute mykje oftare enn nøkkelen.