Säker åtkomst till API-servern med hjälp av auktoriserade IP-adressintervall i Azure Kubernetes Service (AKS)

Den här artikeln visar hur du använder API-serverauktoriserade IP-adressintervall för att begränsa vilka IP-adresser och CIDR:er som kan komma åt kontrollplansslutpunkter för dina AkS-arbetsbelastningar (Azure Kubernetes Service).

Förutsättningar

  • Azure CLI version 2.0.76 eller senare. Kontrollera din version genom att köra az --version. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.
  • Den senaste versionen av Azure PowerShell. Installationsinstruktioner finns i Installera Azure PowerShell.
  • Information om vilka IP-adresser som ska inkluderas när du integrerar ditt AKS-kluster med Azure DevOps finns i Tillåtna IP-adresser och domän-URL:er.

Tips/Råd

I Azure-portalen använder du Azure Copilot för att ändra DE IP-adresser som kan komma åt klustret. Mer information finns i Arbeta med AKS-kluster effektivt med Hjälp av Azure Copilot.

Begränsningar och överväganden

  • AKS stöder endast den här funktionen med Standard SKU-lastbalanseraren. AKS stöder inte längre Basic SKU-lastbalanseraren. Om du har ett befintligt kluster som använder basic-SKU :n migrerar du till standard-SKU:n. Migreringen kräver stilleståndstid och har ytterligare förutsättningar.
  • Du kan inte använda den här funktionen med privata kluster.
  • För kluster som använder offentliga NOD-IP-adresser måste varje nodpool med offentliga IP-adresser använda offentliga IP-prefix. Lägg till dessa prefix som auktoriserade intervall.
  • Du kan ange upp till 200 auktoriserade IP-intervall. Om du vill överskrida den här gränsen kan du överväga att använda API Server VNet-integrering, som stöder upp till 2 000 auktoriserade IP-intervall.

Översikt över API-serverauktoriserade IP-intervall

Kubernetes API-servern exponerar underliggande Kubernetes-API:er. Hanteringsverktyg som kubectl och Kubernetes-instrumentpanelen interagerar med klustret via den här API-servern. AKS tillhandahåller ett kontrollplan med en enda klientorganisation med en dedikerad API-server och tilldelar servern en offentlig IP-adress som standard. Du kan styra åtkomsten med hjälp av Rollbaserad åtkomstkontroll för Kubernetes (Kubernetes RBAC) eller Azure RBAC.

Om du vill skydda den annars offentligt tillgängliga API-servern för AKS-kontrollplan aktiverar du auktoriserade IP-intervall. Auktoriserade IP-intervall tillåter endast att definierade IP-adressintervall kommunicerar med API-servern. API-servern blockerar begäranden från IP-adresser som inte ingår i de auktoriserade intervallen. Det kan ta upp till två minuter att sprida reglerna. Vänta upp till två minuter innan du testar anslutningen.

Vi rekommenderar att du inkluderar följande IP-adressintervall i konfigurationen av API-serverauktoriserade IP-intervall:

  • Klustrets utgående IP-adress (brandvägg, NAT-gateway eller annan adress, beroende på din utgående typ).
  • IP-adressintervallen för nätverk som du använder för att administrera klustret.

Skapa ett AKS-kluster med API-serverauktoriserade IP-intervall aktiverade

Anteckning

När du aktiverar API-serverauktoriserade IP-intervall när klustret skapas lägger AKS till den offentliga IP-adressen för API-servern och den utgående offentliga IP-adressen för Standard SKU-lastbalanseraren i listan över auktoriserade IP-intervall som standard, utöver de intervall som du anger.

Specialfall – 0.0.0.0/32: Platshållaren 0.0.0.0/32 säger till AKS att endast tillåta att den utgående offentliga IP-adressen för Standard SKU-lastbalanseraren får åtkomst till API-servern. Platshållaren har följande beteenden:

Behavior Description
Extra klient-IP-intervall Inaktiverar standardbeteendet för att tillåta extra klient-IP-intervall.
API-serveråtkomst Begränsar API-serveråtkomsten till endast klustrets egen utgående IP-adress.
Självhantering Låter klustret självhantera samtidigt som extern åtkomst blockeras.

Om du vill skapa ett kluster med API-serverauktoriserade IP-intervall aktiverade anger du en lista över auktoriserade offentliga IP-adressintervall. För ett CIDR-intervall använder du nätverksadressen, som är den första IP-adressen i intervallet. Om du till exempel vill tillåta intervallet 137.117.106.88 till 137.117.106.95anger du 137.117.106.88/29.

az aks create Använd kommandot med parametern --api-server-authorized-ip-ranges för att skapa ett AKS-kluster med API-serverauktoriserade IP-intervall aktiverade. I följande exempel skapas ett kluster med namnet myAKSCluster i resursgruppen med namnet myResourceGroup och gör att IP-adressintervallet 73.140.245.0/24 kan komma åt API-servern:

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

Använd cmdleten New-AzAksCluster med parametern -ApiServerAccessAuthorizedIpRange för att skapa ett AKS-kluster med API-serverauktoriserade IP-intervall aktiverade. I följande exempel skapas ett kluster med namnet myAKSCluster i resursgruppen med namnet myResourceGroup och gör att IP-adressintervallet 73.140.245.0/24 kan komma åt API-servern:

New-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -NodeVmSetType VirtualMachineScaleSets -LoadBalancerSku Standard -ApiServerAccessAuthorizedIpRange '73.140.245.0/24' -GenerateSshKey
  1. På startsidan Azure Portal väljer du
  2. Konfigurera klusterinställningarna efter behov.
  3. I avsnittet Nätverk under Offentlig åtkomst väljer du Ange auktoriserade IP-intervall.
  4. För Ange IP-intervall anger du de IP-adressintervall som du vill auktorisera för åtkomst till API-servern.
  5. Konfigurera resten av klusterinställningarna efter behov.
  6. När du är klar väljer du Granska + skapa>Skapa för att skapa klustret.

Ange utgående IP-adresser för en Standard SKU-lastbalanserare med hjälp av Azure CLI

När du skapar ett kluster med API-serverauktoriserade IP-intervall aktiverade kan du även ange dess utgående IP-adresser eller prefix med hjälp av parametrarna --load-balancer-outbound-ips eller --load-balancer-outbound-ip-prefixes . AKS tillåter dessa IP-adresser utöver IP-adresserna i parametern --api-server-authorized-ip-ranges .

Använd parametern --load-balancer-outbound-ips för att skapa ett AKS-kluster med API-serverauktoriserade IP-intervall aktiverade och ange utgående IP-adresser för Standard SKU-lastbalanseraren. I följande exempel skapas ett kluster med namnet myAKSCluster i resursgruppen myResourceGroup, tillåter 73.140.245.0/24 åtkomst till API-servern och anger två utgående IP-adresser för Standard SKU-lastbalanseraren. Ersätt <public-ip-id-1> och <public-ip-id-2> med resurs-ID:t för dina offentliga IP-adresser.

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

Tillåt endast den utgående offentliga IP-adressen för Standard SKU-lastbalanseraren

Använd parametern --api-server-authorized-ip-ranges för att skapa ett AKS-kluster som endast tillåter att den utgående offentliga IP-adressen för Standard SKU-lastbalanseraren får åtkomst till API-servern. I följande exempel skapas ett kluster med namnet myAKSCluster i resursgruppen 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

Använd parametern -ApiServerAccessAuthorizedIpRange för att skapa ett AKS-kluster som endast tillåter att den utgående offentliga IP-adressen för Standard SKU-lastbalanseraren får åtkomst till API-servern. I följande exempel skapas ett kluster med namnet myAKSCluster i resursgruppen myResourceGroup:

New-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -NodeVmSetType VirtualMachineScaleSets -LoadBalancerSku Standard -ApiServerAccessAuthorizedIpRange '0.0.0.0/32' -GenerateSshKey
  1. På startsidan Azure Portal väljer du
  2. Konfigurera klusterinställningarna efter behov.
  3. I avsnittet Nätverk under Offentlig åtkomst väljer du Ange auktoriserade IP-intervall.
  4. För Ange IP-intervall anger du 0.0.0.0/32. Den här inställningen tillåter endast den utgående offentliga IP-adressen för Standard SKU-lastbalanseraren.
  5. Konfigurera resten av klusterinställningarna efter behov.
  6. När du är klar väljer du Granska + skapa>Skapa för att skapa klustret.

Uppdatera API-serverns auktoriserade IP-intervall i ett befintligt kluster

az aks update Använd kommandot med parametern --api-server-authorized-ip-ranges för att uppdatera ett klusters API-serverauktoriserade IP-intervall. I följande exempel anges det auktoriserade intervallet till 73.140.245.0/24 för klustret med namnet myAKSCluster i resursgruppen med namnet myResourceGroup:

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

Tillåt flera IP-adressintervall med hjälp av Azure CLI

Om du vill tillåta flera IP-adressintervall separerar du dem med kommatecken.

az aks update Använd kommandot med parametern --api-server-authorized-ip-ranges för att auktorisera flera IP-adressintervall. I följande exempel uppdateras klustret med namnet myAKSCluster i resursgruppen med namnet 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

Använd cmdleten Set-AzAksCluster med parametern -ApiServerAccessAuthorizedIpRange för att uppdatera ett klusters API-serverauktoriserade IP-intervall. I följande exempel anges det auktoriserade intervallet till 73.140.245.0/24 för klustret med namnet myAKSCluster i resursgruppen med namnet myResourceGroup:

Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange '73.140.245.0/24'
  1. Gå till Azure Portal och välj det AKS-kluster som du vill uppdatera.
  2. På tjänstmenyn går du till Inställningar och väljer Nätverk.
  3. Under Resursinställningar väljer du Hantera.
  4. På sidan Auktoriserade IP-intervall uppdaterar du de auktoriserade IP-intervallenefter behov.
  5. När du är klar väljer du Spara.

Inaktivera API-serverauktoriserade IP-intervall i ett befintligt kluster

Om du vill inaktivera API-serverauktoriserade IP-intervall använder du az aks update kommandot och anger ett tomt intervall "" för parametern --api-server-authorized-ip-ranges .

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

Om du vill inaktivera API-serverauktoriserade IP-intervall använder du cmdleten Set-AzAksCluster och anger ett tomt intervall '' för parametern -ApiServerAccessAuthorizedIpRange .

Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange ''
  1. Gå till Azure Portal och välj det AKS-kluster som du vill uppdatera.
  2. På tjänstmenyn går du till Inställningar och väljer Nätverk.
  3. Under Resursinställningar väljer du Hantera.
  4. På sidan Auktoriserade IP-intervall avmarkerar du kryssrutan Ange auktoriserade IP-intervall .
  5. Välj Spara.

Hitta befintliga API-serverauktoriserade IP-intervall

Om du vill hitta befintliga API-serverauktoriserade IP-intervall använder du az aks show kommandot med parametern inställd på --queryapiServerAccessProfile.authorizedIpRanges.

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

Exempel på utdata:

[
    "73.140.245.0/24"
]

Använd cmdleten Get-AzAksCluster för att hitta befintliga API-serverauktoriserade IP-intervall.

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

Exempel på utdata:

AuthorizedIPRanges: {73.140.245.0/24}
...
  1. Gå till Azure Portal och välj ditt AKS-kluster.

  2. På tjänstmenyn går du till Inställningar och väljer Nätverk.

    Avsnittet Resursinställningar på sidan Nätverk visar de för närvarande konfigurerade auktoriserade IP-intervallen.

    Skärmbild som visar auktoriserade IP-intervall under Resursinställningar i Azure portalen.

Få åtkomst till API-servern från utvecklingsdatorn, verktygen eller automatiseringen

Om du vill komma åt API-servern från en utvecklingsdator, ett verktyg eller ett automationssystem lägger du till dess offentliga IP-adress i klustrets auktoriserade IP-intervall.

Du kan också konfigurera en jumpbox med nödvändiga verktyg i ett separat undernät i brandväggens virtuella nätverk och lägga till brandväggens IP-adresser i de auktoriserade intervallen. Om AKS-klustrets undernät använder tvingad tunneltrafik genom brandväggen kan du i stället placera jumpboxen i AKS-klustrets undernät.

Anteckning

I följande exempel bevaras det befintliga auktoriserade intervallet och ytterligare en IP-adress läggs till. Om du utelämnar en befintlig IP-adress ersätter kommandot den med det nya intervallet.

  1. Kör följande kommando för att hämta din IP-adress och ange den som en miljövariabel:

    # Retrieve your IP address
    CURRENT_IP=$(dig +short "myip.opendns.com" "@resolver1.opendns.com")
    
  2. az aks update Använd kommandot med parametern --api-server-authorized-ip-ranges för att lägga till din IP-adress till de auktoriserade intervallen. I följande exempel läggs din aktuella IP-adress till i de befintliga intervallen i klustret med namnet myAKSCluster i resursgruppen med namnet myResourceGroup:

    az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges $CURRENT_IP/32,73.140.245.0/24
    
  1. Kör följande kommando för att hämta din IP-adress och ange den som en miljövariabel:

    # Retrieve your IP address
    $CURRENT_IP = (Invoke-RestMethod -Uri 'https://ipinfo.io/json').ip
    
  2. Använd cmdleten Set-AzAksCluster med parametern -ApiServerAccessAuthorizedIpRange för att lägga till din IP-adress till de auktoriserade intervallen. I följande exempel läggs din aktuella IP-adress till i de befintliga intervallen i klustret med namnet myAKSCluster i resursgruppen med namnet myResourceGroup:

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

Ett annat sätt att identifiera din IP-adress finns i Hitta din IP-adress eller sök efter vad som är min IP-adress? i en webbläsare.

Mer information om säkerhet i AKS finns i följande artiklar: