Sdílet prostřednictvím


Šifrování přenosu pomocí WireGuardu (Public Preview)

Vzhledem k tomu, že organizace stále více spoléhají na službu Azure Kubernetes Service (AKS) ke spouštění kontejnerizovaných úloh, zajištění zabezpečení síťového provozu mezi aplikacemi a službami je nezbytné zejména v regulovaných nebo bezpečnostních prostředích. Šifrování během přenosu pomocí WireGuardu chrání data při přesouvání mezi pody a uzly, zmírnění rizik zachycení nebo manipulace. WireGuard je známý pro jednoduchost a robustní kryptografii, nabízí výkonné řešení pro zabezpečení komunikace v clusterech AKS.

Šifrování WireGuard pro AKS je součástí sady funkcí ACNS (Advanced Container Networking Services) a její implementace je založená na Cilium.

Důležité

Funkce AKS ve verzi Preview jsou k dispozici na bázi samoobsluhy a dobrovolného přihlášení. Ukázky jsou poskytovány "jak jsou" a "podle aktuální dostupnosti" a jsou vyloučené ze smluv o úrovni služeb a omezené záruky. Předběžné verze AKS jsou částečně pokryty zákaznickou podporou podle možností. Proto tyto funkce nejsou určené pro produkční použití. Další informace najdete v následujících článcích podpory:

Rozsah šifrování WireGuard

Šifrování přenosu WireGuard v AKS je navržené tak, aby zabezpečil konkrétní toky provozu v rámci clusteru Kubernetes. Tato část popisuje, které typy provozu se šifrují a které nejsou aktuálně podporovány prostřednictvím Advanced Container Networking Services (ACNS).

Podporované/šifrované toky provozu:

  • Síťový provoz mezi podsítěmi uzlů: Provoz, který opouští pod na jednom uzlu a míří k podu na jiném uzlu.

Nepodporované/ Nešifrované toky provozu

  • Provoz podů se stejným uzlem: Provoz mezi pody na stejném uzlu
  • Síťový provoz uzlů: provoz vygenerovaný samotným uzlem určeným k jinému uzlu

Přehled architektury

Šifrování WireGuard spoléhá na Azure CNI využívající cilium k zabezpečení komunikace mezi uzly v rámci distribuovaného systému. Architektura používá vyhrazeného agenta WireGuard, který orchestruje správu klíčů, konfiguraci rozhraní a dynamické aktualizace partnerských vztahů. Tato část se pokouší poskytnout podrobné vysvětlení.

Diagram návrhu WireGuard

WireGuard Agent

Při spuštění agent Cilium vyhodnotí jeho konfiguraci a určí, jestli je povolené šifrování. Pokud je jako režim šifrování vybrán WireGuard, agent inicializuje vyhrazený subsystém WireGuard. Agent wireguard zodpovídá za konfiguraci a inicializaci komponent potřebných k vynucení šifrování WireGuard.

Generování klíčů

Základním požadavkem na zabezpečení komunikace je generování párů kryptografických klíčů. Každý uzel v clusteru Kubernetes automaticky vygeneruje jedinečný pár klíčů WireGuard během fáze inicializace a distribuuje svůj veřejný klíč prostřednictvím poznámky "network.cilium.io/wg-pub-key" v objektu vlastního prostředku Kubernetes CiliumNode. Páry klíčů se ukládají do paměti a obměňují se každých 120 sekund. Privátní klíč slouží jako důvěrná identita uzlu. Veřejný klíč se sdílí s partnerskými uzly v clusteru pro dešifrování a šifrování provozu k a od koncových bodů na tomto uzlu spravovaných Cilium. Tyto klíče spravuje výhradně Azure, nikoli zákazník, a zajišťuje zabezpečené a automatizované zpracování bez nutnosti ručního zásahu. Tento mechanismus zajišťuje, že se šifrované sítě můžou účastnit jenom uzly s ověřenými přihlašovacími údaji.

Vytvoření rozhraní

Jakmile proces generování klíčů skončí, agent WireGuard nakonfiguruje vyhrazené síťové rozhraní (cilium_wg0). Tento proces zahrnuje vytvoření a konfiguraci rozhraní s dříve vygenerovaným privátním klíčem.

