Udostępnij przez


Szyfrowanie tranzytowe za pomocą narzędzia WireGuard (publiczna wersja zapoznawcza)

Ponieważ organizacje coraz częściej korzystają z usługi Azure Kubernetes Service (AKS) do uruchamiania konteneryzowanych obciążeń, zapewnienie bezpieczeństwa ruchu sieciowego między aplikacjami i usługami staje się niezbędne szczególnie w środowiskach regulowanych lub wrażliwych na zabezpieczenia. Szyfrowanie podczas przesyłania za pomocą narzędzia WireGuard chroni dane podczas przechodzenia między zasobnikami i węzłami, co zmniejsza ryzyko przechwycenia lub naruszenia. Narzędzie WireGuard jest znane ze swojej prostoty i niezawodnej kryptografii, oferuje zaawansowane rozwiązanie do zabezpieczania komunikacji w klastrach usługi AKS.

Szyfrowanie WireGuard dla usługi AKS jest częścią zestawu funkcji Advanced Container Networking Services (ACNS), a jego implementacja jest oparta na cilium.

Ważne

Funkcje usługi AKS w wersji zapoznawczej są dostępne na zasadzie samoobsługi i wymagają zapisania się. Wersje zapoznawcze są udostępniane w wersji "as is" i "jako dostępne" i są wykluczone z umów dotyczących poziomu usług i ograniczonej gwarancji. Wersje zapoznawcze usługi AKS są częściowo objęte pomocą techniczną dla klientów, świadczoną w miarę możliwości. W związku z tym te funkcje nie są przeznaczone do użytku produkcyjnego. Aby uzyskać więcej informacji, zobacz następujące artykuły pomocy technicznej:

Zakres szyfrowania WireGuard

Szyfrowanie WireGuard podczas przesyłania w usłudze AKS jest zaprojektowane do zabezpieczania określonych przepływów ruchu w klastrze Kubernetes. W tej sekcji opisano, które typy ruchu są szyfrowane i które nie są obecnie obsługiwane za pośrednictwem usług Advanced Container Networking Services (ACNS).

Obsługiwane/szyfrowane przepływy ruchu:

  • Ruch pomiędzy podami na węzłach: ruch opuszczający pod na jednym węźle kierowany do podu na innym węźle.

Nieobsługiwane/Niezaszyfrowane przepływy ruchu

  • Ruch między zasobnikami na tym samym węźle: ruch pomiędzy zasobnikami na tym samym węźle
  • Ruch sieciowy węzła: ruch generowany przez sam węzeł przeznaczony do innego węzła

Przegląd architektury

Szyfrowanie WireGuard opiera się na usłudze Azure CNI obsługiwanej przez cilium w celu zabezpieczenia komunikacji między węzłami w systemie rozproszonym. Architektura używa dedykowanego agenta WireGuard, który koordynuje zarządzanie kluczami, konfigurację interfejsu i dynamiczne aktualizacje połączeń równorzędnych. Ta sekcja próbuje podać szczegółowe wyjaśnienie

Diagram projektu WireGuard.

Agent WireGuard

Po uruchomieniu agent Cilium ocenia konfigurację, aby określić, czy szyfrowanie jest włączone. Po wybraniu funkcji WireGuard jako trybu szyfrowania agent inicjuje dedykowany podsystem WireGuard. Agent wireguard jest odpowiedzialny za konfigurowanie i inicjowanie składników wymaganych do wymuszania szyfrowania WireGuard.

Generowanie klucza

Podstawowym wymaganiem do zabezpieczenia komunikacji jest generowanie par kluczy kryptograficznych. Każdy węzeł w klastrze Kubernetes automatycznie wygeneruje unikatową parę kluczy WireGuard podczas fazy inicjowania i dystrybuuje swój klucz publiczny za pomocą adnotacji "network.cilium.io/wg-pub-key" w niestandardowym obiekcie zasobu Kubernetes CiliumNode. Pary kluczy są przechowywane w pamięci i obracane co 120 sekund. Klucz prywatny stanowi poufną tożsamość węzła. Klucz publiczny jest udostępniany węzłom równorzędnym w klastrze w celu odszyfrowywania i szyfrowania ruchu z i do punktów końcowych zarządzanych przez Cilium uruchomionych na tym węźle. Te klucze są zarządzane w całości przez platformę Azure, a nie przez klienta, zapewniając bezpieczną i zautomatyzowaną obsługę bez konieczności ręcznej interwencji. Ten mechanizm zapewnia, że tylko węzły z zweryfikowanymi poświadczeniami mogą uczestniczyć w zaszyfrowanej sieci.

Tworzenie interfejsu

Po zakończeniu procesu generowania kluczy agent WireGuard konfiguruje dedykowany interfejs sieciowy (cilium_wg0). Ten proces obejmuje tworzenie interfejsu i konfigurację przy użyciu wcześniej wygenerowanego klucza prywatnego.

Porównanie z szyfrowaniem sieci wirtualnej

Platforma Azure oferuje wiele opcji zabezpieczania ruchu tranzytowego w usłudze AKS, w tym szyfrowania na poziomie sieci wirtualnej i szyfrowania opartego na usłudze WireGuard. Chociaż oba podejścia zwiększają poufność i integralność ruchu sieciowego, różnią się one zakresem, elastycznością i wymaganiami dotyczącymi wdrażania. Ta sekcja ułatwia zrozumienie, kiedy należy używać poszczególnych rozwiązań.

Użyj szyfrowania sieci wirtualnej

  • Wymagane jest pełne szyfrowanie warstwy sieciowej dla całego ruchu w sieci wirtualnej: Szyfrowanie sieci wirtualnej zapewnia, że cały ruch niezależnie od obciążenia lub warstwy aranżacji jest automatycznie szyfrowany podczas przechodzenia przez sieć wirtualną platformy Azure.

  • Potrzebujesz minimalnego obciążenia związanego z wydajnością: Szyfrowanie sieci wirtualnej używa przyspieszania sprzętowego w konfiguracjach SKU obsługiwanych maszyn wirtualnych, przenosząc proces szyfrowania z systemu operacyjnego na bazowy sprzęt. Ten projekt zapewnia wysoką przepływność przy niskim użyciu procesora CPU.

  • Wszystkie maszyny wirtualne obsługują szyfrowanie sieci wirtualnej: Szyfrowanie sieci wirtualnej zależy od jednostek SKU maszyn wirtualnych, które obsługują niezbędne przyspieszenie sprzętowe. Jeśli infrastruktura składa się całkowicie z obsługiwanych jednostek SKU, szyfrowanie sieci wirtualnej może być bezproblemowo włączone.

  • Konfiguracje sieci usługi AKS obsługują szyfrowanie sieci wirtualnej: Szyfrowanie sieci wirtualnej ma pewne ograniczenia, jeśli chodzi o sieć zasobników AKS. Aby uzyskać więcej informacji, zobacz Scenariusze obsługiwane przez szyfrowanie sieci wirtualnej

Użyj szyfrowania WireGuard, gdy

  • Chcesz upewnić się, że ruch aplikacji jest szyfrowany na wszystkich węzłach szyfrowanie sieci wirtualnych nie szyfruje ruchu między węzłami na tym samym hoście fizycznym.

  • Chcesz ujednolicić szyfrowanie w środowiskach wielochmurowych lub hybrydowych: Narzędzie WireGuard oferuje niezależne od chmury rozwiązanie, które umożliwia spójne szyfrowanie między klastrami działającymi u różnych dostawców chmury lub lokalnie.

  • Nie potrzebujesz ani nie chcesz szyfrować całego ruchu w sieci wirtualnej: Narzędzie WireGuard umożliwia bardziej ukierunkowaną strategię szyfrowania idealną do zabezpieczania poufnych obciążeń bez ponoszenia narzutów związanych z szyfrowaniem całego ruchu.

  • Niektóre jednostki SKU maszyny wirtualnej nie obsługują szyfrowania sieci wirtualnej: Narzędzie WireGuard jest implementowane w oprogramowaniu i działa niezależnie od obsługi sprzętu maszyny wirtualnej, dzięki czemu jest to praktyczna opcja dla środowisk heterogenicznych.

Rozważania dotyczące & ograniczeń

• WireGuard nie jest zgodny ze standardem FIPS . • Szyfrowanie WireGuard nie ma zastosowania do zasobników używających sieci hosta (spec.hostNetwork: true), ponieważ te zasobniki używają tożsamości hosta zamiast posiadania indywidualnych tożsamości.

Ważne

Szyfrowanie WireGuard działa na poziomie oprogramowania, co może powodować opóźnienia i wpływać na wydajność przepływności. Zakres tego wpływu zależy od różnych czynników, w tym rozmiaru maszyny wirtualnej (SKU węzła), konfiguracji sieci i wzorców ruchu aplikacji. Nasz test porównawczy wskazuje, że przepływność jest ograniczona do 1,5 Gb/s z 1500 MTU; jednak wyniki mogą się różnić w zależności od właściwości obciążenia i konfiguracji klastra. Użycie SKU, który obsługuje MTU 3900, spowodowało około 2,5 x wyższą przepływność. Chociaż szyfrowanie WireGuard może być używane wraz z zasadami sieci, może to prowadzić do dalszego obniżenia wydajności, przy mniejszej przepływności i zwiększonym opóźnieniu. W przypadku aplikacji wrażliwych na opóźnienia lub przepływność zdecydowanie zalecamy najpierw ocenę narzędzia WireGuard w środowisku nieprodukcyjnym. Jak zawsze wyniki mogą się różnić w zależności od właściwości obciążenia i konfiguracji klastra.

Pricing

Ważne

Zaawansowane usługi sieciowe kontenerów to oferta płatna. Aby uzyskać więcej informacji na temat cen, zobacz Advanced Container Networking Services — cennik.

Dalsze kroki