Pokaždé, když sdílíte Compose soubor, existují dva artefakty: ten, který jste napsali, a ten, který nástroj vykreslí po nahrazení proměnných. Druhý je často citlivější než první a právě ten lidé vloží do hlášení problému, aniž by ho přečetli. Kdo kontroluje jen zdrojový soubor, kontroluje špatný dokument.

Než rozhodnete, co odstranit, porovnejte, co může každá kopie obsahovat.

Vykreslený model je jiný dokument

Compose vyhodnotí proměnné prostředí, sloučí soubory s přepisy a vytvoří účinnou konfiguraci, kterou už čtenář nerozezná od ručně psaných hodnot. Odkaz, například název proměnné ve zdroji, se ve výstupu stane samotným tokenem účtu. Struktura, která dělá soubor užitečným pro diagnostiku, tuto transformaci přežije; přežije i vše, co v něm nikdy nemělo být.

Vykreslete soubor sami, než ho přiložíte, a berte tento výstup jako artefakt, který kontrolujete. Pokud ho nedokážete vykreslit, nemůžete vědět, co se chystáte zveřejnit.

Tajemství sedí na více místech než v poli klíče

Začněte tím zřejmým: soukromé klíče, předem sdílené klíče, tokeny, hesla a URL připojení, které obsahují přihlašovací údaje. Pak se podívejte na vše, na co soubor odkazuje, protože odkaz není redakce. Soubor prostředí připojený do služby, konfigurační soubor svázaný z hostitele, štítek nesoucí token a argument příkazu s heslem cestují s nasazením, i když YAML vypadá čistě. Klíč vložený do proměnné s uklidňujícím názvem je pořád klíč.

Cesty hostitele a názvy služeb prozrazují druhý druh informací. Název domovského adresáře, interní název hostitele nebo rozsah sítě mohou identifikovat osobu či organizaci, aniž by obsahovaly jediný údaj, a tento kontext stojí za odstranění ze stejného důvodu.

Deklarace tajemství není tajemství

Objekty tajemství v Compose oddělují deklaraci od materiálu: služba dostane cestu nebo cíl a obsah žije jinde. Ponechat deklaraci a nahradit materiál je obvykle správná výměna, protože recenzent musí vidět, že tajemství existuje a jak je připojeno. Přežít nesmí samotný obsah.

Štítky a komentáře si zaslouží stejné zacházení. Komentář, který říká, která cesta v trezoru drží produkční klíč, řekne útočníkovi, kam se podívat, i když žádný klíč neobsahuje.

Zachovejte tvar, aby soubor pořád diagnostikoval

Redakce, která odstraní síťový režim, verzi obrazu nebo nastavení schopností, vytvoří soubor, se kterým nikdo nemůže ladit. Nahraďte citlivé hodnoty a zachovejte vztahy: která služba co připojuje, do které sítě vstupuje, které zařízení potřebuje. To je část, kterou čtenář používá, aby vysvětlil chybějící trasu nebo nedostupné zařízení. Je to také verze, kterou kolega může porovnat se svým vlastním funkčním nasazením.

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

Nenasazujte redigovanou kopii, jako by byla funkčním originálem. Je to popis, a popis upravený tak, aby vypadal bezpečně, selže způsoby, které vypadají jako chyby konfigurace.

Pokud byl materiál vystaven, vyměňte ho

Odstranění přílohy neodstraní kopie, které už druzí vytvořili, a zrcadla a mezipaměti si drží svoje. Pro vše, co uniklo, použijte proces odvolání a výměny u vydavatele a potom nasazení aktualizujte. Na pořadí záleží, protože výměna nejdřív a odvolání potom nechává okno se dvěma platnými údaji.

Ve vláknech podpory začněte přesnou chybou, verzí obrazu, síťovým režimem a jediným nesekretním nastavením, na kterém záleží. Tahle kombinace vysvětlí chybějící zařízení nebo rozbitou trasu mnohem častěji než klíč.

Související články