Delen via


Versleuteling tijdens verzending met WireGuard (publieke preview)

Naarmate organisaties steeds vaker afhankelijk zijn van Azure Kubernetes Service (AKS) voor het uitvoeren van containerworkloads, wordt de beveiliging van netwerkverkeer tussen toepassingen en services essentieel, met name in gereguleerde of beveiligingsgevoelige omgevingen. In-transitversleuteling met WireGuard beschermt gegevens bij verplaatsing tussen pods en knooppunten, waardoor risico's van onderschepping of manipulatie worden beperkt. WireGuard staat bekend om zijn eenvoud en robuuste cryptografie en biedt een krachtige oplossing voor het beveiligen van communicatie binnen AKS-clusters.

WireGuard-versleuteling voor AKS maakt deel uit van de functieset Advanced Container Networking Services (ACNS) en de implementatie is gebaseerd op Cilium.

Belangrijk

AKS preview-functies zijn beschikbaar op selfservice, opt-in basis. Previews worden geleverd 'zoals het is' en 'voor zover beschikbaar' en zijn uitgesloten van de serviceovereenkomsten en beperkte garantie. AKS-previews worden gedeeltelijk gedekt door klantondersteuning naar best vermogen. Zodoende zijn deze functies niet bedoeld voor productiegebruik. Zie de volgende ondersteuningsartikelen voor meer informatie:

WireGuard-versleutelingsbereik

WireGuard in transit-versleuteling in AKS is ontworpen om specifieke verkeersstromen binnen uw Kubernetes-cluster te beveiligen. In deze sectie wordt beschreven welke verkeerstypen worden versleuteld en die momenteel niet worden ondersteund via Advanced Container Networking Services (ACNS).

Ondersteunde/versleutelde verkeersstromen:

  • Podverkeer tussen knooppunten: verkeer dat een pod verlaat van het ene knooppunt dat is bestemd voor een pod op een ander knooppunt.

Niet-ondersteunde/niet-versleutelde verkeersstromen

  • Podverkeer met hetzelfde knooppunt: verkeer tussen pods op hetzelfde knooppunt
  • Knooppuntnetwerkverkeer: verkeer dat wordt gegenereerd door het knooppunt zelf bestemd voor een ander knooppunt

Overzicht van architectuur

WireGuard-versleuteling is afhankelijk van Azure CNI, mogelijk gemaakt door cilium , om communicatie tussen knooppunten binnen een gedistribueerd systeem te beveiligen. De architectuur maakt gebruik van een toegewezen WireGuard-agent die sleutelbeheer, interfaceconfiguratie en dynamische peer-updates organiseert. In deze sectie wordt geprobeerd een gedetailleerde uitleg te geven

Diagram van WireGuard-ontwerp.

WireGuard-agent

Bij het opstarten evalueert de Cilium-agent de configuratie om te bepalen of versleuteling is ingeschakeld. Wanneer WireGuard is geselecteerd als de versleutelingsmodus, initialiseert de agent een toegewezen WireGuard-subsysteem. De wireguard-agent is verantwoordelijk voor het configureren en initialiseren van onderdelen die vereist zijn voor het afdwingen van WireGuard-versleuteling.

Sleutelgeneratie

Een fundamentele vereiste voor het beveiligen van communicatie is het genereren van cryptografische sleutelparen. Elk knooppunt in het Kubernetes-cluster genereert automatisch een uniek WireGuard-sleutelpaar tijdens de initialisatiefase en distribueert de openbare sleutel via de aantekening 'network.cilium.io/wg-pub-key' in het aangepaste Kubernetes CiliumNode-resourceobject. De sleutelparen worden in het geheugen opgeslagen en elke 120 seconden geroteerd. De persoonlijke sleutel fungeert als de vertrouwelijke identiteit van het knooppunt. De openbare sleutel wordt gedeeld met de peerknooppunten in het cluster om verkeer te ontsleutelen en te versleutelen van en naar door Cilium beheerde eindpunten die op dat knooppunt worden uitgevoerd. Deze sleutels worden volledig beheerd door Azure, niet door de klant, en zorgen voor veilige en geautomatiseerde verwerking zonder handmatige tussenkomst. Dit mechanisme zorgt ervoor dat alleen knooppunten met gevalideerde referenties kunnen deelnemen aan het versleutelde netwerk.

Interface maken

Zodra het proces voor het genereren van sleutels is afgerond, configureert de WireGuard-agent een toegewezen netwerkinterface (cilium_wg0). Dit proces omvat het maken en configureren van de interface met de eerder gegenereerde persoonlijke sleutel.

Vergelijking met versleuteling van virtuele netwerken

Azure biedt meerdere opties voor het beveiligen van in-transitverkeer in AKS, waaronder versleuteling op virtueel netwerkniveau en op WireGuard gebaseerde versleuteling. Hoewel beide benaderingen de vertrouwelijkheid en integriteit van netwerkverkeer verbeteren, verschillen ze in bereik, flexibiliteit en implementatievereisten. In deze sectie wordt uitgelegd wanneer u elke oplossing moet gebruiken.

Versleuteling van virtueel netwerk gebruiken wanneer

  • U hebt volledige netwerklaagversleuteling nodig voor al het verkeer in het virtuele netwerk: Versleuteling van virtuele netwerken zorgt ervoor dat al het verkeer, ongeacht de workload- of indelingslaag, automatisch wordt versleuteld wanneer het virtuele Azure-netwerk wordt doorlopen.

  • U hebt minimale overhead voor prestaties nodig: Versleuteling van virtuele netwerken maakt gebruik van hardwareversnelling in ondersteunde VM-SKU's, waarbij versleuteling van het besturingssysteem naar de onderliggende hardware wordt offloaden. Dit ontwerp levert een hoge doorvoer met een laag CPU-gebruik.

  • Al uw virtuele machines ondersteunen versleuteling van virtuele netwerken: Versleuteling van virtuele netwerken is afhankelijk van VM-SKU's die ondersteuning bieden voor de benodigde hardwareversnelling. Als uw infrastructuur volledig uit ondersteunde SKU's bestaat, kan versleuteling van virtuele netwerken naadloos worden ingeschakeld.

  • Uw AKS-netwerkconfiguraties ondersteunen versleuteling van virtuele netwerken: Versleuteling van virtuele netwerken heeft enkele beperkingen als het gaat om aks-podnetwerken. Zie Ondersteunde scenario's voor virtuele netwerkversleuteling voor meer informatie

WireGuard-versleuteling gebruiken wanneer

  • U wilt ervoor zorgen dat uw toepassingsverkeer is versleuteld over alle knooppunten. Versleuteling van virtuele netwerken versleutelt geen verkeer tussen knooppunten op dezelfde fysieke host.

  • U wilt versleuteling samenvoegen in meerdere cloud- of hybride omgevingen: WireGuard biedt een cloudagnostische oplossing, waardoor consistente versleuteling mogelijk is voor clusters die worden uitgevoerd in verschillende cloudproviders of on-premises.

  • U hebt niet alle verkeer in het virtuele netwerk nodig of wilt versleutelen: WireGuard maakt een meer gerichte versleutelingsstrategie mogelijk die ideaal is voor het beveiligen van gevoelige workloads zonder dat alle verkeer wordt versleuteld.

  • Sommige van uw VM-SKU's bieden geen ondersteuning voor versleuteling van virtuele netwerken: WireGuard wordt geïmplementeerd in software en werkt ongeacht de hardwareondersteuning van de VM, waardoor het een praktische optie is voor heterogene omgevingen.

Overwegingen & beperkingen

• WireGuard is niet compatibel met FIPS . • WireGuard-versleuteling is niet van toepassing op pods die gebruikmaken van hostnetwerken (spec.hostNetwork: true) omdat deze pods de hostidentiteit gebruiken in plaats van afzonderlijke identiteiten.

Belangrijk

WireGuard-versleuteling werkt op softwareniveau, wat latentie en invloed kan hebben op de doorvoerprestaties. De omvang van deze impact is afhankelijk van verschillende factoren, waaronder VM-grootte (knooppunt-SKU), netwerkconfiguratie en verkeerspatronen van toepassingen. Onze benchmarking geeft aan dat de doorvoer is beperkt tot 1,5 Gbps met een MTU van 1500; De resultaten kunnen echter variëren, afhankelijk van de kenmerken van de werkbelasting en de clusterconfiguratie. Het gebruik van een SKU die MTU 3900 ondersteunt, resulteert in ongeveer 2,5x hogere doorvoer. Hoewel WireGuard-versleuteling naast netwerkbeleid kan worden gebruikt, kan dit leiden tot verdere prestatievermindering, met verminderde doorvoer en een verhoogde latentie. Voor toepassingen die gevoelig zijn voor latentie of doorvoer, raden we u ten zeerste aan WireGuard te evalueren in een niet-productieomgeving. Zoals altijd kunnen de resultaten variëren op basis van workloadkenmerken en clusterconfiguratie.

Pricing

Belangrijk

Advanced Container Networking Services is een betaald aanbod. Zie Advanced Container Networking Services - Prijzen voor meer informatie over prijzen.

Volgende stappen