Koncepty zabezpečení pro aplikace a clustery ve službě Azure Kubernetes (AKS)

Zabezpečení kontejneru chrání celý kanál od sestavení až po úlohy aplikací spuštěné v Azure Kubernetes Service (AKS).

Secure Supply Chain 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 jsou Active Directory, Microsoft Defender for Containers, Azure Policy, Azure Key Vault, skupiny zabezpečení sítě a orchestrované upgrady clusteru. AKS kombinuje tyto komponenty zabezpečení do:

  • Zadejte úplný scénář ověřování a autorizace.
  • K zabezpečení aplikací využijte integrované Azure Policy AKS.
  • Ucelený přehled od sestavení přes aplikaci s Microsoft Defender pro kontejnery
  • Nechte cluster AKS běžet 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 zabezpečení aplikací v AKS.

Zabezpečení sestavení

Jako vstupní bod pro dodavatelský řetězec je důležité provést statickou analýzu buildů imagí před jejich zvýšením v kanálu. To zahrnuje posouzení ohrožení zabezpečení a dodržování předpisů. Nejde o selhání sestavení, protože má chybu zabezpečení, protože to naruší vývoj. Jde o to, podívat se na stav dodavatele, který se má segmentovat na základě ohrožení zabezpečení, které vývojové týmy dají použít. Využijte také období odkladu, abyste vývojářům umožnili čas na nápravu zjištěných problémů.

Zabezpečení registru

Posouzení stavu ohrožení zabezpečení image v registru zjistí posun a zachytí také image, které nepocházejí z prostředí sestavení. Pomocí notáře V2 připojte podpisy k imagím, abyste měli jistotu, že nasazení pochá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á vlastní vyhrazený hlavní server Kubernetes s jedním tenantem, který poskytuje server rozhraní API, plánovač atd.

Ve výchozím nastavení používá server rozhraní API Kubernetes veřejnou IP adresu a plně kvalifikovaný název domény (FQDN). Přístup ke koncovému bodu serveru 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 (RBAC Kubernetes) a Azure RBAC. Další informace najdete v tématu integrace Azure AD s AKS.

Zabezpečení uzlů

Uzly AKS jsou virtuální počítače Azure, které spravujete a udržujete.

  • Uzly s Linuxem spouští optimalizovanou distribuci Ubuntu pomocí modulu runtime kontejneru Dockeru containerd nebo .
  • Na uzlech Windows Serveru běží optimalizovaná verze Windows Serveru 2019 s využitím modulu runtime kontejneru containerd Nebo Dockeru.

Při vytvoření nebo vertikálním navýšení kapacity 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 vyšší pro fondy uzlů s Linuxem se používá containerd jako modul runtime kontejneru. Používání containerd s fondy uzlů Windows Serveru 2019 je aktuálně ve verzi Preview. Další podrobnosti najdete v tématu Přidání fondu uzlů Windows Serveru pomocí containerd.
  • Kubernetes starší než v1.19 pro fondy uzlů s Linuxem používá Jako modul runtime kontejneru Docker. Pro fondy uzlů Windows Serveru 2019 je docker výchozím modulem runtime kontejneru.

Opravy zabezpečení uzlů

Uzly s Linuxem

Každý večer dostávají linuxové uzly v AKS opravy zabezpečení prostřednictvím kanálu aktualizace zabezpečení distribuce. Toto chování se automaticky nakonfiguruje při nasazení uzlů v clusteru AKS. Aby se minimalizovalo přerušení a potenciální dopad na spuštěné úlohy, uzly se automaticky nerestartují, pokud to vyžaduje oprava zabezpečení nebo aktualizace jádra. Další informace o tom, jak zpracovat restartování uzlů, najdete v tématu Použití aktualizací zabezpečení a jádra u uzlů v AKS.

Noční aktualizace použijí aktualizace zabezpečení operačního systému v uzlu, ale image uzlu použitá k vytvoření uzlů pro váš cluster zůstane beze změny. Pokud se do clusteru přidá nový linuxový uzel, použije se k jeho vytvoření původní image. Tento nový uzel bude dostávat 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í. Upgrade image uzlu můžete použít ke kontrole a aktualizaci imagí uzlů používaných vaším clusterem. Další podrobnosti o upgradu image uzlu najdete v tématu upgrade image uzlu Azure Kubernetes Service (AKS).

Uzly Windows Serveru

U uzlů Windows Serveru se služba Windows Update automaticky nespustí a neaplikuje nejnovější aktualizace. Naplánujte upgrady fondu uzlů Windows Serveru v clusteru AKS podle běžného cyklu vydávání verzí služba Windows Update a vlastního procesu ověřování. Tento proces upgradu vytvoří uzly, na kterých běží nejnovější image a opravy Windows Serveru, a pak odebere starší uzly. Další informace o tomto procesu najdete v tématu Upgrade fondu uzlů v AKS.

Autorizace uzlu

Autorizace uzlů je režim autorizace pro speciální účely, který speciálně autorizuje požadavky rozhraní API vytvořené kubelety za účelem ochrany před útoky na East-West. Autorizace uzlů je ve výchozím nastavení povolená v clusterech AKS 1.24 + .

Nasazení uzlu

Uzly se nasazují 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 SSH ve výchozím nastavení povolený a přístupný pouze pomocí interní IP adresy.

Úložiště uzlů

K poskytování úložiště používají uzly Azure Spravované disky. Pro většinu velikostí uzlů virtuálních počítačů jsou azure Spravované disky disky Premium založené na vysoce výkonných discích SSD. Data uložená na spravovaných discích se automaticky šifrují v neaktivním stavu v rámci platformy Azure. Kvůli lepší redundanci se Spravované disky Azure bezpečně replikují v rámci datacentra Azure.

Nepřátelské úlohy s více tenanty

Prostředí Kubernetes v současné době nejsou bezpečná pro nepřátelské použití s více tenanty. Další funkce zabezpečení, jako jsou zásady zabezpečení podů nebo RBAC Kubernetes pro uzly, efektivně blokují zneužití. Pro zajištění skutečného zabezpečení při spouštění nepřátelských úloh s více tenanty důvěřujte pouze hypervisoru. Doména zabezpečení pro Kubernetes se stane celým clusterem, nikoli samostatným uzlem.

Pro tyto typy nepřátelský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 clusterů v AKS.

Izolace výpočetních prostředků

Vzhledem k požadavkům na dodržování předpisů nebo zákonným požadavkům můžou některé úlohy vyžadovat vysokou míru izolace od úloh jiných zákazníků. Pro tyto úlohy Azure poskytuje izolované virtuální počítače , které se používají jako uzly agenta 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 jednu z velikostí izolovaných virtuálních počítačů jako velikost uzlu .

Upgrady clusteru

Azure poskytuje nástroje pro orchestraci upgradu pro upgrade clusteru a komponent AKS, udržování zabezpečení a dodržování předpisů a přístup k nejnovějším funkcím. Tato orchestrace upgradu zahrnuje jak hlavní komponentu Kubernetes, tak komponentu agenta.

Pokud chcete zahájit proces upgradu, zadejte jednu z uvedených dostupných verzí Kubernetes. Azure pak bezpečně provádí a vyprázdní každý uzel AKS a upgrady.

Cordon a vyprázdnění

Během procesu upgradu se uzly AKS jednotlivě oddělují z clusteru, aby se zabránilo naplánování nových podů. Uzly se pak vyprázdní a upgradují následujícím způsobem:

  1. Do fondu uzlů se nasadí nový uzel.
    • Tento uzel spouští nejnovější image operačního systému a opravy.
  2. Jeden z existujících uzlů je určen pro upgrade.
  3. Pody na identifikovaném uzlu jsou řádně ukončeny a naplánovány na ostatních uzlech ve fondu uzlů.
  4. Vyprázdněný uzel se odstraní z clusteru AKS.
  5. Kroky 1 až 4 se opakují, dokud nebudou všechny uzly v rámci procesu upgradu úspěšně nahrazeny.

Další informace najdete v tématu Upgrade clusteru AKS.

Zabezpečení sítě

Kvůli připojení a zabezpečení místních sítí můžete cluster AKS nasadit do existujících podsítí virtuálních sítí Azure. Tyto virtuální sítě se připojují zpět k místní síti pomocí azure site-to-site VPN nebo ExpressRoute. Definujte kontrolery příchozího přenosu dat Kubernetes s privátními interními IP adresami, abyste omezili přístup služeb k internímu síťovému připojení.

Skupiny zabezpečení sítě Azure

K filtrování toku provozu virtuální sítě azure používá pravidla skupin zabezpečení sítě. Tato pravidla definují rozsahy zdrojových a cílových IP adres, porty a protokoly, které mají povolený nebo zakázaný přístup k prostředkům. Vytvoří se výchozí pravidla, která povolí provoz TLS na server rozhraní Kubernetes API. Vytvoříte služby s nástroji pro vyrovnávání zatížení, mapováním portů nebo trasami příchozího přenosu dat. Služba AKS automaticky upraví skupinu zabezpečení sítě pro tok provozu.

Pokud pro cluster AKS poskytnete vlastní podsíť (bez ohledu na to, jestli používáte Azure CNI nebo Kubenet), neupravujte skupinu zabezpečení sítě na úrovni síťových adaptérů spravovanou pomocí AKS. Místo toho vytvořte další skupiny zabezpečení sítě na úrovni podsítě a upravte tok provozu. Ujistěte se, že nejsou v konfliktu s nezbytným provozem, který spravuje cluster, jako je například přístup nástroje pro vyrovnávání zatížení, komunikace s řídicí rovinou a výchozí přenos dat.

Zásady sítě Kubernetes

K omezení síťového provozu mezi pody v clusteru nabízí AKS podporu zásad sítě Kubernetes. Pomocí zásad sítě můžete povolit nebo zakázat konkrétní síťové cesty v rámci clusteru na základě oborů názvů a selektorů popisků.

Zabezpečení aplikací

Pokud chcete chránit pody spuštěné v AKS, využijte Microsoft Defender pro kontejnery k detekci a omezení kybernetických útoků na aplikace spuštěné v podech. Spusťte nepřetržitou kontrolu, abyste zjistili odchylku ve stavu ohrožení zabezpečení vaší aplikace, a implementujte proces "modrá/zelená/kanárová", který opraví a nahradí ohrožené image.

Tajné klíče Kubernetes

S tajným kódem Kubernetes vkládat citlivá data do podů, jako jsou přihlašovací údaje pro přístup nebo klíče.

  1. Vytvořte tajný kód pomocí rozhraní API Kubernetes.
  2. Definujte pod nebo nasazení a vyžádejte si konkrétní tajný klíč.
    • Tajné kódy se poskytují jenom uzlům s naplánovaným podem, který je vyžaduje.
    • Tajný klíč je uložený v tmpfs, nezapisuje se na disk.
  3. Když odstraníte poslední pod na uzlu, který vyžaduje tajný kód, tajný klíč se odstraní z tmpfs uzlu.
    • Tajné kódy jsou uložené v daném oboru názvů a přístup k nim mají jenom pody ve stejném oboru názvů.

Použití tajných kódů snižuje počet citlivých informací definovaných v manifestu YAML podu nebo služby. Místo toho si vyžádáte tajný klíč uložený na serveru rozhraní API Kubernetes jako součást manifestu YAML. Tento přístup poskytuje přístup k tajnému kódu pouze konkrétnímu podu.

Poznámka

Soubory manifestu nezpracovaných tajných kódů obsahují tajná data ve formátu base64 (další podrobnosti najdete v oficiální dokumentaci ). Zacházejte s těmito soubory jako s citlivými informacemi a nikdy je nepokládejte do správy zdrojového kódu.

Tajné kódy Kubernetes se ukládají v etcd, distribuovaném úložišti klíč-hodnota. Úložiště Etcd je plně spravované službou AKS a neaktivní uložená data se v rámci platformy Azure šifrují.

Další kroky

Pokud chcete začít se zabezpečením clusterů AKS, přečtěte si téma Upgrade clusteru AKS.

Související osvědčené postupy najdete v tématech Osvědčené postupy pro zabezpečení a upgrady clusterů v AKS a Osvědčené postupy pro zabezpečení podů v AKS.

Další informace o základních konceptech Kubernetes a AKS najdete tady: