Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro toto doporučení kontrolního seznamu zabezpečení pro Azure Well-Architected Framework:
| SE:09 | Chraňte tajné kódy aplikací posílením jejich úložiště a omezením přístupu a manipulace a auditováním těchto akcí. Spusťte spolehlivý a pravidelný proces obměny, který může upravovat rotace během mimořádných situací. |
|---|
Tato příručka popisuje doporučení pro zabezpečení citlivých informací v aplikacích. Správná správa tajných kódů je zásadní pro zachování zabezpečení a integrity aplikací, úloh a přidružených dat. Nesprávné zpracování tajných kódů může vést k porušení zabezpečení dat, přerušení služeb, porušení právních předpisů a dalším problémům.
Přihlašovací údaje, jako jsou klíče rozhraní API, tokeny OAuth (Open Authorization) a klíče SSH (Secure Shell), jsou tajné kódy. Některé přihlašovací údaje, jako jsou tokeny OAuth na straně klienta, je možné dynamicky vytvářet za běhu. Dynamické tajné kódy je stále potřeba chránit i přes jejich dočasnou povahu. Neověřovací informace, jako jsou certifikáty a klíče digitálního podpisu, mohou být také citlivé. Požadavky na dodržování předpisů můžou způsobit, že nastavení konfigurace, která se obvykle nepovažují za tajné kódy aplikace, se považují za tajné kódy aplikace.
Terminology
| Termín | Definice |
|---|---|
| Certifikáty | Digitální soubory, které obsahují veřejné klíče pro šifrování nebo dešifrování |
| Credentials | Informace, které slouží k ověření identity vydavatele nebo příjemce v komunikačním kanálu. |
| Kontrola přihlašovacích údajů | Proces ověřování zdrojového kódu, aby se zajistilo, že tajné kódy nejsou zahrnuté. |
| Encryption | Proces, podle kterého jsou data nečitelná a uzamčená tajným kódem. |
| Key | Tajný kód, který slouží k uzamčení nebo odemknutí šifrovaných dat. |
| Přístup s nejnižšími oprávněními | Princip nulové důvěryhodnosti, jehož cílem je minimalizovat sadu oprávnění k dokončení funkce úlohy. |
| Spravovaná identita | Identita, která je přiřazená k prostředkům a spravuje ji Azure. |
| Neutajené | Informace, které neohrožují bezpečnostní profil úlohy, pokud dojde k úniku. |
| Rotace | Proces pravidelné aktualizace tajných kódů tak, aby v případě ohrožení zabezpečení byly k dispozici pouze po omezenou dobu. |
| Tajný | Důvěrná komponenta systému, která usnadňuje komunikaci mezi součástmi úloh. Pokud dojde k úniku, můžou tajné kódy způsobit porušení zabezpečení. |
| X.509 | Standard, který definuje formát certifikátů veřejného klíče. |
Důležité
Nezacházejte s nesekrety jako s tajnými kódy. Tajnosti vyžadují provozní důslednost, která není nutná pro běžné informace a může vést k dodatečným nákladům.
Příkladem nesekretů jsou nastavení konfigurace aplikace, jako jsou adresy URL pro rozhraní API, která aplikace používá. Tyto informace by neměly být uloženy s kódem aplikace nebo tajnými kódy aplikace. Zvažte použití vyhrazeného systému pro správu konfigurace, jako je Azure App Configuration, ke správě těchto nastavení. Další informace najdete v tématu Co je Azure App Configuration?
Strategie správy tajných kódů by měla co nejvíce minimalizovat tajné kódy a integrovat je do prostředí pomocí funkcí platformy. Pokud například pro aplikaci používáte spravovanou identitu, nejsou informace o přístupu vložené do připojovacích řetězců a je bezpečné je uložit do konfiguračního souboru. Před uložením a správou tajných kódů zvažte následující oblasti zájmu:
Vytvořené tajné kódy by se měly uchovávat v zabezpečeném úložišti s přísnými řízeními přístupu.
Rotace tajných klíčů je proaktivní operace, zatímco odvolání je reaktivní.
K tajným kódům by měly mít přístup jenom důvěryhodné identity.
Měli byste udržovat auditní stopu pro kontrolu a ověření přístupu k tajemstvím.
Vytvořte strategii týkající se těchto bodů, abyste zabránili krádeži identity, vyhnuli se repudici a minimalizovali nepotřebné vystavení informacím.
Správa tajemství zatížení
Pokud je to možné, vyhněte se vytváření tajných kódů. Najděte způsoby , jak delegovat odpovědnost na platformu. K zpracování přihlašovacích údajů použijte například předdefinované spravované identity platformy. Méně tajných kódů vede ke snížení plochy a kratšímu času stráveného správou tajných kódů.
Doporučujeme, aby klíče měly tři různé role: uživatel, správce a auditor. Rozdíl rolí pomáhá zajistit, aby k tajným kódům měly přístup pouze důvěryhodné identity s odpovídající úrovní oprávnění. Informujte vývojáře, správce a další relevantní pracovníky o důležitosti osvědčených postupů správy tajných kódů a zabezpečení.
Předsdílené klíče
Přístup můžete řídit vytvořením jedinečných klíčů pro každého příjemce. Klient například komunikuje s rozhraním API třetí strany pomocí předsdíleného klíče. Pokud má jiný klient přístup ke stejnému rozhraní API, musí použít jiný klíč. Klíče nesdílejte, i když mají dva příjemci stejné vzory přístupu nebo role. Obory příjemců se můžou v průběhu času měnit a po sdílení klíče nemůžete nezávisle aktualizovat oprávnění ani rozlišovat vzory použití. Jedinečný přístup také usnadňuje odvolání. Pokud dojde k ohrožení zabezpečení klíče uživatele, je jednodušší tento klíč odvolat nebo otočit, aniž by to mělo vliv na ostatní uživatele.
Tyto pokyny platí pro různá prostředí. Stejný klíč by se neměl používat pro předprodukční i produkční prostředí. Pokud zodpovídáte za vytváření předsdílených klíčů, ujistěte se, že jste vytvořili více klíčů pro podporu více klientů.
Další informace najdete v tématu Doporučení pro správu identit a přístupu.
Úložiště tajných kódů
K ukládání tajemství do zabezpečeného prostředí, šifrování dat v klidu i během přenosu, a auditování přístupu a změn tajemství použijte systém pro správu tajemství, jako je Azure Key Vault. Pokud potřebujete ukládat tajné kódy aplikací, zachovejte je mimo zdrojový kód, abyste je mohli snadno otočit.
Certifikáty by měly být uložené jenom ve službě Key Vault nebo v úložišti certifikátů operačního systému. Například uložení certifikátu X.509 do souboru PFX nebo na disk se nedoporučuje. Pokud potřebujete vyšší úroveň zabezpečení, zvolte systémy, které mají funkce modulu hardwarového zabezpečení (HSM) místo softwarových úložišť tajných kódů.
Kompromis: Řešení HSM se nabízejí za vyšší cenu. Můžete také vidět vliv na výkon aplikace z důvodu přidání vrstev zabezpečení.
Vyhrazený systém pro správu tajných kódů usnadňuje ukládání, distribuci a řízení přístupu k tajným kódům aplikací. Přístup k úložištím tajných kódů by měly mít jenom autorizované identity a služby. Přístup k systému je možné omezit prostřednictvím oprávnění. Při přiřazování oprávnění vždy používejte přístup s nejnižšími oprávněními.
Musíte také řídit přístup na úrovni tajného kódu. Každé tajemství by mělo mít přístup pouze k jednomu rozsahu prostředků. Vytvořte hranice izolace, aby komponenta mohla používat pouze tajné kódy, které potřebuje. Pokud je izolovaná komponenta ohrožená, nemůže získat kontrolu nad dalšími důvěrnými informacemi a potenciálně celou pracovní zátěží. Jedním ze způsobů izolace tajných kódů je použití několika trezorů klíčů. Vytváření dalších trezorů klíčů nezahrnuje žádné dodatečné náklady.
Implementujte auditování a monitorování pro přístup k tajným kódům. Zaznamte, kdo přistupuje k tajným kódům a kdy identifikovat neoprávněnou nebo podezřelou aktivitu. Informace o protokolování z hlediska zabezpečení najdete v tématu Doporučení týkající se monitorování zabezpečení a detekce hrozeb.
Rotace tajných klíčů
Mějte na místě proces, který udržuje tajnou hygienu. Dlouhověkost tajemství ovlivňuje řízení tohoto tajemství. Kvůli omezení vektorů útoku by se tajné kódy měly co nejčastěji vyřadit a nahradit novými tajnými kódy.
Při zpracování přístupových tokenů OAuth pečlivě zvažte jejich dobu života. Zvažte, jestli je potřeba okno expozice upravit na kratší dobu. Obnovovací tokeny musí být bezpečně uloženy s omezenou expozicí aplikaci. Obnovené certifikáty by také měly používat nový klíč. Informace o obnovovacích tokenech najdete v tématu Zabezpečené obnovovací tokeny jménem OAuth 2.0.
Po ukončení životnosti nahraďte tajemství, která už nejsou používána pracovní zátěží nebo pokud byla kompromitována. Naopak neukončujte aktivní tajemství, pokud nejde o nouzovou situaci. Stav tajného kódu můžete určit zobrazením přístupových protokolů. Procesy obměny tajných klíčů by neměly mít vliv na spolehlivost nebo výkon pracovní úlohy. Používejte strategie, které vytvářejí redundanci v tajemstvích, konzumentech a metodách přístupu pro plynulou rotaci.
Další informace o tom, jak Azure Storage zpracovává obměnu, najdete v tématu Správa přístupových klíčů účtu.
Rotační procesy by měly být automatizovány a nasazeny bez zásahu člověka. Ukládání tajných kódů do úložiště pro správu tajných kódů, které nativně podporuje koncepty obměny, může tuto provozní úlohu zjednodušit.
Bezpečné používání tajemství pracovní zátěže
Jako generátor tajných kódů nebo operátor byste měli být schopni bezpečně distribuovat tajné kódy. Mnoho organizací používá nástroje k bezpečnému sdílení tajných kódů v rámci organizace i externě partnerům. Pokud nástroj nemáte, máte proces správného předání přihlašovacích údajů autorizovaným příjemcům. Plány zotavení po havárii by měly zahrnovat tajné postupy obnovy. Mějte proces pro situace, kdy dojde k ohrožení nebo úniku klíče a je potřeba ho obnovit na vyžádání. Při používání tajemství zvažte následující osvědčené postupy:
Zabránění hardkodování
Nezabudovávajte tajné klíče jako statický text v artefaktech kódu, jako je kód aplikace, konfigurační soubory a nasazovací pipeline. Tento vysoce rizikový postup ztěžuje kód, protože tajné kódy jsou přístupné všem uživatelům s přístupem pro čtení.
Této situaci se můžete vyhnout použitím spravovaných identit, abyste eliminovali potřebu ukládat přihlašovací údaje. Vaše aplikace používá přiřazenou identitu k ověření v jiných prostředcích prostřednictvím zprostředkovatele identity (IDP). Testování v neprodukčních prostředích s falešnými tajnými kódy během vývoje, abyste zabránili náhodnému vystavení skutečných tajných kódů.
Používejte nástroje, které pravidelně detekují vystavené tajné kódy v kódu aplikace a vytvářejí artefakty. Tyto nástroje můžete přidat jako předpřipravené háky Gitu, které před nasazením potvrzení zdrojového kódu vyhledávají přihlašovací údaje. Pravidelně kontrolujte a sanitujte protokoly aplikací, abyste měli jistotu, že se nechtěně nezaznamenávají žádné tajné kódy. Detekci můžete také posílit prostřednictvím kolegiálních revizí.
Poznámka:
Pokud skenerové nástroje zjistí tajemství, musí být toto tajemství považováno za ohrožené. Měla by být odvolána.
Reakce na obměnu tajných kódů
Jako vlastník úlohy musíte porozumět plánu a zásadám rotace tajemství, abyste mohli začlenit nová tajemství s minimálním narušením pro uživatele. Když se rotuje tajemství, může existovat okno, během kterého staré tajemství není použitelné, ale nové tajemství ještě nebylo nasazeno. Během tohoto okna komponenta, ke které se aplikace pokouší dosáhnout, nepotvrdí žádosti. Tyto problémy můžete minimalizovat sestavením logiky opakování do kódu. Můžete také použít vzory souběžného přístupu, které umožňují mít více přihlašovacích údajů, které se dají bezpečně změnit, aniž by to mělo vliv na sebe navzájem.
Spolupracujte s provozním týmem a buďte součástí procesu správy změn. Měli byste dát vědět vlastníkům přihlašovacích údajů, když vyřadíte z provozu část aplikace, která používá již nepotřebné přihlašovací údaje.
Integrujte načítání a konfiguraci tajných kódů do kanálu automatizovaného nasazení. Načítání tajných kódů pomáhá zajistit, aby se tajné kódy během nasazování automaticky načítá. Vzory injektáže tajných kódů můžete použít také k vložení tajných kódů do kódu aplikace nebo konfigurace za běhu, což brání náhodnému zpřístupnění tajných kódů protokolům nebo správě verzí.
Usnadnění Azure
Ukládejte tajné kódy pomocí služby Key Vault. Ukládejte tajemství do systému pro správu tajemství Azure, Key Vault, Azure Managed HSM a na dalších místech. Další informace najdete v tématu Jak zvolit správné řešení správy klíčů.
Integrace řízení přístupu na základě identit Id Microsoft Entra a spravované identity pomáhají minimalizovat potřebu tajných kódů. Microsoft Entra ID nabízí vysoce zabezpečené a použitelné prostředí pro řízení přístupu pomocí integrovaných mechanismů pro zpracování rotace klíčů, anomálií a další.
Pomocí řízení přístupu na základě role v Azure (RBAC) přiřaďte oprávnění uživatelům, skupinám a aplikacím v určitém rozsahu.
Pomocí přístupového modelu můžete řídit trezory klíčů, oprávnění a tajné kódy. Další informace najdete v tématu Přehled modelu Accessu.
Implementujte detekci úniku citlivých dat. Integrujte procesy ve vaší úloze, které detekují podezřelou aktivitu, a pravidelně kontrolují vystavené klíče v kódu aplikace. Mezi možnosti patří:
- Úloha skeneru přihlašovacích údajů Azure DevOps
- Kontrola tajných kódů v programu Defender for Cloud
- Microsoft Defender pro Key Vault
- GitHub Secret Scanner
Neukládejte klíče a tajné kódy pro žádný typ prostředí v konfiguračních souborech aplikace ani v kanálech kontinuální integrace a průběžného doručování (CI/CD). Vývojáři by měli pro přístup k přihlašovacím údajům používat připojené služby sady Visual Studio nebo soubory jen pro místní prostředí.
Související odkazy
- Přehled modelu Accessu
- Úloha skeneru přihlašovacích údajů Azure DevOps
- Konfigurace rozšíření Microsoft Security DevOps Azure DevOps
- Konfigurace pokročilého zabezpečení GitHubu pro Azure DevOps
- Kontrola tajných kódů v programu Defender for Cloud
- Výběr správného řešení pro správu klíčů
- Správa přístupových klíčů účtu
- Microsoft Defender pro Key Vault
- Doporučení týkající se monitorování zabezpečení a detekce hrozeb
- Doporučení pro správu identit a přístupu
- Zabezpečené OAuth 2.0 obnovovací tokeny jménem uživatele pro webové služby
- Připojené služby sady Visual Studio
Odkazy komunity
Kontrolní seznam zabezpečení
Projděte si kompletní sadu doporučení.