Zdieľate Compose súbor pre VPN? Odstráňte tajomstvá z vyrenderovanej kópie
Súkromný kľúč môže byť v YAML, v hodnote prostredia alebo vo vyhodnotenom výstupe, na ktorý sa nikto nepozrel. Skontrolujte kópiu, ktorú naozaj prikladáte.
Zakaždým, keď zdieľate Compose súbor, existujú dva artefakty: ten, ktorý ste napísali, a ten, ktorý nástroj vyrenderuje po nahradení premenných. Druhý je často citlivejší ako prvý, a práve ten ľudia vložia do hlásenia problému bez prečítania. Ak kontrolujete iba zdrojový súbor, kontrolujete nesprávny dokument.
Než sa rozhodnete, čo odstrániť, porovnajte, čo môže obsahovať každá kópia.
Vyrenderovaný model je iný dokument
Compose vyhodnotí premenné prostredia, zlúči prepisové súbory a vytvorí účinnú konfiguráciu, ktorú už čitateľ nedokáže odlíšiť od ručne napísaných hodnôt. Odkaz, napríklad názov premennej v zdroji, sa vo výstupe stane samotným tokenom účtu. Štruktúra, ktorá robí súbor užitočným pre diagnostiku, túto transformáciu prežije; prežije aj všetko, čo v ňom nikdy nemalo byť.
Vyrenderujte súbor sami, než ho priložíte, a berte ten výstup ako artefakt, ktorý kontrolujete. Ak ho nedokážete vyrenderovať, nemôžete vedieť, čo sa chystáte zverejniť.
Tajomstvá sedia na viacerých miestach než v poli kľúča
Začnite tým zjavným: súkromné kľúče, vopred zdieľané kľúče, tokeny, heslá a URL pripojenia, ktoré obsahujú prihlasovacie údaje. Potom sa pozrite na všetko, na čo súbor odkazuje, pretože odkaz nie je redakcia. Súbor prostredia pripojený do služby, konfiguračný súbor zviazaný z hostiteľa, štítok nesúci token a argument príkazu s heslom cestujú všetky s nasadením, aj keď YAML vyzerá čisto. Kľúč vložený do premennej s upokojujúcim názvom je stále kľúč.
Cesty hostiteľa a názvy služieb prezrádzajú druhý druh informácií. Názov domovského adresára, interný názov hostiteľa alebo rozsah siete môžu identifikovať osobu či organizáciu bez jediného prihlasovacieho údaja, a ten kontext stojí za odstránenie z rovnakého dôvodu.
Deklarácia tajomstva nie je tajomstvom
Objekty tajomstiev v Compose oddeľujú deklaráciu od materiálu: služba dostane cestu alebo cieľ a obsah žije inde. Ponechať deklaráciu pri nahradení materiálu je zvyčajne správna výmena, pretože recenzent musí vidieť, že tajomstvo existuje a ako je pripojené. Prežiť nesmie samotný obsah.
Štítky a komentáre si zaslúžia rovnaké zaobchádzanie. Komentár, ktorý hovorí, ktorá cesta v trezore drží produkčný kľúč, povie útočníkovi, kam sa pozrieť, aj keď neobsahuje žiadny kľúč.
Zachovajte tvar, aby súbor stále diagnostikoval
Redakcia, ktorá odstráni sieťový režim, verziu obrazu alebo nastavenia schopností, vytvorí súbor, s ktorým nikto nedokáže ladiť. Nahraďte citlivé hodnoty a zachovajte vzťahy: ktorá služba čo pripája, do ktorej siete vstupuje, ktoré zariadenie potrebuje. To je časť, ktorú čitateľ používa na to, aby vysvetlil chýbajúcu trasu alebo nedostupné zariadenie. Je to aj verzia, ktorú kolega môže porovnať so svojím vlastným funkčným nasadením.
docker compose -f compose.yaml config > rendered.yaml
grep -nE 'PRIVATE_KEY|PASSWORD|TOKEN|PSK|PrivateKey|passphrase' rendered.yaml
wc -l rendered.yaml
Nenasadzujte redigovanú kópiu tak, ako keby bola funkčným originálom. Je to opis, a opis upravený tak, aby vyzeral bezpečne, zlyhá spôsobmi, ktoré vyzerajú ako chyby konfigurácie.
Ak bol materiál vystavený, vymeňte ho
Odstránenie prílohy neodstráni kópie, ktoré už iní vytvorili, a zrkadlá a vyrovnávacie pamäte si držia svoje. Pre všetko, čo uniklo, použite proces odvolania a výmeny u vydavateľa a potom aktualizujte nasadenie. Na poradí záleží, pretože výmena najprv a odvolanie potom necháva okno s dvoma platnými prihlasovacími údajmi.
Vo vláknach podpory začnite presnou chybou, verziou obrazu, sieťovým režimom a jediným nie-tajomným nastavením, na ktorom záleží. Táto kombinácia vysvetlí chýbajúce zariadenie alebo rozbitú trasu oveľa častejšie ako kľúč.