In dit artikel worden de netwerkmodi voor Azure Kubernetes Service (AKS) en Amazon Elastic Kubernetes Service (Amazon EKS) vergeleken. In het artikel wordt beschreven hoe u de verbindingsbeveiliging met de beheerde API-server van een AKS-cluster en de verschillende opties voor het beperken van openbare netwerktoegang kunt verbeteren.
Notitie
Dit artikel maakt deel uit van een reeks artikelen waarmee professionals die bekend zijn met Amazon EKS , inzicht krijgen in AKS.
Amazon EKS-netwerkmodi
Met Amazon Virtual Private Cloud (Amazon VPC) kunt u AWS-resources (Amazon Web Services) starten in een virtueel netwerk dat bestaat uit openbare en persoonlijke subnetten, of bereiken van IP-adressen in de VPC. Een openbaar subnet host resources die moeten zijn verbonden met internet en een privésubnet fungeert als host voor resources die niet zijn verbonden met het openbare internet. Amazon EKS kan beheerde knooppuntgroepen inrichten in zowel openbare als privésubnetten.
Met toegangsbeheer voor eindpunten kunt u configureren of het API Server-eindpunt bereikbaar is via het openbare internet of via de VPC. EKS biedt verschillende manieren om de toegang tot het clustereindpunt te beheren. U kunt het standaard openbare eindpunt, een privé-eindpunt of beide eindpunten tegelijk inschakelen. Wanneer u het openbare eindpunt inschakelt, kunt u CIDR-beperkingen (Classless Inter-Domain Routing) toevoegen om de CLIENT-IP-adressen te beperken die verbinding kunnen maken met het openbare eindpunt.
Hoe Amazon EKS-knooppunten verbinding maken met het beheerde Kubernetes-besturingsvlak, wordt bepaald door welke eindpuntinstelling voor het cluster is geconfigureerd. U kunt de eindpuntinstellingen op elk gewenst moment wijzigen via de Amazon EKS-console of de API. Zie Toegangsbeheer voor Amazon EKS-clustereindpunten voor meer informatie.
Alleen openbaar eindpunt
Het beschikbaar maken van het besturingsvlak via een openbaar eindpunt is de standaardmodus voor nieuwe Amazon EKS-clusters. Wanneer alleen het openbare eindpunt voor het cluster is ingeschakeld, verlaten Kubernetes API-aanvragen die afkomstig zijn van de Amazon-VPC, zoals het werkknooppunt voor het beheren van de communicatie op het vlak, de VPC, maar verlaten ze het amazonenetwerk niet. Knooppunten kunnen alleen verbinding maken met het besturingsvlak als ze een openbaar IP-adres en een route naar een internetgateway gebruiken, of een route naar een NAT-gateway (Network Address Translation), waar ze het openbare IP-adres van de NAT-gateway kunnen gebruiken.
Openbare en privé-eindpunten
Wanneer zowel het openbare als het privé-eindpunt zijn ingeschakeld, communiceren Kubernetes API-aanvragen vanuit de VPC met het besturingsvlak via de door Amazon EKS beheerde elastische netwerkinterfaces (ENIs) in de VPC. De cluster-API-server is toegankelijk via internet.
Alleen privé-eindpunt
Wanneer alleen het privé-eindpunt is ingeschakeld, moet al het verkeer naar de cluster-API-server, zoals kubectl
of helm
opdrachten, afkomstig zijn van de VPC van het cluster of een verbonden netwerk. Openbare toegang tot de API-server via internet is uitgeschakeld. U kunt deze toegangsmodus implementeren met behulp van AWS Virtual Private Network (AWS VPN) of AWS DirectConnect met de VPC. Als u de toegang tot het eindpunt wilt beperken zonder AWS VPN of DirectConnect, kunt u CIDR-beperkingen toevoegen aan het openbare eindpunt om verbindingen te beperken zonder meer netwerken in te stellen.
Zie Accessing a Private Only API Server (Toegang tot een api-server met alleen privétoegang) voor meer informatie over connectiviteitsopties.
AKS-netwerktoegang tot de API-server
Er zijn twee opties voor het beveiligen van netwerktoegang tot de Kubernetes-API in AKS, een privé-AKS-cluster of geautoriseerde IP-bereiken.
Privé-AKS-cluster
Een privécluster van AKS zorgt ervoor dat het netwerkverkeer tussen de API-server en de knooppuntgroepen binnen het virtuele netwerk blijft. In een privé-AKS-cluster heeft het besturingsvlak of de API-server een intern IP-adres dat alleen toegankelijk is via een privé-eindpunt van Azure dat zich in hetzelfde virtuele netwerk bevindt. Elke virtuele machine (VM) in hetzelfde virtuele netwerk kan privé communiceren met het besturingsvlak via het privé-eindpunt. Het besturingsvlak of de API-server wordt gehost in het door Azure beheerde abonnement, terwijl het AKS-cluster en de bijbehorende knooppuntgroepen zich in het abonnement van de klant bevinden.
In het volgende diagram ziet u een configuratie van een privécluster.
Een Visio-bestand van deze architectuur downloaden.
Als u een privé-AKS-cluster wilt inrichten, maakt de AKS-resourceprovider een privé FQDN (Fully Qualified Domain Name) voor de knooppuntresourcegroep in een privé-DNS-zone. Optioneel kan AKS ook een openbare FQDN maken met een bijbehorende adresrecord (A
) in de openbare DNS-zone van Azure. De agentknooppunten gebruiken de A
record in de privé-DNS-zone om het IP-adres van het privé-eindpunt om te zetten voor communicatie met de API-server.
De AKS-resourceprovider kan de privé-DNS-zone maken in de knooppuntresourcegroep of u kunt de privé-DNS-zone maken en de resource-id doorgeven aan het inrichtingssysteem. U kunt een privécluster maken wanneer u Terraform gebruikt met Azure, Bicep, ARM-sjablonen, Azure CLI, Azure PowerShell-module of Azure REST API om het cluster te maken.
U kunt een openbare FQDN inschakelen voor de API-server tijdens het inrichten of met behulp van de opdracht az aks update met de --enable-public-fqdn
parameter op bestaande clusters. Als u de openbare FQDN inschakelt, moet elke VM die toegang heeft tot de server, zoals een zelf-hostende Agent van Azure DevOps of een GitHub Actions zelf-hostende runner, zich in hetzelfde virtuele netwerk bevinden dat als host fungeert voor het cluster of in een netwerk dat is verbonden via peering van het virtuele netwerk of site-naar-site-VPN.
Voor een privé-AKS-cluster schakelt u de openbare FQDN van de API-server uit. Als u wilt communiceren met het privébesturingsvlak, moet een VM zich in hetzelfde virtuele netwerk bevinden of in een gekoppeld virtueel netwerk met een virtuele netwerkkoppeling naar de privé-DNS-zone. De A
record in de privé-DNS-zone zet de FQDN van de API-server om naar het IP-adres van het privé-eindpunt dat communiceert met het onderliggende besturingsvlak. Zie Een privé Azure Kubernetes Service-cluster maken voor meer informatie.
Implementatieopties voor privéclusters
De AKS-resourceprovider maakt de volgende parameters beschikbaar om de implementatie van een privé-AKS-cluster aan te passen:
authorizedIpRanges
(tekenreeks) geeft toegestane IP-bereiken op in CIDR-indeling.disableRunCommand
(booleaanse waarde) geeft aan of de opdracht voor hetrun
cluster moet worden uitgeschakeld.enablePrivateCluster
(booleaanse waarde) geeft aan of het cluster als privé moet worden gemaakt.enablePrivateClusterPublicFQDN
(booleaanse waarde) geeft aan of een andere, openbare FQDN voor het privécluster moet worden gemaakt.privateDnsZone
(tekenreeks) geeft een privé-DNS-zone op in de knooppuntresourcegroep. Als u geen waarde opgeeft, maakt de resourceprovider de zone. U kunt de volgende waarden opgeven:System
is de standaardwaarde.None
is standaard ingesteld op openbare DNS, zodat AKS geen privé-DNS-zone maakt.<Your own private DNS zone resource ID>
maakt gebruik van een privé-DNS-zone die u maakt in de indelingprivatelink.<region>.azmk8s.io
of<subzone>.privatelink.<region>.azmk8s.io.
In de volgende tabel ziet u de DNS-configuratieopties voor het implementeren van een privé-AKS-cluster:
opties voor Privé-DNS zone | enablePrivateClusterPublicFQDN: true | enablePrivateClusterPublicFQDN: false |
---|---|---|
Systeem | Agentknooppunten en andere VM's in het virtuele netwerk van het AKS-cluster of een virtueel netwerk dat is verbonden met de privé-DNS-zone, gebruiken de record van de privé-DNS-zone A om het privé-IP-adres van het privé-eindpunt om te zetten.Elke andere VM gebruikt de openbare FQDN van de API-server. |
Agentknooppunten en andere VM's in het virtuele netwerk van het AKS-cluster of een virtueel netwerk dat is verbonden met de privé-DNS-zone, gebruiken de record van de privé-DNS-zone A om het privé-IP-adres van het privé-eindpunt om te zetten.Er is geen openbare API-server-FQDN beschikbaar. |
Geen | Alle VM's, inclusief agentknooppunten, gebruiken de openbare FQDN van de API-server die beschikbaar is via een A record in een door Azure beheerde openbare DNS-zone. |
Verkeerde configuratie. Het privé-AKS-cluster heeft ten minste een openbare of een privé-DNS-zone nodig voor de naamomzetting van de API-server. |
<Uw eigen privé-DNS-zoneresource-id> | Agentknooppunten en andere VM's in het virtuele netwerk van het AKS-cluster of een virtueel netwerk dat is verbonden met de privé-DNS-zone, gebruiken de record van de privé-DNS-zone A om het privé-IP-adres van het privé-eindpunt om te zetten.Alle andere VM's gebruiken de openbare FQDN van de API-server. |
Agentknooppunten en andere VM's in het virtuele netwerk van het AKS-cluster of een virtueel netwerk dat is verbonden met de privé-DNS-zone, gebruiken de record van de privé-DNS-zone A om het privé-IP-adres van het privé-eindpunt om te zetten.Er is geen openbare API-server-FQDN beschikbaar. |
Connectiviteit en beheer van privéclusters
Er zijn verschillende opties voor het tot stand brengen van netwerkverbinding met het privécluster.
Maak VM's in hetzelfde virtuele netwerk als het AKS-cluster.
Gebruik VM's in een afzonderlijk virtueel netwerk en stel peering van virtuele netwerken in met het virtuele netwerk van het AKS-cluster.
Gebruik een Azure ExpressRoute- of VPN-verbinding .
Gebruik de Azure CLI-opdracht az aks command invoke om opdrachten en
helm
uit te voerenkubectl
op het privécluster zonder rechtstreeks verbinding te maken met het cluster.Gebruik een azure-privé-eindpuntverbinding .
U kunt een privé-AKS-cluster beheren met behulp van het opdrachtregelprogramma kubectl vanaf een beheer-VM in hetzelfde virtuele netwerk of een gekoppeld virtueel netwerk.
U kunt Azure Bastion in hetzelfde virtuele netwerk of een gekoppeld virtueel netwerk gebruiken om verbinding te maken met een jumpbox-beheer-VM. Azure Bastion is een volledig beheerd PaaS (Platform as a Service) waarmee u verbinding kunt maken met een VM met behulp van uw browser en de Azure Portal. Azure Bastion biedt beveiligde en naadloze RDP- (Remote Desktop Protocol) of SSH-VM-connectiviteit (Secure Shell) via Tls (Transport Layer Security) rechtstreeks vanuit de Azure Portal. Wanneer VM's verbinding maken via Azure Bastion, hebben ze geen openbaar IP-adres, agent of speciale clientsoftware nodig.
U kunt ook az aks command invoke gebruiken om of helm
opdrachten uit te voeren kubectl
op uw privé-AKS-cluster zonder dat u verbinding hoeft te maken met een jumpbox-VM.
Geautoriseerde IP-bereiken
De tweede optie voor het verbeteren van de clusterbeveiliging en het minimaliseren van aanvallen op de API-server is het gebruik van geautoriseerde IP-bereiken. Geautoriseerde IP-adressen beperken de toegang tot het besturingsvlak van een openbaar AKS-cluster tot een bekende lijst met IP-adressen en CDR's. Wanneer u deze optie gebruikt, wordt de API-server nog steeds openbaar weergegeven, maar is de toegang beperkt. Zie Beveiligde toegang tot de API-server met geautoriseerde IP-adresbereiken in Azure Kubernetes Service (AKS) voor meer informatie.
Met de volgende az aks update
Azure CLI-opdracht worden IP-bereiken geautoriseerd:
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--api-server-authorized-ip-ranges 73.140.245.0/24
Overwegingen voor AKS-connectiviteit
Een privécluster van AKS biedt een hogere beveiliging en isolatie dan geautoriseerde IP-adressen. U kunt een bestaand openbaar AKS-cluster echter niet converteren naar een privécluster. U kunt geautoriseerde IP-adressen inschakelen voor elk bestaand AKS-cluster.
U kunt geen geautoriseerde IP-bereiken toepassen op een privé-API-servereindpunt. Geautoriseerde IP-adressen zijn alleen van toepassing op de openbare API-server.
Privéclusters bieden geen ondersteuning voor door Azure DevOps gehoste agents. Overweeg het gebruik van zelf-hostende agents.
Als u Azure Container Registry wilt laten werken met een privé-AKS-cluster, stelt u een privékoppeling in voor het containerregister in het virtuele clusternetwerk. U kunt ook peering instellen tussen het virtuele netwerk van Container Registry en het virtuele netwerk van het privécluster.
Azure Private Link servicebeperkingen zijn van toepassing op privéclusters.
Als u het privé-eindpunt in het klantsubnet van een privécluster verwijdert of wijzigt, werkt het cluster niet meer.
Medewerkers
Dit artikel wordt onderhouden door Microsoft. Het is oorspronkelijk geschreven door de volgende inzenders.
Hoofdauteurs:
- Paolo Salvatori | Principal Service Engineer
- Martin Gjoshevski - Nederland | Senior Service Engineer
- Laura Nicolas - Nederland | Senior Software Engineer
Andere inzenders:
- Chad Kittel | Principal Software Engineer
- Ed-prijs | Senior Content Program Manager
- Theano Petersen - Nederland | Technisch schrijver
Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.
Volgende stappen
- AKS voor Amazon EKS-professionals
- Kubernetes-identiteits- en toegangsbeheer
- Kubernetes-bewaking en -logboekregistratie
- Opslagopties voor een Kubernetes-cluster
- Kostenbeheer voor Kubernetes
- Beheer van Kubernetes-knooppunten en -knooppuntgroepen
- Clusterbeheer
Gerelateerde resources
De volgende verwijzingen bevatten koppelingen naar documentatie en automatiseringsvoorbeelden voor het implementeren van AKS-clusters met een beveiligde API:
- Een privé-AKS-cluster maken met een openbare DNS-zone
- Een privé-Azure Kubernetes Service-cluster maken met Behulp van Terraform en Azure DevOps
- Een openbaar of persoonlijk Azure Kubernetes Service-cluster maken met Azure NAT Gateway en Azure Application Gateway
- Privé-eindpunten gebruiken met een privé-AKS-cluster
- Inleiding tot Azure Private Link
- Inleiding tot beveiligde netwerkinfrastructuur met Azure-netwerkbeveiliging