Koncepty zabezpečení pro aplikace a clustery ve službě Azure Kubernetes (AKS)
Zabezpečení kontejneru chrání celý kompletní kanál od sestavení až po úlohy aplikací spuštěné v Azure Kubernetes Service (AKS).
Zabezpečený dodavatelský řetězec zahrnuje prostředí sestavení a registr.
Kubernetes zahrnuje komponenty zabezpečení, jako jsou standardy zabezpečení podů a tajné kódy. Azure mezitím zahrnuje komponenty jako Active Directory, Microsoft Defender for Cloud, Azure Policy, Azure Key Vault, skupiny zabezpečení sítě a upgrady orchestrovaných clusterů. AKS kombinuje tyto komponenty zabezpečení k těmto:
- Zadejte kompletní scénář ověřování a autorizace.
- Využijte integrované funkce AKS Azure Policy zabezpečení aplikací.
- Přehled od end-to-endu k sestavení prostřednictvím vaší aplikace pomocí Microsoft Defenderu for Containers
- Udržujte cluster AKS spuštěný s nejnovějšími aktualizacemi zabezpečení operačního systému a verzemi Kubernetes.
- Zajistěte zabezpečený provoz podů a přístup k citlivým přihlašovacím údajům.
Tento článek představuje základní koncepty, které zabezpečí vaše aplikace v AKS:
Zabezpečení sestavení
Jako vstupní bod dodavatelského řetězce je důležité provést statickou analýzu sestavení image před jejich povýšením v kanálu. To zahrnuje posouzení ohrožení zabezpečení a dodržování předpisů. Nedaří se sestavit, protože má vysoké ohrožení zabezpečení, protože to naruší vývoj. Jedná se o segmentaci stavu dodavatele na základě ohrožení zabezpečení, na základě kterých mohou vývojové týmy jednat. Využijte také období odkladu, která vývojářům umožní čas na nápravu zjištěných problémů.
Zabezpečení registru
Vyhodnocením stavu ohrožení zabezpečení image v registru se zjistí posun a zachytí se také image, které nepochohaly z vašeho prostředí sestavení. Pomocí notáře V2 připojte k imagi podpisy, abyste zajistili, že nasazení přicházejí z důvěryhodného umístění.
Zabezpečení clusteru
V AKS jsou hlavní komponenty Kubernetes součástí spravované služby poskytované, spravované a spravované Microsoftem. Každý cluster AKS má svůj vlastní vyhrazený hlavní server Kubernetes s jedním tenantem, který poskytuje server rozhraní API, scheduler atd.
Ve výchozím nastavení používá server rozhraní Kubernetes API veřejnou IP adresu a plně kvalifikovaný název domény (FQDN). Přístup ke koncovému bodu serveru rozhraní API můžete omezit pomocí autorizovaných rozsahů IP adres. Můžete také vytvořit plně privátní cluster, který omezí přístup serveru rozhraní API k vaší virtuální síti.
Přístup k serveru rozhraní API můžete řídit pomocí řízení přístupu na základě role Kubernetes (Kubernetes RBAC) a Azure RBAC. Další informace najdete v tématu Integrace Azure AD s AKS.
Zabezpečení uzlu
Uzly AKS jsou virtuální počítače Azure, které spravujete a spravujete.
- Na linuxových uzlech běží optimalizovaná distribuce Ubuntu pomocí
containerdmodulu runtime kontejneru nebo Dockeru. - Windows Server používají optimalizovanou verzi Windows Server 2019 s využitím modulu runtime kontejneru
containerdnebo Dockeru.
Při vytvoření nebo navýšení velikosti clusteru AKS se uzly automaticky nasadí s nejnovějšími aktualizacemi a konfiguracemi zabezpečení operačního systému.
Poznámka
Clustery AKS s využitím:
- Kubernetes verze 1.19 a novější pro fondy uzlů Linuxu
containerdpoužívají jako modul runtime kontejneru. Použitícontainerds fondy uzlů Windows Server 2019 je aktuálně ve verzi Preview. Další podrobnosti najdete v tématu Přidání fondu uzlůcontainerdWindows Serveru pomocí . - Kubernetes starší než v1.19 pro fondy uzlů Linuxu používá Jako modul runtime kontejneru Docker. Pro Windows uzlů Serveru 2019 je Docker výchozí modul runtime kontejneru.
Opravy zabezpečení uzlu
Linuxové uzly
Linuxové uzly v AKS každý večer čerpou opravy zabezpečení prostřednictvím kanálu aktualizace zabezpečení distribuce. Toto chování se automaticky konfiguruje při nasazování uzlů v clusteru AKS. Pokud to vyžaduje oprava zabezpečení nebo aktualizace jádra, uzly se automaticky restartují, aby se minimalizovalo přerušení a potenciální dopad na spuštěné úlohy. Další informace o tom, jak zpracovávat restartování uzlů, najdete v tématu Použití aktualizací zabezpečení a jádra na uzly v AKS.
Noční aktualizace aplikují aktualizace zabezpečení na operační systém na uzlu, ale image uzlu použitá k vytváření uzlů pro cluster zůstane beze změny. Pokud se do clusteru přidá nový linuxový uzel, použije se k vytvoření uzlu původní image. Tento nový uzel obdrží všechny aktualizace zabezpečení a jádra dostupné během automatické kontroly každou noc, ale zůstane bez opravy, dokud se nedokončí všechny kontroly a restartování. Pomocí upgradu image uzlu můžete zkontrolovat a aktualizovat image uzlů používané clusterem. Další podrobnosti o upgradu image uzlu najdete v tématu Azure Kubernetes Service upgradu image uzlu (AKS).
Windows uzly serveru
U Windows Server se Windows Update automaticky nespouštěl a neakumuly nainstalovat nejnovější aktualizace. Naplánujte Windows fondu uzlů serveru v clusteru AKS kolem běžného cyklu vydání aktualizace Windows aktualizace a vlastního procesu ověřování. Tento proces upgradu vytvoří uzly, na Windows nejnovější image Windows Serveru a opravy, a pak odebere starší uzly. Další informace o tomto procesu najdete v tématu Upgrade fondu uzlů v AKS.
Nasazení uzlu
Uzly se nasadí do podsítě privátní virtuální sítě bez přiřazených veřejných IP adres. Pro účely řešení potíží a správy je protokol SSH ve výchozím nastavení povolený a přístupný pouze pomocí interní IP adresy.
Úložiště uzlu
Uzly k poskytování úložiště používají Azure Spravované disky. Pro většinu velikostí uzlů virtuálního počítače jsou Spravované disky Azure Premium disky zálohované vysoce výkonnými disky SSD. Data uložená na spravovaných discích se v rámci platformy Azure automaticky šifrují v klidových uloženích. Aby se zlepšila redundance, Spravované disky azure bezpečně replikují v rámci datacentra Azure.
Hostilní úlohy s více tenanty
V současné době nejsou prostředí Kubernetes bezpečná pro použití nehořaslepých více tenantů. Dodatečné funkce zabezpečení, jako jsou zásady zabezpečení podů nebo řízení přístupu na základě role Kubernetes pro uzly, efektivně blokují zneužití. V případě skutečného zabezpečení při spouštění nehořatelových úloh s více tenanty důvěřujte pouze hypervisoru. Doména zabezpečení pro Kubernetes se stane celým clusterem, nikoli jednotlivým uzlem.
U těchto typů nehořlacích úloh s více tenanty byste měli použít fyzicky izolované clustery. Další informace o způsobech izolace úloh najdete v tématu Osvědčené postupy pro izolaci clusteru v AKS.
Izolace výpočetních prostředků
Kvůli dodržování předpisů nebo zákonným požadavkům mohou některé úlohy vyžadovat vysoký stupeň izolace od jiných zákaznických úloh. Pro tyto úlohy Azure poskytuje izolované virtuální počítače, které se používají jako uzly agentů v clusteru AKS. Tyto virtuální počítače jsou izolované pro konkrétní typ hardwaru a vyhrazené pro jednoho zákazníka.
Při vytváření clusteru AKS nebo přidávání fondu uzlů vyberte jako velikost uzlu jeden z izolovaných virtuálních počítačů.
Upgrady clusteru
Azure poskytuje nástroje pro orchestraci upgradu pro upgrade clusteru a komponent AKS, údržbu zabezpečení a dodržování předpisů a přístup k nejnovějším funkcím. Tato orchestrace upgradu zahrnuje hlavní i agentské komponenty Kubernetes.
Pokud chcete zahájit proces upgradu, zadejte jednu z uvedených dostupných verzí Kubernetes. Azure pak bezpečně cordony a vyprázdní všechny uzly AKS a upgrady.
Cordon a vyprazdňování
Během procesu upgradu se uzly AKS z clusteru jednotlivě směšují, aby se zabránilo jejich plánování nových podů. Uzly se pak vyprazdní a upgradují následujícím způsobem:
- Do fondu uzlů se nasadí nový uzel.
- Tento uzel spouští nejnovější image a opravy operačního systému.
- Pro upgrade je identifikován jeden z existujících uzlů.
- Lusky v identifikovaném uzlu se řádně ukončí a naplánují na ostatních uzlech ve fondu uzlů.
- Vyprázdnit uzel se odstraní z clusteru AKS.
- Kroky 1-4 se opakují, dokud nebudou všechny uzly úspěšně nahrazeny součástí procesu upgradu.
Další informace najdete v tématu upgrade clusteru AKS.
Zabezpečení sítě
V případě připojení a zabezpečení pomocí místních sítí můžete nasadit cluster AKS do stávajících podsítí virtuální sítě Azure. Tyto virtuální sítě se k místní síti připojují zpátky pomocí sítě VPN typu Site-to-site nebo Express Route. Definujte Kubernetes příchozí řadiče s privátními interními IP adresami, abyste omezili přístup ke službám na připojení k interní síti.
Skupiny zabezpečení sítě Azure
Pro filtrování toku provozu virtuální sítě Azure používá pravidla skupiny zabezpečení sítě. Tato pravidla definují zdrojové a cílové rozsahy IP adres, porty a protokoly povolený nebo odepřený přístup k prostředkům. Vytvoří se výchozí pravidla, která povolí přenos TLS do serveru rozhraní Kubernetes API. Vytvoříte služby pomocí nástrojů pro vyrovnávání zatížení, mapování portů nebo směrování příchozích dat. AKS automaticky upraví skupinu zabezpečení sítě pro přenosový tok.
Pokud pro svůj cluster AKS zadáte vlastní podsíť (ať už používáte Azure CNI nebo Kubenet ), neměňte skupinu zabezpečení sítě na úrovni síťové karty SPRAVOVANOU pomocí AKS. Místo toho vytvořte další skupiny zabezpečení sítě na úrovni podsítě a upravte tok přenosů. Ujistěte se, že nejsou v konfliktu s nezbytným provozem, který spravuje cluster, jako je například přístup k nástroji pro vyrovnávání zatížení, komunikace s řídicí rovinou a výstup.
Zásady sítě Kubernetes
Pro omezení síťového provozu mezi lusky v clusteru nabízí AKS podporu pro zásady sítě Kubernetes. Pomocí zásad sítě můžete povolit nebo odepřít konkrétní síťové cesty v rámci clusteru založené na oborech názvů a selektorech popisků.
Zabezpečení aplikace
Aby bylo možné chránit lusky běžící na AKS, využijte Microsoft Defender pro Kubernetes ke zjištění a omezení internetového útoku na vaše aplikace spuštěné v luskech. Spusťte nepřetržité prohledávání, abyste zjistili, jak se ve stavu ohrožení zabezpečení aplikace narazí, a implementovat "modrý/zelený/Kanárské" proces opravy a nahrazení ohrožených imagí.
Tajné klíče Kubernetes
Pomocí tajného klíče Kubernetes vložíte citlivé údaje do lusků, jako jsou přihlašovací údaje nebo klíče pro přístup.
- Vytvořte tajný klíč pomocí rozhraní Kubernetes API.
- Definice nebo nasazení a vyžádání konkrétního tajného klíče.
- Tajné kódy se poskytují pouze uzlům s naplánovaným uzlem, který je vyžaduje.
- Tajný kód je uložený v tmpfs a nezapisuje na disk.
- Když odstraníte poslední uzel pod uzlem, který vyžaduje tajný klíč, bude tajný kód odstraněn z tmpfs uzlu.
- Tajné kódy jsou uloženy v daném oboru názvů a lze k nim přistupovat pouze v rámci stejného oboru názvů.
Použití tajných klíčů snižuje citlivé informace definované v manifestu pod nebo Service YAML. Místo toho vyžádáte tajný klíč uložený v Kubernetes API serveru jako součást manifestu YAML. Tento přístup poskytuje pouze konkrétní přístup k tajnému kódu pod.
Poznámka
Soubory manifestu nezpracovaných tajných kódů obsahují tajná data ve formátu Base64 (Další informace najdete v oficiální dokumentaci ). Tyto soubory považovat za citlivé informace a nikdy je nepotvrzují do správy zdrojových kódů.
Tajné kódy Kubernetes jsou uložené v etcd a v úložišti hodnot distribuovaných klíčů. Úložiště Etcd je plně spravované pomocí AKS a data se v rámci platformy Azure šifrují v klidovémstavu.
Další kroky
Pokud chcete začít s zabezpečením clusterů AKS, přečtěte si téma upgrade clusteru AKS.
Související osvědčené postupy najdete v tématu osvědčené postupy pro zabezpečení clusteru a upgrady v AKS a osvědčené postupy pro zabezpečení v AKS.
Další informace o základních konceptech Kubernetes a AKS najdete v tématech: