Přehled zásad vrstvy 7 (L7)

Zásady sítě jsou nezbytné pro zabezpečení clusterů Kubernetes definováním a řízením komunikace podů. Zmírňují neoprávněný přístup a potenciální porušení zabezpečení tím, že regulují tok provozu. Advanced Container Networking Services posiluje zabezpečení pomocí zásad sítě založených na plně kvalifikovaném názvu domény (FQDN). Pokročilé služby kontejnerové sítě nyní poskytují podporu politik L7, což umožňuje podrobnou inspekci a správu provozu na úrovni aplikace. Tento pokrok zvyšuje zabezpečení i efektivitu síťové komunikace v clusterech AKS. Nabídka zahrnuje komplexní podporu široce přijímaných protokolů, včetně PROTOKOLŮ HTTP, gRPC a Kafka.

Komponenty zásad L7

Envoy proxy: Envoy, součást bezpečnostního agenta ACNS, funguje jako bod vynucení pro zásady L7. TPROXY kontroluje provoz aplikací a porovnává ho s definovanými zásadami L7. Aby se zlepšila škálovatelnost a správa prostředků, je Envoy nasazen jako samostatný DaemonSet, oddělený od agenta Cilium.

Jak fungují zásady L7

Pokud je pro aplikaci nebo pod povolené vynucování zásad L7, vyhodnotí se nejprve odchozí síťový provoz, aby se zjistilo dodržování nakonfigurovaných pravidel na úrovni aplikace. Sonda eBPF připojená k síťovému rozhraní zdrojového podu označí pakety, které se pak přesměrují na proxy z místního uzlu. K tomuto přesměrování dochází pouze u podů, které vynucují L7 zásady, což zajišťuje, že vynucení zásad je použito selektivně.

Proxy server envoy, rozšířen o filtry sítě Cilium, pak se rozhodne, jestli se má provoz přesměrovat do cílového podu na základě kritérií zásad. Pokud je to povoleno, provoz pokračuje; pokud ne, Envoy vrátí náležitý chybový kód do původního podu. Po úspěšné autorizaci proxy Envoy usnadňuje tok síťového provozu a poskytuje viditelnost a řízení na úrovni aplikace. To umožňuje agentu Cilium vynucovat podrobné zásady sítě v rámci modulu zásad. Následující diagram znázorňuje tok vysoké úrovně vynucení zásad L7.

Snímek obrazovky znázorňující, jak fungují zásady L7

Monitorování provozu L7 pomocí Hubble a Grafany

K získání přehledu o tocích provozu L7, konkrétně HTTP, gRPC a Kafka, využívá Azure CNI Powered by Cilium agenta Hubble, který je ve výchozím nastavení povolený pomocí Advanced Container Networking Services. Hubble poskytuje podrobné metriky na úrovni toku.

Abychom zjednodušili analýzu těchto metrik L7, poskytujeme předem nakonfigurované řídicí panely Grafana spravované službou Azure. Najdete je ve složce > s názvy souborů, jako jsou "Kubernetes/Networking/L7 (Obor názvů)" a "Kubernetes/Networking/L7 (Workload)".

Tyto řídicí panely nabízejí podrobný přehled o datech toku L7 na úrovni clusteru, oboru názvů a úloh.

Poznámka:

Tyto řídicí panely zobrazí data jenom v případě, že máte v clusteru povolenou tuto funkci a použijí se příslušné zásady. Kromě toho se metriky monitorování nevyžadují procházet přes Envoy, součást bezpečnostního agenta ACNS. Místo toho tyto metriky shromažďuje agent Hubble, který je nainstalovaný ve vašem clusteru jako součást funkce pozorovatelnosti služby Advanced Container Networking Service.

Klíčové výhody

Podrobné řízení Application-Level: Zásady L7 umožňují jemně odstupňovanou kontrolu nad síťovým provozem na základě atributů specifických pro aplikaci, jako jsou metody HTTP, cesty gRPC a témata Kafka. To přesahuje základní IP adresu a kontrolu na základě portů tradičních zásad sítě.

Rozšířené zabezpečení: Kontrolou provozu na úrovni aplikace můžou zásady L7 zabránit útokům, které zneužívají ohrožení zabezpečení na aplikační vrstvě. To zahrnuje blokování neoprávněného přístupu ke konkrétním rozhraním API nebo službám. Zásady L7 jsou navíc důležitou součástí strategie zabezpečení nulové důvěry (nulová důvěra (Zero Trust)), která umožňuje prosazení principu minimálních oprávnění na aplikační vrstvě.

Elegantní zpracování chyb: Na rozdíl od zásad L3/L4, které obvykle potichu zahazují neoprávněný provoz, můžou zásady L7 vracet kódy chyb na úrovni aplikace (například HTTP 403, chyby autorizace Kafka), což umožňuje aplikacím zpracovávat chyby elegantněji.

Pozorovatelnost: S povolenou pozorovatelností pro pokročilé síťové služby kontejnerů a zásady L7 použité u clusteru AKS můžete monitorovat provoz a účinnost zásad pomocí dashboardů Grafana.

Omezení a úvahy

  • Aktuální podpora funkcí spoléhá na vynucení zásad vrstvy 7 pomocí Cilium na základě HTTP, HTTPS, gRPC a Kafka.
  • Maximální podporovaná velikost clusteru je až 1 000 uzlů nebo 40 000 podů podle toho, co je větší.
  • Provoz procházející proxy servery Envoy přichází s latencí. Uživatelé můžou zaznamenat výrazné snížení latence nad 3 000 požadavků za sekundu.
  • Součástí našeho řešení pro pozorovatelnost jsou metriky envoy_http_rq_total. Tyto metriky poskytují celkový počet požadavků, který se dá použít k odvození požadavků za sekundu (rps).
  • Během aktualizace či zavedení Cilium mohou být stávající relace elegantně uzavřeny. U aplikací se očekává, že tato přerušení budou řádně zpracovávat – obvykle implementací mechanismů opakování na úrovni připojení nebo žádosti. Nová připojení zahájená během zavádění nejsou ovlivněná.
  • Zásady L7 nejsou podporovány CiliumClusterwideNetworkPolicy (CCNP).
  • Zásady L7 prostřednictvím Advanced Container Networking Services (ACNS) nejsou kompatibilní se zásadami L7 implementovanými prostřednictvím alternativních metod, jako je Istio. Následující tabulka shrnuje podporované scénáře.
Funkce/komponenta Zásady L7 využívající AKS, Istio – Spravovaný doplněk
Zásady sítě K8s od Azure CNI s využitím Cilium Podporováno
Zásady L4 (FQDN) od Azure CNI využívající Cilium a ACNS Podporováno
Zásady L7 (HTTP(s)/GRPC/Kafka) Azure CNI využívající Cilium a ACNS Nepodporováno

Cenotvorba

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