Ochrana tajných kódů v Azure Pipelines

Tento článek obsahuje osvědčené postupy pro ochranu tajných kódů ve službě Azure Pipelines. Tajný kód je vše, co chcete pevně řídit přístup, jako jsou klíče rozhraní API, hesla, certifikáty nebo kryptografické klíče.

Azure Pipelines negeneruje hodnoty tajných kódů. K ukládání citlivých dat, jako je klíč rozhraní API, ale možná budete muset do kanálu přidat tajný kód. Další informace o nastavení proměnných tajných kódů najdete v tématu Nastavení proměnných tajných kódů.

Nepoužívejte tajné kódy, pokud je k dispozici jiná metoda

Nejlepší metodou ochrany tajného kódu není mít tajný kód na prvním místě. Zkontrolujte, jestli kanál může použít jinou metodu než použití tajného kódu k provedení úlohy.

Použití tajných proměnných

Citlivé hodnoty by nikdy neměly být uloženy jako prostý text v souboru .yml Azure Pipelines.

Tajné proměnné se dají použít pro soukromé informace, jako jsou hesla, ID a další identifikační data, která byste nechtěli vystavit v kanálu. Doporučený způsob, jak nastavit tajné proměnné , je služba Azure Key Vault. Můžete také nastavit tajné proměnné v uživatelském rozhraní nebo ve skupině proměnných. Použití příkazu protokolování k nastavení tajné proměnné se nedoporučuje. Když nastavíte tajný kód pomocí příkazu protokolování, bude moct tajný kód zobrazit i každý, kdo má přístup k vašemu kanálu.

Tajné proměnné jsou zašifrované a dají se použít v kanálech bez vystavení jejich hodnot. I když jejich hodnoty nejsou vystavené, nikdy neodhalujte tajné kódy jako výstup a nepředávejte tajné kódy na příkazovém řádku. Místo toho doporučujeme namapovat tajné kódy na proměnné prostředí.

Při vytváření tajného kódu postupujte podle pokynů pro pojmenování proměnných a ujistěte se, že název tajného kódu nezveřejňuje citlivé informace.

Omezení přístupu k tajným proměnným

Pokud chcete omezit přístup k tajným kódům v Azure DevOps, můžete:

  • Ukládejte tajné kódy ve službě Azure Key Vault. Pomocí služby Azure Key Vault pak můžete pomocí modelu řízení přístupu na základě role v Azure omezit přístup k tajnému kódu nebo skupině tajných kódů.
  • Nastavte tajné proměnné v uživatelském rozhraní pro kanál. Tajné proměnné nastavené v uživatelském rozhraní nastavení kanálu pro kanál jsou vymezeny na kanál, ve kterém jsou nastavené. Můžete tedy mít tajné kódy, které jsou viditelné jenom uživatelům s přístupem k danému kanálu.
  • Nastavte tajné kódy ve skupině proměnných. Skupiny proměnných se řídí modelem zabezpečení knihovny. Můžete určit, kdo může definovat nové položky v knihovně a kdo může použít existující položku.

Nezapisovat tajné kódy do protokolů

Azure Pipelines se pokouší vyčisit tajné kódy z protokolů, kdykoli je to možné. Toto filtrování je na základě nejlepšího úsilí a nemůže zachytit všechny způsoby, jak může dojít k úniku tajných kódů. Vyhněte se opakování tajných kódů v konzole, jejich použití v parametrech příkazového řádku nebo jejich protokolování do souborů. Například některé příkazy Azure CLI vypíše informace o výstupu, které musíte chránit. Pokud voláte Azure CLI z kanálu, použijte výstupní formát None a pokud potřebujete načíst tajný kód z volání Azure CLI, použijte žádný výstupní formát a načtěte informace o zabezpečení do tajné proměnné.

Nepoužívejte strukturovaná data jako tajné kódy.

Strukturovaná data můžou způsobit selhání tajného redakce v protokolech, protože redakce do značné míry spoléhá na nalezení přesné shody pro konkrétní hodnotu tajného kódu. Nepoužívejte například objekt blob JSON, XML nebo YAML (nebo podobný) k zapouzdření tajné hodnoty, včetně řídicích znaků, jako je návrat na začátek řádku (\r) a odřádkování (\n), protože tím výrazně snížíte pravděpodobnost, že tajné kódy jsou správně redakce upraveny. Místo toho vytvořte jednotlivé tajné kódy pro každou citlivou hodnotu.

Auditování způsobu zpracování tajných kódů

Auditujte způsob použití tajných kódů, abyste zajistili, že se zpracovávají podle očekávání. Můžete to provést tak, že zkontrolujete zdrojový kód úložiště, které je hostitelem kanálu, a zkontrolujete všechny úlohy použité v kanálu. Zkontrolujte například, že se neodesílají do nezamýšlených hostitelů nebo že se explicitně tisknou do výstupu protokolu.

Prohlédněte si protokoly spuštění kanálu po otestování platných nebo neplatných vstupů a zkontrolujte, jestli jsou tajné kódy správně upraveny nebo se nezobrazují. Není vždy zřejmé, jak příkaz nebo nástroj, které vyvoláváte, generují chyby a tajné kódy se můžou později skončit v protokolech chyb. Azure Pipelines se pokouší vyčisit tajné kódy z protokolů, kdykoli je to možné. Toto filtrování je na základě nejlepšího úsilí a nemůže zachytit všechny způsoby, jak může dojít k úniku tajných kódů. V důsledku toho je vhodné ručně zkontrolovat protokoly kanálu po otestování platných a neplatných vstupů.

Auditování a obměna tajných kódů

Pravidelně kontrolujte zaregistrované tajné kódy používané vašimi kanály, abyste ověřili, že jsou stále potřeba, a odeberte ty, které už nepotřebujete.

Pravidelně obměňujte tajné kódy, abyste zkrátili časový interval, během kterého je ohrožený tajný kód platný.

Mezi typy tajných kódů používaných kanály patří:

Další kroky