Valahányszor megosztasz egy Compose-fájlt, két artefaktum létezik: az, amelyet írtál, és az, amelyet egy eszköz a változók behelyettesítése után renderel. A második gyakran érzékenyebb az elsőnél, és éppen ezt illesztik be az emberek olvasás nélkül egy hibajegybe. Ha csak a forrásfájlt nézed át, a rossz dokumentumot nézed át.

Hasonlítsd össze, mit tartalmazhat az egyes másolat, mielőtt eldöntöd, mit kell eltávolítani.

A renderelt modell egy másik dokumentum

A Compose feloldja a környezeti változókat, egyesíti a felülíró fájlokat, és olyan tényleges konfigurációt állít elő, amelyet az olvasó már nem tud megkülönböztetni a kézzel írt értékektől. Egy hivatkozás, például egy változónév a forrásban, a kimenetben magává a fióktokenné válik. A struktúra, amely hasznossá teszi a fájlt a diagnózis számára, túléli ezt az átalakítást; túlél mindent is, aminek soha nem lett volna szabad benne lennie.

Rendereld le a fájlt magad, mielőtt csatolod, és kezeld azt a kimenetet a vizsgált artefaktumként. Ha nem tudod renderelni, nem tudhatod, mit készülsz közzétenni.

A titkok több helyen ülnek, mint a kulcsmezőben

Kezdd a nyilvánvalóval: privát kulcsok, előre megosztott kulcsok, tokenek, jelszavak és olyan kapcsolati URL-ek, amelyek beágyazzák a hitelesítő adatokat. Aztán nézd meg mindazt, amire a fájl hivatkozik, mert a hivatkozás nem kitakarás. A szolgáltatásba mountolt környezeti fájl, a hosztról bekötött konfigurációs fájl, egy tokent hordozó címke és egy jelszót tartalmazó parancsargumentum mind együtt utazik a telepítéssel, akkor is, ha a YAML tisztának látszik. Egy nyugtató nevű változóba illesztett kulcs továbbra is kulcs.

A hostútvonalak és a szolgáltatásnevek egy második fajta információt szivárogtatnak. Egy otthoni könyvtárnév, egy belső hostnév vagy egy hálózati tartomány azonosíthat egy személyt vagy szervezetet anélkül, hogy egyetlen hitelesítő adatot tartalmazna, és ez a kontextus ugyanezen okból eltávolításra érdemes.

A titok deklarációja nem maga a titok

A Compose titokobjektumai elválasztják a deklarációt az anyagtól: a szolgáltatás egy útvonalat vagy célpontot kap, a tartalom pedig máshol él. A deklaráció megtartása az anyag cseréje mellett általában a helyes csere, mert a bírálónak látnia kell, hogy létezik egy titok, és hogyan van mountolva. Ami nem maradhat meg, az maga a tartalom.

A címkék és a megjegyzések ugyanezt a bánásmódot érdemlik. Egy megjegyzés, amely megmondja, melyik széfútvonal tartja az éles kulcsot, megmondja a támadónak, hová nézzen, akkor is, ha nem tartalmaz kulcsot.

Tartsd meg a formát, hogy a fájl még diagnosztizálhasson

Egy kitakarás, amely eltávolítja a hálózati módot, az image verzióját vagy a képességbeállításokat, olyan fájlt eredményez, amellyel senki nem tud hibakeresést végezni. Cseréld ki az érzékeny értékeket, és tartsd meg a kapcsolatokat: melyik szolgáltatás mit mountol, melyik hálózathoz csatlakozik, melyik eszközre van szüksége. Ez az a rész, amelyet az olvasó arra használ, hogy megmagyarázzon egy hiányzó útvonalat vagy egy elérhetetlen eszközt. Ez az a verzió is, amelyet egy kolléga össze tud hasonlítani a saját működő telepítésével.

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

Ne telepítsd a kitakart másolatot úgy, mintha a működő eredeti lenne. Ez egy leírás, és a biztonságosnak látszás érdekében szerkesztett leírás olyan módokon fog meghibásodni, amelyek konfigurációs hibáknak tűnnek.

Ha az anyag kiszivárgott, cseréld ki

A melléklet eltávolítása nem távolítja el a mások által már elkészített másolatokat, a tükrök és a gyorsítótárak pedig a sajátjaikat tartják. Használd a kibocsátó visszavonási és cserélési folyamatát mindenre, ami kiszivárgott, majd frissítsd a telepítést. A sorrend számít, mert az előbb cserélni és utóbb visszavonni egy két érvényes hitelesítő adattal rendelkező ablakot hagy.

A támogatási szálakban kezdd a pontos hibával, az image verziójával, a hálózati móddal és azzal az egy nem titkos beállítással, amely számít. Ez a kombináció sokkal gyakrabban magyaráz meg egy hiányzó eszközt vagy egy törött útvonalat, mint a kulcs.

Kapcsolódó cikkek