Beveiligde toegang tot de API-server met behulp van geautoriseerde IP-adresbereiken in Azure Kubernetes Service (AKS)
In dit artikel leest u hoe u de functie geautoriseerde IP-adresbereiken van de API-server gebruikt om te beperken welke IP-adressen en CIDR's toegang hebben tot het besturingsvlak.
De Kubernetes-API-server is de kern van het Kubernetes-besturingsvlak en is de centrale manier om met uw clusters te communiceren en te beheren. Om de beveiliging van uw clusters te verbeteren en het risico op aanvallen te minimaliseren, raden we u aan de IP-adresbereiken te beperken die toegang hebben tot de API-server. Hiervoor kunt u de functie geautoriseerde IP-adresbereiken van de API-server gebruiken.
Voordat u begint
- U moet Azure CLI versie 2.0.76 of hoger hebben geïnstalleerd en geconfigureerd. Voer
az --version
uit om de versie te bekijken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren. - Zie het artikel Toegestane IP-adressen en domein-URL's van Azure DevOps voor meer informatie over de IP-adressen die u moet opnemen bij het integreren van uw AKS-cluster met Azure DevOps.
Beperkingen
De functie geautoriseerde IP-bereiken van de API-server heeft de volgende beperkingen:
- De functie geautoriseerde IP-bereiken van de API-server is in oktober 2019 buiten preview verplaatst. Voor clusters die zijn gemaakt nadat de functie uit de preview-versie is verplaatst, wordt deze functie alleen ondersteund op de Load Balancer van de Standard-SKU . Alle bestaande clusters in de Load Balancer van de Basic SKU waarvoor de functie geautoriseerde IP-bereiken van de API-server is ingeschakeld, blijven werken zoals is. Deze clusters kunnen echter niet worden gemigreerd naar een Standard SKU-load balancer. Bestaande clusters blijven werken als de Kubernetes-versie en het besturingsvlak worden bijgewerkt.
- De functie geautoriseerde IP-adresbereiken van de API-server wordt niet ondersteund op privéclusters .
- Wanneer u deze functie gebruikt met clusters die gebruikmaken van openbaar IP-adres van knooppunt, moeten de knooppuntgroepen met openbare IP-adressen gebruikmaken van openbare IP-voorvoegsels. De openbare IP-voorvoegsels moeten worden toegevoegd als geautoriseerde bereiken.
Overzicht van geautoriseerde IP-bereiken van API-server
De Kubernetes API-server maakt onderliggende Kubernetes-API's beschikbaar en biedt de interactie voor beheerhulpprogramma's zoals kubectl
en het Kubernetes-dashboard. AKS biedt een clusterbesturingsvlak met één tenant met een toegewezen API-server. De API-server krijgt standaard een openbaar IP-adres toegewezen. U kunt de toegang beheren met behulp van op rollen gebaseerd toegangsbeheer van Kubernetes (Kubernetes RBAC) of Azure RBAC.
Als u de toegang tot het anderszins toegankelijke AKS-besturingsvlak/API-server wilt beveiligen, kunt u geautoriseerde IP-bereiken inschakelen en gebruiken. Deze geautoriseerde IP-bereiken staan alleen gedefinieerde IP-adresbereiken toe om te communiceren met de API-server. Alle aanvragen die naar de API-server worden gedaan vanaf een IP-adres dat geen deel uitmaakt van deze geautoriseerde IP-bereiken, worden geblokkeerd.
Een AKS-cluster maken waarvoor geautoriseerde IP-bereiken van de API-server zijn ingeschakeld
Belangrijk
Uw cluster maakt standaard gebruik van de Standard SKU-load balancer die u kunt gebruiken om de uitgaande gateway te configureren. Wanneer u geautoriseerde IP-bereiken voor de API-server inschakelt tijdens het maken van het cluster, wordt het openbare IP-adres voor uw cluster standaard toegestaan naast de bereiken die u opgeeft. Als u '' of geen waarde opgeeft voor --api-server-authorized-ip-ranges
, worden geautoriseerde IP-bereiken van API-server uitgeschakeld. Als u PowerShell gebruikt, gebruikt --api-server-authorized-ip-ranges=""
u (met gelijktekens) om eventuele parseringsproblemen te voorkomen.
Notitie
U moet deze bereiken toevoegen aan een acceptatielijst:
- Het uitgaande IP-adres van het cluster (firewall, NAT-gateway of ander adres, afhankelijk van uw uitgaande type).
- Elk bereik dat netwerken vertegenwoordigt waaruit u het cluster gaat beheren.
De bovengrens voor het aantal IP-bereiken dat u kunt opgeven is 200.
Het kan maximaal twee minuten duren voordat de regels zijn doorgegeven. Wacht tot die tijd tijdens het testen van de verbinding.
Wanneer u een cluster maakt waarvoor geautoriseerde IP-bereiken voor de API-server zijn ingeschakeld, gebruikt u de --api-server-authorized-ip-ranges
parameter om een lijst met geautoriseerde openbare IP-adresbereiken op te geven. Wanneer u een CIDR-bereik opgeeft, begint u met het eerste IP-adres in het bereik. 137.117.106.90/29 is bijvoorbeeld een geldig bereik, maar zorg ervoor dat u het eerste IP-adres in het bereik opgeeft, zoals 137.117.106.88/29.
Maak een AKS-cluster met geautoriseerde IP-bereiken van de API-server met behulp van de
az aks create
opdracht met de--api-server-authorized-ip-ranges
parameter. In het volgende voorbeeld wordt een cluster met de naam myAKSCluster gemaakt in de resourcegroep met de naam myResourceGroup , waarbij geautoriseerde IP-bereiken van de API-server zijn ingeschakeld. De toegestane IP-adresbereiken zijn 73.140.245.0/24:az aks create --resource-group myResourceGroup --name myAKSCluster --vm-set-type VirtualMachineScaleSets --load-balancer-sku standard --api-server-authorized-ip-ranges 73.140.245.0/24 --generate-ssh-keys
Uitgaande IP-adressen opgeven voor een Standard SKU-load balancer
Wanneer u een cluster maakt waarvoor geautoriseerde IP-bereiken voor de API-server zijn ingeschakeld, kunt u ook de uitgaande IP-adressen of voorvoegsels voor het cluster opgeven met behulp van de --load-balancer-outbound-ips
of --load-balancer-outbound-ip-prefixes
parameters. Alle IP-adressen in de parameters zijn toegestaan, samen met de IP-adressen in de --api-server-authorized-ip-ranges
parameter.
Maak een AKS-cluster waarvoor geautoriseerde IP-bereiken voor de API-server zijn ingeschakeld en geef de uitgaande IP-adressen voor de Standard SKU-load balancer op met behulp van de
--load-balancer-outbound-ips
parameter. In het volgende voorbeeld wordt een cluster met de naam myAKSCluster gemaakt in de resourcegroep met de naam myResourceGroup waarvoor geautoriseerde IP-bereiken van de API-server zijn ingeschakeld en de uitgaande IP-adressen<public-ip-id-1>
en<public-ip-id-2>
:az aks create --resource-group myResourceGroup --name myAKSCluster --vm-set-type VirtualMachineScaleSets --load-balancer-sku standard --api-server-authorized-ip-ranges 73.140.245.0/24 --load-balancer-outbound-ips <public-ip-id-1>,<public-ip-id-2> --generate-ssh-keys
Alleen het uitgaande openbare IP-adres van de Standard SKU-load balancer toestaan
Wanneer u geautoriseerde IP-bereiken voor de API-server inschakelt tijdens het maken van het cluster, is het uitgaande openbare IP-adres voor de Standard SKU-load balancer voor uw cluster ook standaard toegestaan, naast de bereiken die u opgeeft. Als u alleen het uitgaande openbare IP-adres van de Standard SKU-load balancer wilt toestaan, gebruikt u 0.0.0.0/32 wanneer u de --api-server-authorized-ip-ranges
parameter opgeeft.
Maak een AKS-cluster waarvoor geautoriseerde IP-bereiken voor de API-server zijn ingeschakeld en sta alleen het uitgaande openbare IP-adres van de Standard SKU-load balancer toe met behulp van de
--api-server-authorized-ip-ranges
parameter. In het volgende voorbeeld wordt een cluster met de naam myAKSCluster gemaakt in de resourcegroep met de naam myResourceGroup , waarbij geautoriseerde IP-bereiken van de API-server zijn ingeschakeld en alleen het uitgaande openbare IP-adres van de Standard-SKU-load balancer is toegestaan:az aks create --resource-group myResourceGroup --name myAKSCluster --vm-set-type VirtualMachineScaleSets --load-balancer-sku standard --api-server-authorized-ip-ranges 0.0.0.0/32 --generate-ssh-keys
De geautoriseerde IP-adresbereiken van een bestaande clusterserver bijwerken
Werk de geautoriseerde IP-adresbereiken van een bestaande clusterserver bij met behulp van de
az aks update
opdracht met de--api-server-authorized-ip-ranges
parameter. In het volgende voorbeeld worden geautoriseerde IP-bereiken van de API-server bijgewerkt op het cluster met de naam myAKSCluster in de resourcegroep met de naam myResourceGroup. Het IP-adresbereik dat moet worden geautoriseerd, is 73.140.245.0/24:az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges 73.140.245.0/24
Als u meerdere IP-adresbereiken wilt toestaan, kunt u verschillende IP-adressen weergeven, gescheiden door komma's.
az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges 73.140.245.0/24,193.168.1.0/24,194.168.1.0/24
U kunt ook 0.0.0.0/32 gebruiken bij het opgeven van de
--api-server-authorized-ip-ranges
parameter om alleen het openbare IP-adres van de Standard SKU-load balancer toe te staan.
Geautoriseerde IP-bereiken uitschakelen
Schakel geautoriseerde IP-bereiken uit met behulp van de
az aks update
opdracht en geef een leeg bereik""
op voor de--api-server-authorized-ip-ranges
parameter.az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges ""
Bestaande geautoriseerde IP-bereiken zoeken
Zoek bestaande geautoriseerde IP-bereiken met behulp van de
az aks show
opdracht waarop de--query
parameter is ingesteldapiServerAccessProfile.authorizedIpRanges
.az aks show --resource-group myResourceGroup --name myAKSCluster --query apiServerAccessProfile.authorizedIpRanges
Hoe vind ik mijn IP-adres om in --api-server-authorized-ip-ranges
op te nemen?
U moet uw ontwikkelcomputers, hulpprogramma's of automatiserings-IP-adressen toevoegen aan de AKS-clusterlijst met goedgekeurde IP-bereiken om vanaf daar toegang te krijgen tot de API-server.
Een andere optie is het configureren van een jumpbox met de benodigde hulpprogramma's in een afzonderlijk subnet in het virtuele netwerk van de firewall. Hierbij wordt ervan uitgegaan dat uw omgeving een firewall heeft met het respectieve netwerk en dat u de ip-adressen van de firewall hebt toegevoegd aan geautoriseerde bereiken. Als u ook tunneling van het AKS-subnet naar het firewallsubnet hebt geforceerd, is het ook goed om de jumpbox in het clustersubnet te hebben.
Haal uw IP-adres op met behulp van de volgende opdracht:
# Retrieve your IP address CURRENT_IP=$(dig +short "myip.opendns.com" "@resolver1.opendns.com")
Voeg uw IP-adres toe aan de goedgekeurde lijst met behulp van Azure CLI of Azure PowerShell:
# Add to AKS approved list using Azure CLI az aks update --resource-group $RG --name $AKSNAME --api-server-authorized-ip-ranges $CURRENT_IP/24,73.140.245.0/24 # Add to AKS approved list using Azure PowerShell Set-AzAksCluster -ResourceGroupName $RG -Name $AKSNAME -ApiServerAccessAuthorizedIpRange '$CURRENT_IP/24,73.140.245.0/24'
Notitie
In het bovenstaande voorbeeld wordt nog een IP-adres toegevoegd aan de goedgekeurde bereiken. Houd er rekening mee dat het nog steeds het IP-adres bevat uit de api-server van een cluster die geautoriseerde IP-bereiken heeft. Als u uw bestaande IP-adres niet opneemt, wordt dit vervangen door het nieuwe ip-adres in plaats van het toe te voegen aan de geautoriseerde bereiken. Als u geautoriseerde IP-bereiken wilt uitschakelen, gebruikt az aks update
en geeft u een leeg bereik '' op.
Een andere optie is om de volgende opdracht op Windows-systemen te gebruiken om het openbare IPv4-adres op te halen, of u kunt de stappen volgen in Uw IP-adres zoeken.
Invoke-RestMethod http://ipinfo.io/json | Select -exp ip
U kunt dit adres ook vinden door te zoeken op wat mijn IP-adres is in een internetbrowser.
Servicetags gebruiken voor geautoriseerde IP-bereiken van API Server - (preview)
Servicetags zijn een handige manier om een groep IP-adressen op te geven die overeenkomen met een Kubernetes-service. U kunt servicetags gebruiken om de IP-adressen van Kubernetes-services en specifieke IP-adressen op te geven in de geautoriseerde IP-bereiken voor de API-server door ze te scheiden met een komma.
Beperkingen
- Deze functie is niet compatibel met VNet-integratie van API Server.
Belangrijk
AKS preview-functies zijn beschikbaar op selfservice, opt-in basis. Previews worden geleverd 'zoals is' en 'als beschikbaar' en ze worden uitgesloten van de serviceovereenkomsten en beperkte garantie. AKS-previews worden gedeeltelijk gedekt door klantondersteuning op basis van best effort. Daarom zijn deze functies niet bedoeld voor productiegebruik. Zie de volgende ondersteuningsartikelen voor meer informatie:
De Preview-extensie van Azure CLI installeren
Installeer de Azure CLI Preview-extensie met behulp van de opdracht [az extension add][az-extension-add].
az extension add --name aks-preview
Werk de extensie bij om ervoor te zorgen dat u de nieuwste versie hebt met behulp van de opdracht [az-extension update][az-extension-update].
az extension update --name aks-preview
De vlag geautoriseerd IP-adres van de servicetag registreren
Registreer de functievlag EnableServiceTagAuthorizedIPPreview met behulp van de opdracht [az feature register][az-feature-register].
az feature register --namespace "Microsoft.ContainerService" --name "EnableServiceTagAuthorizedIPPreview"
Het duurt enkele minuten voordat de registratie is voltooid.
Controleer de registratie met behulp van de opdracht [az feature show][az-feature-show].
az feature show --namespace "Microsoft.ContainerService" --name "EnableServiceTagAuthorizedIPPreview"
Een AKS-cluster maken met geautoriseerde IP-adresbereiken voor servicetags
Maak een cluster met geautoriseerde IP-bereiken voor servicetags met behulp van de --api-server-authorized-ip-ranges
parameter met de servicetag AzureCloud
om alle Azure-services toegang te geven tot de API-server en geef een extra IP-adres op.
Notitie
Er is slechts één servicetag toegestaan in de --api-server-authorized-ip-ranges
parameter. U kunt niet meerdere servicetags opgeven.
az aks create --resource-group myResourceGroup \
--name myAKSCluster \
--api-server-authorized-ip-ranges AzureCloud,20.20.20.20
U moet de API-server kunnen krullen van een Azure-VM of Azure-service die deel uitmaakt van de AzureCloud
servicetag.
Volgende stappen
In dit artikel hebt u geautoriseerde IP-adresbereiken voor DE API-server ingeschakeld. Deze benadering maakt deel uit van hoe u een AKS-cluster veilig kunt uitvoeren. Zie Beveiligingsconcepten voor toepassingen en clusters in AKS en aanbevolen procedures voor clusterbeveiliging en upgrades in AKS voor meer informatie.
Azure Kubernetes Service