Delen via


Beveiligde toegang tot de API-server met behulp van geautoriseerde IP-adresbereiken in Azure Kubernetes Service (AKS)

In dit artikel wordt beschreven hoe u geautoriseerde IP-adresbereiken van de API-server gebruikt om te beperken welke IP-adressen en CIDR's toegang hebben tot eindpunten van het besturingsvlak voor uw AKS-workloads (Azure Kubernetes Service).

Vereiste voorwaarden

Aanbeveling

Vanuit Azure Portal kunt u Azure Copilot gebruiken om wijzigingen aan te brengen in de IP-adressen die toegang hebben tot uw cluster. Zie Werken met AKS-clusters efficiënt met behulp van Azure Copilot voor meer informatie.

Beperkingen en overwegingen

  • Deze functie wordt alleen ondersteund in de Standard SKU-load balancer voor clusters die na oktober 2019 zijn gemaakt. Bestaande clusters in de Load Balancer basic SKU waarvoor de functie is ingeschakeld, blijven werken als de Kubernetes-versie en het besturingsvlak worden bijgewerkt. U kunt deze clusters echter niet migreren naar de Standard SKU-load balancer.
  • U kunt deze functie niet gebruiken met privéclusters.
  • Wanneer u deze functie gebruikt met clusters die openbare IP-adressen van Node gebruiken, moeten de knooppuntgroepen met behulp van openbare IP-adressen van Node openbare IP-voorvoegsels gebruiken. U moet de openbare IP-voorvoegsels toevoegen als geautoriseerde reeksen.
  • U kunt maximaal 200 geautoriseerde IP-bereiken opgeven. Als u deze limiet wilt overschrijden, kunt u overwegen om VNet-integratie van API Server te gebruiken, die maximaal 2000 geautoriseerde IP-bereiken ondersteunt.

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. Het kan maximaal twee minuten duren voordat de regels zijn doorgegeven. Wacht tot die tijd wanneer u de verbinding test.

U wordt aangeraden de volgende IP-adresbereiken op te slaan in de configuratie van geautoriseerde IP-adresbereiken van uw API-server:

  • 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.

Een AKS-cluster maken waarvoor geautoriseerde IP-bereiken van de API-server zijn ingeschakeld

Opmerking

Wanneer u geautoriseerde IP-bereiken voor de API-server inschakelt tijdens het maken van het cluster, worden zowel het openbare IP-adres van de API-server als het uitgaande openbare IP-adres van de Standard SKU-load balancer standaard toegestaan, naast de bereiken die u opgeeft.

Speciaal geval: 0.0.0.0/32dit is een speciale waarde waarmee AKS alleen het uitgaande openbare IP-adres van de Standard SKU-load balancer toegang geeft tot de API-server. De 0.0.0.0/32 waarde fungeert als een tijdelijke aanduiding die:

  • Hiermee schakelt u het standaardgedrag uit van het toestaan van extra IP-adresbereiken voor clients.
  • Hiermee beperkt u de toegang van de API-server tot alleen het eigen uitgaande IP-adres van het cluster.
  • Is handig voor scenario's waarin u wilt dat het cluster zelf beheert, maar externe toegang blokkeert.

Wanneer u een cluster maakt waarvoor geautoriseerde IP-bereiken voor de API-server zijn ingeschakeld, geeft u een lijst met geautoriseerde openbare IP-adresbereiken op. Wanneer u een CIDR-bereik opgeeft, moet u het netwerkadres (eerste IP-adres in het bereik) gebruiken. Als u bijvoorbeeld het bereik 137.117.106.88137.117.106.95wilt toestaan, moet u opgeven 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 en kan het IP-adresbereik 73.140.245.0/24 toegang krijgen tot de API-server:

    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
    
  • Maak een AKS-cluster met geautoriseerde IP-bereiken van de API-server die zijn ingeschakeld met behulp van de New-AzAksCluster cmdlet met de -ApiServerAccessAuthorizedIpRange parameter. In het volgende voorbeeld wordt een cluster met de naam myAKSCluster gemaakt in de resourcegroep met de naam myResourceGroup en kan het IP-adresbereik 73.140.245.0/24 toegang krijgen tot de API-server:

    New-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -NodeVmSetType VirtualMachineScaleSets -LoadBalancerSku Standard -ApiServerAccessAuthorizedIpRange '73.140.245.0/24' -GenerateSshKey
    
  1. Selecteer op de startpagina van de Azure-portalEen resource maken>Containers>Azure Kubernetes Service (AKS).
  2. Configureer indien nodig de clusterinstellingen.
  3. Selecteer in de sectie Netwerken onder Openbare toeganggeautoriseerde IP-bereiken instellen.
  4. Voer voor IP-bereiken opgeven de IP-adresbereiken in die u wilt autoriseren voor toegang tot de API-server.
  5. Configureer zo nodig de rest van de clusterinstellingen.
  6. Wanneer u klaar bent, selecteert u Beoordelen en maken> om het cluster te maken.

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, kan het IP-adresbereik 73.140.245.0/24 toegang krijgen tot de API-server en worden twee uitgaande IP-adressen voor de Standard SKU-load balancer opgegeven. Vervang de tijdelijke aanduidingen <public-ip-id-1> en <public-ip-id-2> door de werkelijke resource-id's van uw openbare IP-adressen.

    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

  • 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
    
  • 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 -ApiServerAccessAuthorizedIpRange 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:

    New-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -NodeVmSetType VirtualMachineScaleSets -LoadBalancerSku Standard -ApiServerAccessAuthorizedIpRange '0.0.0.0/32' -GenerateSshKey
    
  1. Selecteer op de startpagina van de Azure-portalEen resource maken>Containers>Azure Kubernetes Service (AKS).
  2. Configureer indien nodig de clusterinstellingen.
  3. Selecteer in de sectie Netwerken onder Openbare toeganggeautoriseerde IP-bereiken instellen.
  4. Voer voor IP-bereiken opgeven in 0.0.0.0/32. Met deze instelling is alleen het uitgaande openbare IP-adres van de Standard SKU-load balancer toegestaan.
  5. Configureer zo nodig de rest van de clusterinstellingen.
  6. Wanneer u klaar bent, selecteert u Beoordelen en maken> om het cluster te maken.

De geautoriseerde IP-bereiken van de API-server op een bestaand cluster 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 en wordt het IP-adresbereik bijgewerkt naar 73.140.245.0/24:

    az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges 73.140.245.0/24
    

Meerdere IP-adresbereiken toestaan

Als u meerdere IP-adresbereiken wilt toestaan, kunt u verschillende IP-adressen weergeven, gescheiden door komma's.

  • Werk de api-adresbereiken van een bestaande clusterserver bij om meerdere IP-adresbereiken toe te staan 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 en kunnen meerdere IP-adresbereiken worden toegestaan:

    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
    
  • Werk de geautoriseerde IP-adresbereiken van de API-server van een bestaande cluster bij door gebruik te maken van de Set-AzAksCluster cmdlet en de -ApiServerAccessAuthorizedIpRange 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 en wordt het IP-adresbereik bijgewerkt naar 73.140.245.0/24:

    Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange '73.140.245.0/24'
    
  1. Navigeer naar Azure Portal en selecteer het AKS-cluster dat u wilt bijwerken.
  2. Selecteer Netwerken in het servicemenu onder Instellingen.
  3. Selecteer Beheren onder Resource-instellingen.
  4. Werk de geautoriseerde IP-bereiken indien nodig bij op de pagina Geautoriseerde IP-bereiken .
  5. Wanneer u klaar bent, selecteert u Opslaan.

Geautoriseerde IP-bereiken van API-server uitschakelen op een bestaand cluster

  • Schakel geautoriseerde IP-bereiken van de API-server 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 ""
    
  • Schakel geautoriseerde IP-bereiken van de API-server uit met behulp van de Set-AzAksCluster cmdlet en geef een leeg bereik '' op voor de -ApiServerAccessAuthorizedIpRange parameter.

    Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange ''
    
  1. Navigeer naar Azure Portal en selecteer het AKS-cluster dat u wilt bijwerken.
  2. Selecteer Netwerken in het servicemenu onder Instellingen.
  3. Selecteer Beheren onder Resource-instellingen.
  4. Schakel op de pagina Geautoriseerde IP-bereiken het selectievakje Geautoriseerde IP-bereiken instellen uit.
  5. Selecteer Opslaan.

Geautoriseerde IP-bereiken van bestaande API-server zoeken

  • Gebruik de az aks show opdracht met de parameter --query ingesteld op apiServerAccessProfile.authorizedIpRanges om bestaande geautoriseerde IP-bereiken van de API-server te vinden.

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

    Voorbeelduitvoer:

    [
      "73.140.245.0/24"
    ]
    
  • Zoek met behulp van de cmdlet bestaande geautoriseerde IP-bereiken van de Get-AzAksCluster API-server.

    Get-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster | Select-Object -ExpandProperty ApiServerAccessProfile
    

    Voorbeelduitvoer:

    AuthorizedIPRanges: {73.140.245.0/24}
    ...
    
  1. Navigeer naar Azure Portal en selecteer uw AKS-cluster.

  2. Selecteer Netwerken in het servicemenu onder Instellingen. De bestaande geautoriseerde IP-bereiken van de API-server worden vermeld onder Resource-instellingen.

    Schermopname van de geautoriseerde IP-bereiken van de API-server in Azure Portal.

Toegang tot de API-server vanaf uw ontwikkelcomputer, hulpprogramma's of automatisering

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. Bij deze optie wordt ervan uitgegaan dat uw omgeving een firewall heeft met het betreffende netwerk en dat u de IP-adressen van de firewall hebt toegevoegd aan het geautoriseerde bereik. Op dezelfde manier, als u tunneling van het AKS-subnet naar het firewallsubnet heeft geforceerd, werkt de jumpbox ook in het clustersubnet.

Opmerking

In het volgende voorbeeld wordt een extra IP-adres toegevoegd aan de goedgekeurde reeks. Het bevat nog steeds het bestaande IP-adres. Als u uw bestaande IP-adres niet opneemt, wordt het door dit commando vervangen door het nieuwe adres in plaats van aan de toegestane reeksen toegevoegd te worden.

  1. Haal uw IP-adres op en stel dit in op een omgevingsvariabele 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 de az aks update opdracht met de --api-server-authorized-ip-ranges parameter. In het volgende voorbeeld wordt uw huidige IP-adres toegevoegd aan de bestaande IP-adresbereiken van de API-server in het cluster met de naam myAKSCluster in de resourcegroep met de naam myResourceGroup:

    az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges $CURRENT_IP/24,73.140.245.0/24
    
  1. Haal uw IP-adres op en stel dit in op een omgevingsvariabele 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 de Set-AzAksCluster cmdlet met de -ApiServerAccessAuthorizedIpRange parameter. In het volgende voorbeeld wordt uw huidige IP-adres toegevoegd aan de bestaande IP-adresbereiken van de API-server in het cluster met de naam myAKSCluster in de resourcegroep met de naam myResourceGroup:

    Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange '$CURRENT_IP/24,73.140.245.0/24'
    

Een andere optie is om de volgende opdracht op Windows-systemen te gebruiken om het openbare IPv4-adres op te halen:

Invoke-RestMethod http://ipinfo.io/json | Select -exp ip

U kunt ook de stappen volgen in Uw IP-adres zoeken of zoeken op wat is mijn IP-adres? in een internetbrowser.

Zie de volgende artikelen voor meer informatie over beveiliging in AKS: