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

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
    

    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 ingesteld apiServerAccessProfile.authorizedIpRanges.

    az aks show --resource-group myResourceGroup --name myAKSCluster --query apiServerAccessProfile.authorizedIpRanges
    

Hoe vind ik mijn IP-adres om in --api-server-authorized-ip-rangesop 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.

  1. 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")
    
  2. 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.

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.