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

Gebruik in de Azure portal Azure Copilot om de IP-adressen te wijzigen die toegang hebben tot uw cluster. Zie Werken met AKS-clusters efficiënt met behulp van Azure Copilot voor meer informatie.

Beperkingen en overwegingen

  • AKS ondersteunt deze functie alleen met de Standard SKU load balancer. AKS biedt geen ondersteuning meer voor de Load Balancer basic SKU. Als u een bestaand cluster hebt dat gebruikmaakt van de Basic-SKU, migreert u naar de Standard-SKU. Voor de migratie is downtime vereist en zijn aanvullende vereisten vereist.
  • U kunt deze functie niet gebruiken met privéclusters.
  • Voor clusters die openbare IP-adressen van knooppunten gebruiken, moet elke knooppuntgroep met openbare IP-adressen openbare IP-voorvoegsels gebruiken. Voeg deze voorvoegsels toe als geautoriseerde bereiken.
  • 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 de onderliggende Kubernetes-API's beschikbaar. Beheerhulpprogramma's zoals kubectl en het Kubernetes-dashboard communiceren met het cluster via deze API-server. AKS biedt een besturingsvlak met één tenant met een toegewezen API-server en wijst de server standaard een openbaar IP-adres toe. U kunt de toegang beheren met behulp van kubernetes op rollen gebaseerd toegangsbeheer (Kubernetes RBAC) of Azure RBAC.

Schakel geautoriseerde IP-bereiken in om de openbaar toegankelijke AKS-besturingsvlak-API-server te beveiligen. Geautoriseerde IP-bereiken staan alleen gedefinieerde IP-adresbereiken toe om te communiceren met de API-server. De API-server blokkeert aanvragen van IP-adressen die niet zijn opgenomen in de geautoriseerde bereiken. Het kan maximaal twee minuten duren voordat de regels zijn doorgegeven. Wacht maximaal twee minuten voordat 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).
  • De IP-adresbereiken voor netwerken die u gebruikt om het cluster te 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, voegt AKS het openbare IP-adres van de API-server en het uitgaande openbare IP-adres van de Standard SKU-load balancer standaard toe aan de lijst met geautoriseerde IP-bereiken, naast eventuele bereiken die u opgeeft.

Speciaal geval: 0.0.0.0/32de 0.0.0.0/32 tijdelijke aanduiding geeft AKS toestemming om alleen het uitgaande openbare IP-adres van de Standard SKU-load balancer toegang te geven tot de API-server. De tijdelijke aanduiding heeft het volgende gedrag:

Gedrag Description
Extra IP-bereiken van client Hiermee schakelt u het standaardgedrag uit van het toestaan van extra IP-adresbereiken voor clients.
Toegang tot API-server Hiermee beperkt u de toegang van de API-server tot alleen het eigen uitgaande IP-adres van het cluster.
Zelfbeheer Hiermee kan het cluster zelf beheren terwijl externe toegang wordt geblokkeerd.

Als u een cluster wilt maken waarvoor geautoriseerde IP-bereiken voor de API-server zijn ingeschakeld, geeft u een lijst met geautoriseerde openbare IP-adresbereiken op. Gebruik voor een CIDR-bereik het netwerkadres, het eerste IP-adres in het bereik. Als u bijvoorbeeld het bereik 137.117.106.88137.117.106.95wilt toestaan, geeft u 137.117.106.88/29op.

Gebruik de az aks create opdracht met de --api-server-authorized-ip-ranges parameter om een AKS-cluster te maken waarvoor geautoriseerde IP-bereiken van de API-server zijn ingeschakeld. 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

Gebruik de New-AzAksCluster cmdlet met de -ApiServerAccessAuthorizedIpRange parameter om een AKS-cluster te maken waarvoor geautoriseerde IP-bereiken van de API-server zijn ingeschakeld. 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 voor een Standard SKU-load balancer opgeven met behulp van Azure CLI

Wanneer u een cluster maakt waarvoor geautoriseerde IP-bereiken van de API-server zijn ingeschakeld, kunt u ook de uitgaande IP-adressen of voorvoegsels opgeven met behulp van de --load-balancer-outbound-ips of --load-balancer-outbound-ip-prefixes parameters. AKS staat deze IP-adressen toe naast de IP-adressen in de --api-server-authorized-ip-ranges parameter.

Gebruik de --load-balancer-outbound-ips parameter om een AKS-cluster te maken waarvoor geautoriseerde IP-bereiken voor de API-server zijn ingeschakeld en geef de uitgaande IP-adressen op voor de Load Balancer van de Standard SKU. In het volgende voorbeeld wordt een cluster met de naam myAKSCluster gemaakt in de resourcegroep met de naam myResourceGroup, toegang 73.140.245.0/24 tot de API-server en worden twee uitgaande IP-adressen voor de Standard SKU-load balancer opgegeven. Vervang en <public-ip-id-2> door <public-ip-id-1> de 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

Gebruik de --api-server-authorized-ip-ranges parameter om een AKS-cluster te maken waarmee alleen het uitgaande openbare IP-adres van de Standard SKU-load balancer toegang heeft tot de API-server. In het volgende voorbeeld wordt een cluster met de naam myAKSCluster gemaakt in de resourcegroep met de naam myResourceGroup:

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

Gebruik de -ApiServerAccessAuthorizedIpRange parameter om een AKS-cluster te maken waarmee alleen het uitgaande openbare IP-adres van de Standard SKU-load balancer toegang heeft tot de API-server. In het volgende voorbeeld wordt een cluster met de naam myAKSCluster gemaakt in de resourcegroep met de naam myResourceGroup:

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

Gebruik de az aks update opdracht met de --api-server-authorized-ip-ranges parameter om de geautoriseerde IP-adresbereiken van een clusterserver bij te werken. In het volgende voorbeeld wordt het geautoriseerde bereik 73.140.245.0/24 ingesteld op 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 73.140.245.0/24

Meerdere IP-adresbereiken toestaan met behulp van Azure CLI

Als u meerdere IP-adresbereiken wilt toestaan, scheidt u deze met komma's.

Gebruik de az aks update opdracht met de --api-server-authorized-ip-ranges parameter om meerdere IP-adresbereiken te autoriseren. In het volgende voorbeeld wordt het cluster met de naam myAKSCluster bijgewerkt in de resourcegroep met de naam myResourceGroup:

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

Gebruik de Set-AzAksCluster cmdlet met de -ApiServerAccessAuthorizedIpRange parameter om de geautoriseerde IP-adresbereiken van een clusterserver bij te werken. In het volgende voorbeeld wordt het geautoriseerde bereik 73.140.245.0/24 ingesteld op het cluster met de naam myAKSCluster in de resourcegroep met de naam myResourceGroup:

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

Als u geautoriseerde IP-bereiken van de API-server wilt uitschakelen, gebruikt u de az aks update opdracht en geeft u een leeg bereik "" voor de --api-server-authorized-ip-ranges parameter op.

az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges ""

Als u geautoriseerde IP-bereiken van de API-server wilt uitschakelen, gebruikt u de Set-AzAksCluster cmdlet en geeft u een leeg bereik '' voor de -ApiServerAccessAuthorizedIpRange parameter op.

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 opdracht waarop de az aks show--query parameter is ingesteld om bestaande IP-bereiken van de API-server te apiServerAccessProfile.authorizedIpRangesvinden.

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

Voorbeelduitvoer:

[
    "73.140.245.0/24"
]

Gebruik de cmdlet om bestaande IP-adresbereiken van de Get-AzAksCluster API-server te vinden.

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.

    In de sectie Resource-instellingen op de pagina Netwerken worden de momenteel geconfigureerde geautoriseerde IP-bereiken weergegeven.

    Schermopname van geautoriseerde IP-bereiken onder Resource-instellingen in de Azure-portal.

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

Als u toegang wilt krijgen tot de API-server vanaf een ontwikkelcomputer, hulpprogramma of automatiseringssysteem, voegt u het openbare IP-adres toe aan de geautoriseerde IP-bereiken van het cluster.

U kunt ook een jumpbox configureren met de benodigde hulpprogramma's in een afzonderlijk subnet in het virtuele netwerk van de firewall en de IP-adressen van de firewall toevoegen aan de geautoriseerde bereiken. Als het AKS-clustersubnet geforceerde tunneling via de firewall gebruikt, kunt u in plaats daarvan die jumpbox in het subnet van het AKS-cluster plaatsen.

Opmerking

In het volgende voorbeeld blijft het bestaande geautoriseerde bereik behouden en wordt een ander IP-adres toegevoegd. Als u een bestaand IP-adres weglaat, vervangt de opdracht dit door het nieuwe bereik.

  1. Voer de volgende opdracht uit om uw IP-adres op te halen en in te stellen als een omgevingsvariabele:

    # Retrieve your IP address
    CURRENT_IP=$(dig +short "myip.opendns.com" "@resolver1.opendns.com")
    
  2. Gebruik de az aks update opdracht met de --api-server-authorized-ip-ranges parameter om uw IP-adres toe te voegen aan de geautoriseerde bereiken. In het volgende voorbeeld wordt uw huidige IP-adres toegevoegd aan de bestaande bereiken 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/32,73.140.245.0/24
    
  1. Voer de volgende opdracht uit om uw IP-adres op te halen en in te stellen als een omgevingsvariabele:

    # Retrieve your IP address
    $CURRENT_IP = (Invoke-RestMethod -Uri 'https://ipinfo.io/json').ip
    
  2. Gebruik de Set-AzAksCluster cmdlet met de -ApiServerAccessAuthorizedIpRange parameter om uw IP-adres toe te voegen aan de geautoriseerde bereiken. In het volgende voorbeeld wordt uw huidige IP-adres toegevoegd aan de bestaande bereiken in het cluster met de naam myAKSCluster in de resourcegroep met de naam myResourceGroup:

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

Zie Uw IP-adres zoeken of zoeken naar wat mijn IP-adres is? in een webbrowser voor een andere manier om uw IP-adres te identificeren.

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