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

Zabezpečení kontejneru chrání celý kompletní kanál před sestavením a úlohami aplikací spuštěnými ve službě Azure Kubernetes Service (AKS).

Zabezpečený dodavatelský řetězec zahrnuje prostředí sestavení a registr.

Kubernetes zahrnuje součásti 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 clusteru. AKS kombinuje tyto součásti zabezpečení do:

  • Zadejte úplný ověřovací a autorizační scénář.
  • Použití AKS předdefinované služby Azure Policy k zabezpečení aplikací
  • Ucelený přehled od sestavení prostřednictvím vaší aplikace pomocí Microsoft Defenderu pro kontejnery
  • Udržujte cluster AKS v provozu 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é zajišťují zabezpečení aplikací v AKS.

Zabezpečení sestavení

Jako vstupní bod dodavatelského řetězce je důležité před povýšením kanálu provést statickou analýzu sestavení imagí. 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 tím dojde k narušení vývoje. Jde o pohled na stav dodavatele, který se má segmentovat na základě ohrožení zabezpečení, která mohou vývojové týmy provádět. Pomocí období odkladu také můžete vývojářům umožnit čas na nápravu zjištěných problémů.

Zabezpečení registru

Posouzení stavu ohrožení zabezpečení image v registru detekuje posun a také zachytává image, které nepocházejí z vašeho prostředí sestavení. Pomocí notáře V2 připojte podpisy k imagím, abyste zajistili, že nasazení pocházejí z důvěryhodného umístění.

Zabezpečení clusteru

Hlavní komponenty Kubernetes v AKS jsou součástí spravované služby poskytované, spravované a spravované Microsoftem. Každý cluster AKS má vlastní jednoklientské vyhrazené hlavní server Kubernetes pro poskytování serveru API, plánovače atd. Další informace najdete v tématu Správa ohrožení zabezpečení pro službu 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 ROZHRANÍ API můžete omezit pomocí autorizovaných rozsahů IP adres. Můžete také vytvořit plně privátní cluster , který omezí přístup k vašemu virtuální síti pomocí serveru API.

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 Microsoft Entra s AKS.

Zabezpečení uzlů

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

  • Uzly Linuxu spouštějí optimalizované verze Ubuntu nebo Azure Linuxu.
  • Uzly Windows Serveru spouštějí optimalizovanou verzi Windows Serveru 2019 pomocí 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 spuštěné:

  • Kubernetes verze 1.19 a vyšší – fondy uzlů Linuxu se používají containerd jako modul runtime kontejneru. Fondy uzlů Windows Serveru 2019 se používají containerd jako modul runtime kontejneru, který je aktuálně ve verzi Preview. Další informace naleznete v tématu Přidání fondu uzlů Systému Windows Server s containerd.
  • Kubernetes verze 1.19 a starší – fondy uzlů Linuxu používají Jako modul runtime kontejneru Docker. Fondy uzlů Windows Serveru 2019 používají Docker pro výchozí modul runtime kontejneru.

Další informace o procesu upgradu zabezpečení pro pracovní uzly Linux a Windows naleznete v tématu Opravy zabezpečení uzlů.

Clustery AKS s virtuálními počítači Azure Generation 2 zahrnují podporu důvěryhodného spuštění (Preview), která chrání před pokročilými a trvalými technikami útoku kombinováním technologií, které je možné nezávisle povolit, jako je zabezpečené spouštění a virtualizovaná verze důvěryhodného modulu platformy (vTPM). Správa istrátory můžou nasazovat pracovní uzly AKS s ověřenými a podepsanými bootloadery, jádry operačního systému a ovladači, aby se zajistila integrita celého spouštěcího řetězce základního virtuálního počítače.

Autorizace uzlu

Autorizace uzlu je režim autorizace pro zvláštní účely, který konkrétně autorizuje požadavky rozhraní KUBelet API na ochranu před útoky east-west. Ve výchozím nastavení je autorizace uzlu povolená v clusterech AKS 1.24 a více.

Nasazení uzlů

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. Zakázání SSH během vytváření clusteru a fondu uzlů nebo pro existující cluster nebo fond uzlů je ve verzi Preview. Další informace najdete v tématu Správa přístupu SSH.

Úložiště uzlů

K zajištění úložiště používají uzly Azure Spravované disky. U většiny 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 klidovém stavu v rámci platformy Azure. Aby se zlepšila redundance, azure Spravované disky se bezpečně replikují v datacentru Azure.

Nepřátelská víceklientská úloha

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

U těchto typů nepřátelských víceklientských úloh byste měli používat 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ů

Vzhledem k požadavkům na dodržování předpisů nebo zákonným požadavkům mohou určité úlohy vyžadovat vysokou míru izolace od jiných zákaznických úloh. Pro tyto úlohy Poskytuje Azure:

  • Izolované kontejnery jádra, které se mají použít jako uzly agentů v clusteru AKS. Tyto kontejnery jsou zcela izolované od konkrétního typu hardwaru a jsou izolované od prostředků infrastruktury hostitele Azure, hostitelského operačního systému a hypervisoru. Jsou vyhrazené pro jednoho zákazníka. Při vytváření clusteru AKS nebo přidání fondu uzlů vyberte jednu z velikostíizolovaných virtuálních počítačů jako velikost uzlu.
  • Důvěrné kontejnery (Preview) také založené na kontejnerech Kata Confidential Containers šifruje paměť kontejneru a zabraňuje datům v paměti při výpočtu v prostém textu, čitelném formátu a manipulaci. Pomáhá izolovat kontejnery od jiných skupin kontejnerů nebo podů a také jádra operačního systému uzlu virtuálního počítače. Důvěrné kontejnery (Preview) používají hardwarové šifrování paměti (SEV-SNP).
  • Sandboxing podů (Preview) poskytuje hranici izolace mezi aplikací kontejneru a sdíleným jádrem a výpočetními prostředky (procesor, paměť a síť) hostitele kontejneru.

Zabezpečení sítě

Pro připojení a zabezpečení místních sítí můžete cluster AKS nasadit do existujících podsítí virtuální sítě Azure. Tyto virtuální sítě se připojují zpět k místní síti pomocí sítě VPN typu Site-to-Site 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ě používá Azure 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 protokolu 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 zadáte vlastní podsíť (bez ohledu na to, jestli používáte Azure CNI nebo Kubenet), neupravujte skupinu zabezpečení sítě na úrovni síťové karty spravovanou službou AKS. Místo toho vytvořte další skupiny zabezpečení sítě na úrovni podsítě a upravte tok provozu. Ujistěte se, že neruší potřebný provoz, který spravuje cluster, například přístup k nástroji pro vyrovnávání zatížení, komunikaci s řídicí rovinou nebo výchozí přenos dat.

Zásady sítě Kubernetes

Pro omezení síťového provozu mezi pody ve vašem 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 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 for Containers , abyste zjistili a omezili kybernetické útoky proti vašim aplikacím běžícím ve vašich podech. Spusťte nepřetržité prohledávání, abyste zjistili odchylku ve stavu ohrožení zabezpečení vaší aplikace a implementovali proces "blue/green/canary", který opraví a nahradí ohrožené obrázky.

Tajné klíče Kubernetes

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

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

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

Poznámka:

Nezpracované soubory manifestu tajného kódu obsahují tajná data ve formátu base64. Další informace najdete v oficiální dokumentaci. S těmito soubory zachází jako s citlivými informacemi a nikdy je neověříte do správy zdrojového kódu.

Tajné kódy Kubernetes jsou uložené v atd., 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.

Přidružené osvědčené postupy najdete v tématu Osvědčené postupy pro zabezpečení a upgrady clusteru 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: