Tuwing nagbabahagi ka ng Compose file, may dalawang artefakto: ang isinulat mo at ang ini-render ng tool pagkatapos palitan ang mga variable. Ang pangalawa ay kadalasang mas sensitibo kaysa sa una, at iyon ang idinidikit ng mga tao sa ulat ng problema nang hindi binabasa. Kung ang titingnan mo lang ay ang source file, mali ang dokumentong sinusuri mo.

Ihambing kung ano ang maaaring taglayin ng bawat kopya bago magpasya kung ano ang aalisin.

Ibang dokumento ang na-render na modelo

Inireresolba ng Compose ang mga environment variable, pinagsasama ang mga override file at gumagawa ng epektibong configuration na hindi na maikukumpara ng mambabasa sa mga value na isinulat sa kamay. Ang isang reference tulad ng pangalan ng variable sa source ay nagiging token ng account mismo sa output. Nananatili ang istrukturang nagpapaging-kapaki-pakinabang sa file para sa diagnosis; nananatili rin ang lahat ng hindi dapat naroon.

I-render mo mismo ang file bago ito ikabit, at ituring ang output na iyon na artefaktong sinusuri mo. Kung hindi mo ito mai-render, hindi mo malalaman ang ipapalathala mo.

Nasa mas maraming lugar ang mga lihim kaysa sa field ng key

Magsimula sa malinaw: mga pribadong key, mga key na ibinahaging dati, mga token, mga password at mga connection URL na may nakapaloob na credential. Pagkatapos tingnan ang lahat ng itinuturo ng file, dahil ang reference ay hindi pagbura. Ang env file na naka-mount sa serbisyo, ang configuration file na naka-bind mula sa host, ang label na may token at ang command argument na may password ay lahat kasama ng deployment kahit mukhang malinis ang YAML. Ang key na idinikit sa variable na may nakapapanatag na pangalan ay key pa rin.

Ang mga host path at pangalan ng serbisyo ay naglalabas ng pangalawang uri ng impormasyon. Ang pangalan ng home directory, panloob na hostname o saklaw ng network ay maaaring tumukoy sa isang tao o organisasyon nang walang kahit isang credential, at ang kontekstong iyon ay dapat alisin sa parehong dahilan.

Ang deklarasyon ng lihim ay hindi ang lihim

Ang mga secret object ng Compose ay naghihiwalay ng deklarasyon sa materyal: ang serbisyo ay tumatanggap ng path o target, at ang nilalaman ay naninirahan sa ibang lugar. Ang panatilihin ang deklarasyon habang pinapalitan ang materyal ay karaniwang tamang palitan, dahil kailangang makita ng tagasuri na may lihim at kung paano ito naka-mount. Ang hindi dapat manatili ay ang nilalaman mismo.

Ang mga label at komento ay karapat-dapat sa parehong pagtrato. Ang komentong nagsasabi kung aling vault path ang may production key ay nagsasabi sa attacker kung saan titingin kahit walang key.

Panatilihin ang hugis upang makapag-diagnose pa rin ang file

Ang pagbura na nag-aalis ng network mode, bersyon ng image o mga setting ng capability ay gumagawa ng file na walang makapag-debug. Palitan ang mga sensitibong value at panatilihin ang mga relasyon: aling serbisyo ang nag-mount ng ano, sa aling network ito sumasali, aling device ang kailangan nito. Ito ang bahaging ginagamit ng mambabasa upang ipaliwanag ang nawawalang ruta o hindi magagamit na device. Ito rin ang bersyong maihahambing ng kasamahan sa sarili niyang gumaganang deployment.

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

Huwag i-deploy ang na-redact na kopya na parang ito ang gumaganang orihinal. Ito ay paglalarawan, at ang paglalarawang inedit upang magmukhang ligtas ay mabibigo sa mga paraang mukhang bug sa configuration.

Kung naisiwalat ang materyal, palitan ito

Ang pag-alis ng attachment ay hindi nag-aalis ng mga kopyang nagawa na ng iba, at ang mga mirror at cache ay may sariling kopya. Gamitin ang proseso ng pagbawi at pagpalit ng issuer para sa lahat ng tumagas, pagkatapos i-update ang deployment. Mahalaga ang pagkakasunod-sunod, dahil ang palitan muna at bawiin mamaya ay nag-iiwan ng bintanang may dalawang valid na credential.

Sa mga thread ng suporta, magsimula sa eksaktong error, bersyon ng image, network mode at ang isang di-lihim na setting na mahalaga. Ang kombinasyong iyon ay nagpapaliwanag ng nawawalang device o sirang ruta nang mas madalas kaysa sa key.

Kaugnay na mga artikulo