Porovnání s šifrováním virtuální sítě

Azure nabízí několik možností zabezpečení přenášeného provozu v AKS, včetně šifrování na úrovni virtuální sítě a šifrování založeného na WireGuardu. I když oba přístupy zvyšují důvěrnost a integritu síťového provozu, liší se v rozsahu, flexibilitě a požadavcích na nasazení. Tato část vám pomůže pochopit, kdy použít jednotlivá řešení.

Použití šifrování virtuální sítě v případech, kdy

  • Vyžadujete úplné šifrování vrstvy sítě pro veškerý provoz ve virtuální síti: Šifrování virtuální sítě zajišťuje, aby se veškerý provoz bez ohledu na zatížení nebo vrstvu orchestrace automaticky šifroval při procházení službou Azure Virtual Network.

  • Potřebujete minimální režii na výkon: Šifrování virtuální sítě využívá hardwarovou akceleraci v podporovaných SKU virtuálních počítačů, přenáší šifrování z operačního systému na základní hardware. Tento návrh poskytuje vysokou propustnost s nízkým využitím procesoru.

  • Všechny virtuální počítače podporují šifrování virtuální sítě: Šifrování virtuální sítě závisí na SKU virtuálních počítačů, které mají podporu potřebné hardwarové akcelerace. Pokud se vaše infrastruktura skládá výhradně z podporovaných skladových položek, můžete bez problémů povolit šifrování virtuální sítě.

  • Konfigurace sítě AKS podporují šifrování virtuální sítě: Šifrování virtuální sítě má však určitá omezení, pokud se jedná o síťování podů AKS. Další informace najdete v tématu Podporované scénáře šifrování virtuální sítě.

Použijte šifrování WireGuard, když

  • Chcete zajistit, aby provoz vaší aplikace byl šifrován napříč všemi uzly, protože šifrování virtuální sítě nešifruje provoz mezi uzly na stejném fyzickém hostiteli.

  • Chcete sjednotit šifrování napříč více cloudovými nebo hybridními prostředími: WireGuard nabízí cloudové řešení, které umožňuje konzistentní šifrování napříč clustery běžícími v různých poskytovatelích cloudu nebo v místním prostředí.

  • Nepotřebujete ani nechcete šifrovat veškerý provoz ve virtuální síti: WireGuard umožňuje cílenější strategii šifrování ideální pro zabezpečení citlivých úloh bez nutnosti šifrovat veškerý provoz.

  • Některé skladové položky virtuálních počítačů nepodporují šifrování virtuální sítě: WireGuard je implementovaný v softwaru a funguje bez ohledu na podporu hardwaru virtuálního počítače, takže je praktickou možností pro heterogenní prostředí.

Úvahy a omezení

• WireGuard není kompatibilní se standardem FIPS . • Šifrování WireGuard se nevztahuje na pody, které používají hostitelskou síť (spec.hostNetwork: true), protože tyto pody používají identitu hostitele namísto toho, aby měly vlastní identity.

Důležité

Šifrování WireGuard funguje na úrovni softwaru, což může představovat latenci a vliv na výkon propustnosti. Rozsah tohoto dopadu závisí na různých faktorech, včetně velikosti virtuálního počítače (SKU uzlu), konfigurace sítě a vzorců provozu aplikací. Naše srovnávací testy značí, že propustnost je omezená na 1,5 Gb/s s MTU 1500; Výsledky se však mohou lišit v závislosti na vlastnostech úloh a konfiguraci clusteru. Použití skladové položky, která podporuje MTU 3900, způsobilo přibližně 2,5x vyšší propustnost. Šifrování WireGuard je sice možné použít spolu se zásadami sítě, ale může to vést k dalšímu snížení výkonu, s nižší propustností a zvýšenou latencí. Pro aplikace citlivé na latenci nebo propustnost důrazně doporučujeme nejprve vyhodnotit WireGuard v neprodukčním prostředí. Stejně jako vždy se výsledky můžou lišit v závislosti na vlastnostech úloh a konfiguraci clusteru.

Pricing

Důležité

Pokročilé služby kontejnerové sítě jsou placená nabídka. Další informace o cenách naleznete v tématu Advanced Container Networking Services – Ceny.

Další kroky