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

  • Zadejte úplný scénář ověřování a autorizace.
  • K zabezpečení aplikací použijte předdefinované 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šuje vývoj. Jde o to, aby se podívali na stav dodavatele , který se má segmentovat na základě ohrožení zabezpečení, na které vývojové týmy dají reagovat. Využijte také období odkladu , abyste vývojářům umožnili čas na nápravu zjištěných problémů.

Zabezpečení registru

Při posouzení stavu ohrožení zabezpečení image v registru se zjistí posun a zachytí se 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. Informace o tom, jak Microsoft spravuje chyby zabezpečení, a podrobnosti o vydávání aktualizací zabezpečení pro spravované pars clusterů AKS najdete v tématu Správa ohrožení zabezpečení pro Azure Kubernetes Service.

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.

  • Na uzlech s Linuxem běží optimalizované verze Ubuntu nebo Mariner.
  • 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ší informace 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.

Další informace o procesu upgradu zabezpečení pro pracovní uzly s Linuxem a Windows najdete v tématu Uzly pro opravy zabezpečení.

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í API Kubernetes. Vytváří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íť (ať už 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. Ověřte, že nenarušují potřebný provoz, který spravuje cluster, jako je přístup k nástroji pro vyrovnávání zatížení, komunikace s řídicí rovinou a výchozí přenos dat.

Zásady sítě Kubernetes

Kvůli 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, zvažte Microsoft Defender pro kontejnery, abyste mohli detekovat a omezit kybernetické útoky 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 jsou přístupné pouze z podů 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. AKS plně spravuje úložiště Etcd a neaktivní uložená data se šifrují v rámci platformy Azure.

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: