Iga kord, kui jagad Compose-faili, on olemas kaks artefakti: see, mille sa kirjutasid, ja see, mille tööriist pärast muutujate asendamist renderdab. Teine on sageli tundlikum kui esimene, ja just selle kleebivad inimesed probleemiraportisse ilma seda lugemata. Kui vaatad üle ainult lähtefaili, vaatad üle vale dokumendi.

Enne kui otsustad, mida eemaldada, võrdle, mida kumbki koopia sisaldada võib.

Renderdatud mudel on teine dokument

Compose lahendab keskkonnamuutujad, ühendab alistusfailid ja loob toimiva konfiguratsiooni, mida lugeja ei suuda enam eristada käsitsi kirjutatud väärtustest. Viide, näiteks muutuja nimi lähtekoodis, muutub väljundis konto märgiks endaks. Struktuur, mis teeb faili diagnostikaks kasulikuks, jääb selle teisenduse järel alles; alles jääb ka kõik, mida seal kunagi olema ei oleks pidanud.

Renderda fail ise enne selle manustamist ja käsitle seda väljundit artefaktina, mida üle vaatad. Kui sa ei suuda seda renderdada, ei saa sa teada, mida avaldad.

Saladused on rohkemates kohtades kui võtmeväli

Alusta ilmsest: privaatvõtmed, eelnevalt jagatud võtmed, märgid, paroolid ja ühenduse URL-id, mis sisaldavad volitusi. Seejärel vaata kõike, millele fail viitab, sest viide ei ole redigeerimine. Teenusesse monteeritud keskkonnafail, hostist seotud konfiguratsioonifail, märki kandev silt ja parooli sisaldav käsureaargument liiguvad kõik juurutamisega kaasa ka siis, kui YAML paistab puhas. Rahuliku nimega muutujasse kleebitud võti on ikka võti.

Hosti teed ja teenuse nimed lekitavad teist liiki teavet. Kodukataloogi nimi, sisemine hostinimi või võrguvahemik võivad tuvastada isiku või organisatsiooni ilma ühtegi volitust sisaldamata, ja see kontekst tasub samal põhjusel eemaldada.

Saladuse deklaratsioon ei ole saladus

Compose’i saladusobjektid eraldavad deklaratsiooni materjalist: teenus saab tee või sihtmärgi ja sisu elab mujal. Deklaratsiooni hoidmine materjali asendamise ajal on tavaliselt õige vahetus, sest ülevaataja peab nägema, et saladus on olemas ja kuidas see monteeritud on. Alles ei tohi jääda sisu ise.

Sildid ja kommentaarid väärivad sama kohtlemist. Kommentaar, mis ütleb, milline hoidla tee hoiab tootmisvõtit, ütleb ründajale, kuhu vaadata, isegi kui see ei sisalda ühtegi võtit.

Hoia vorm, et fail ikka diagnoosiks

Redigeerimine, mis eemaldab võrgurežiimi, pildiversiooni või võimekuse seaded, loob faili, millega keegi ei saa siluda. Asenda tundlikud väärtused ja hoia seosed: milline teenus mida monteerib, millise võrguga liitub, millist seadet vajab. See on osa, mida lugeja kasutab, et selgitada puuduvat marsruuti või kättesaamatut seadet. See on ka versioon, mida kolleeg saab võrrelda omaenda töötava juurutusega.

docker compose -f compose.yaml config > rendered.yaml
grep -nE 'PRIVATE_KEY|PASSWORD|TOKEN|PSK|PrivateKey|passphrase' rendered.yaml
wc -l rendered.yaml

Ära juuruta redigeeritud koopiat nii, nagu oleks see töötav originaal. See on kirjeldus, ja turvalisena näimiseks muudetud kirjeldus ebaõnnestub viisil, mis näeb välja nagu konfiguratsioonivead.

Kui materjal paljastus, asenda see

Manuse eemaldamine ei eemalda koopiaid, mille teised on juba teinud, ja peeglid ning vahemälud hoiavad omi. Kasuta väljaandja tühistamise ja asendamise protsessi kõige lekkinud materjali puhul, seejärel uuenda juurutust. Järjekord on oluline, sest esmalt asendamine ja hiljem tühistamine jätab akna kahe kehtiva volitusega.

Tugiteemades alusta täpse veaga, pildiversiooniga, võrgurežiimiga ja selle ühe mitte-saladusliku seadega, mis loeb. See kombinatsioon selgitab puuduvat seadet või katkist marsruuti palju sagedamini kui võti.

Seotud artiklid