Sicherer Zugriff auf den API-Server mit autorisierten IP-Adressbereichen in Azure Kubernetes Service (AKS)

In diesem Artikel erfahren Sie, wie Sie IP-Adressbereiche des API-Servers authorisieren, um festzulegen, welche IP-Adressen und CIDRs auf die Steuerebene-Endpunkte Ihrer Azure Kubernetes Service (AKS)-Workloads zugreifen können.

Voraussetzungen

  • Azure CLI Version 2.0.76 oder höher. Führen Sie zum Überprüfen der Version az --version aus. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.
  • Die neueste Version von Azure PowerShell. Installationsanweisungen finden Sie unter Install Azure PowerShell.
  • Informationen dazu, welche IP-Adressen bei der Integration Ihres AKS-Clusters in Azure DevOps eingeschlossen werden sollen, finden Sie unter Zulässige IP-Adressen und Domänen-URLs.

Tipp

Verwenden Sie im Azure-Portal Azure Copilot, um die IP-Adressen zu ändern, die auf Ihren Cluster zugreifen dürfen. Weitere Informationen finden Sie unter Effizientes Arbeiten mit AKS-Clustern mithilfe von Azure Copilot.

Einschränkungen und Überlegungen

  • AKS unterstützt dieses Feature nur mit dem Standard-SKU-Load Balancer. AKS unterstützt das Basic-SKU-Lastenausgleichsmodul nicht mehr. Wenn Sie über einen vorhandenen Cluster verfügen, der die Basic-SKU verwendet, migrieren Sie zur Standard-SKU. Die Migration erfordert Ausfallzeiten und verfügt über zusätzliche Voraussetzungen.
  • Sie können dieses Feature nicht mit privaten Clustern verwenden.
  • Bei Clustern, die öffentliche Knoten-IPs verwenden, müssen für jeden Knotenpool mit öffentlichen IPs öffentliche IP-Präfixe verwendet werden. Fügen Sie diese Präfixe als zulässige Bereiche hinzu. Sie können kein öffentliches IPv6-Knotenpräfix verwenden, da Azure die IPv4-Adresse des Knotens automatisch zuweist und Sie sie nicht als autorisierten Bereich hinzufügen können.
  • Sie können bis zu 200 autorisierte IP-Bereiche angeben. Um diesen Grenzwert zu überschreiten, sollten Sie die Verwendung der API-Server-VNet-Integration in Betracht ziehen, die bis zu 2.000 autorisierte IP-Bereiche unterstützt.

Übersicht über vom API-Server autorisierte IP-Adressbereiche

Der Kubernetes-API-Server macht die zugrunde liegenden Kubernetes-APIs verfügbar. Verwaltungstools wie kubectl und das Kubernetes-Dashboard interagieren über diesen API-Server mit dem Cluster. AKS stellt eine Single-Tenant-Steuerungsebene mit einem dedizierten API-Server bereit und weist dem Server standardmäßig eine öffentliche IP-Adresse zu. Sie können den Zugriff über kubernetes rollenbasierte Zugriffssteuerung (Kubernetes RBAC) oder Azure RBAC steuern.

Aktivieren Sie autorisierte IP-Bereiche, um den sonst öffentlich zugänglichen AKS-Steuerebenen-API-Server zu sichern. Autorisierte IP-Bereiche ermöglichen, dass nur definierte IP-Adressbereiche mit dem API-Server kommunizieren. Der API-Server blockiert Anfragen von IP-Adressen, die nicht in den autorisierten Bereichen enthalten sind. Die Weitergabe der Regeln kann bis zu zwei Minuten dauern. Warten Sie bis zu zwei Minuten, bevor Sie die Verbindung testen.

Es wird empfohlen, die folgenden IP-Adressbereiche in die Konfiguration der autorisierten IP-Bereiche ihres API-Servers einzulassen:

  • Die ausgehende IP-Adresse des Clusters (Firewall, NAT-Gateway oder andere Adresse, abhängig vom ausgehenden Typ)
  • Die IP-Adressbereiche der Netzwerke, die Sie zur Verwaltung des Clusters verwenden.

Erstellen eines AKS-Clusters mit aktivierten vom API-Server autorisierten IP-Adressbereichen

Hinweis

Wenn Sie während der Clustererstellung autorisierte IP-Bereiche des API-Servers aktivieren, fügt AKS zusätzlich zu allen von Ihnen angegebenen Bereichen standardmäßig die öffentliche IP-Adresse des API-Servers und die ausgehende öffentliche IP-ADRESSE des Standard-SKU-Lastenausgleichs zur Liste der autorisierten IP-Bereiche hinzu.

Sonderfall : 0.0.0.0/32 Der 0.0.0.0/32 Platzhalter weist AKS an, nur die ausgehende öffentliche IP des Standard-SKU-Lastenausgleichs für den Zugriff auf den API-Server zuzulassen. Der Platzhalter hat die folgenden Verhaltensweisen:

Behavior Description
Zusätzliche Client-IP-Bereiche Deaktiviert das Standardverhalten, dass zusätzliche Client-IP-Bereiche zugelassen werden.
API-Serverzugriff Beschränkt den API-Serverzugriff nur auf die eigene ausgehende IP des Clusters.
Selbstmanagement Ermöglicht es dem Cluster, sich selbst zu verwalten, während der externe Zugriff blockiert wird.

Um einen Cluster mit aktivierten API-Server-autorisierten IP-Bereichen zu erstellen, stellen Sie eine Liste der autorisierten öffentlichen IP-Adressbereiche bereit. Verwenden Sie für einen CIDR-Bereich die Netzwerkadresse, bei der es sich um die erste IP-Adresse im Bereich handelt. Um beispielsweise den Bereich 137.117.106.88 bis 137.117.106.95 zuzulassen, geben Sie 137.117.106.88/29 an.

Verwenden Sie den az aks create Befehl mit dem --api-server-authorized-ip-ranges Parameter, um einen AKS-Cluster mit aktivierten API-Server-autorisierten IP-Bereichen zu erstellen. Im folgenden Beispiel wird ein Cluster namens "myAKSCluster " in der Ressourcengruppe " myResourceGroup " erstellt, und der IP-Adressbereich 73.140.245.0/24 kann auf den API-Server zugreifen:

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

Verwenden Sie das New-AzAksCluster Cmdlet mit dem -ApiServerAccessAuthorizedIpRange Parameter, um einen AKS-Cluster mit aktivierten API-Server-autorisierten IP-Bereichen zu erstellen. Im folgenden Beispiel wird ein Cluster namens "myAKSCluster " in der Ressourcengruppe " myResourceGroup " erstellt, und der IP-Adressbereich 73.140.245.0/24 kann auf den API-Server zugreifen:

New-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -NodeVmSetType VirtualMachineScaleSets -LoadBalancerSku Standard -ApiServerAccessAuthorizedIpRange '73.140.245.0/24' -GenerateSshKey
  1. Wählen Sie auf der Startseite des Azure-Portals die Option Erstellen Sie eine Ressource>Container>Azure Kubernetes Service (AKS).
  2. Konfigurieren Sie die Clustereinstellungen nach Bedarf.
  3. Wählen Sie im Abschnitt Netzwerk unter Öffentlicher Zugriff die Option Autorisierte IP-Bereiche festlegen aus.
  4. Geben Sie für IP-Bereiche angeben die IP-Adressbereiche ein, die Sie für den Zugriff auf den API-Server autorisieren möchten.
  5. Konfigurieren Sie die restlichen Clustereinstellungen nach Bedarf.
  6. Wenn Sie bereit sind, wählen Sie Prüfen + erstellen>Erstellen, um den Cluster zu erstellen.

Ausgehende IPs für einen Load Balancer der Standard-SKU mit der Azure CLI angeben

Wenn Sie einen Cluster mit aktivierten autorisierten IP-Bereichen für den API-Server erstellen, können Sie die ausgehenden IP-Adressen oder Präfixe auch mithilfe der Parameter --load-balancer-outbound-ips oder --load-balancer-outbound-ip-prefixes angeben. AKS ermöglicht diese IP-Adressen zusätzlich zu den IP-Adressen im --api-server-authorized-ip-ranges Parameter.

Verwenden Sie den --load-balancer-outbound-ips Parameter, um einen AKS-Cluster mit aktivierten API-Server-autorisierten IP-Bereichen zu erstellen und die ausgehenden IP-Adressen für den Standard-SKU-Load Balancer anzugeben. Im folgenden Beispiel wird ein Cluster namens myAKSCluster in der Ressourcengruppe myResourceGroup erstellt, wodurch 73.140.245.0/24 auf den API-Server zugreifen kann, und es werden zwei ausgehende IP-Adressen für den Standard-SKU-Lastenausgleich angegeben. Ersetzen Sie <public-ip-id-1> und <public-ip-id-2> durch die Ressourcen-IDs Ihrer öffentlichen 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

Ausschließliches Zulassen der ausgehenden öffentlichen IP-Adresse des Lastenausgleichs mit Standard-SKU

Verwenden Sie den --api-server-authorized-ip-ranges Parameter, um einen AKS-Cluster zu erstellen, der nur die ausgehende öffentliche IP des Standard-SKU-Lastenausgleichs für den Zugriff auf den API-Server zulässt. Im folgenden Beispiel wird ein Cluster namens myAKSCluster in der Ressourcengruppe myResourceGroup erstellt:

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

Verwenden Sie den -ApiServerAccessAuthorizedIpRange Parameter, um einen AKS-Cluster zu erstellen, der nur die ausgehende öffentliche IP des Standard-SKU-Lastenausgleichs für den Zugriff auf den API-Server zulässt. Im folgenden Beispiel wird ein Cluster namens myAKSCluster in der Ressourcengruppe myResourceGroup erstellt:

New-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -NodeVmSetType VirtualMachineScaleSets -LoadBalancerSku Standard -ApiServerAccessAuthorizedIpRange '0.0.0.0/32' -GenerateSshKey
  1. Wählen Sie auf der Startseite des Azure-Portals die Option Erstellen Sie eine Ressource>Container>Azure Kubernetes Service (AKS).
  2. Konfigurieren Sie die Clustereinstellungen nach Bedarf.
  3. Wählen Sie im Abschnitt Netzwerk unter Öffentlicher Zugriff die Option Autorisierte IP-Bereiche festlegen aus.
  4. Für "IP-Bereiche angeben" geben Sie 0.0.0.0/32 ein. Diese Einstellung lässt nur die ausgehende öffentliche IP des Standard-SKU-Lastenausgleichs zu.
  5. Konfigurieren Sie die restlichen Clustereinstellungen nach Bedarf.
  6. Wenn Sie bereit sind, wählen Sie Prüfen + erstellen>Erstellen, um den Cluster zu erstellen.

Aktualisieren der autorisierten IP-Bereiche des API-Servers auf einem vorhandenen Cluster

Verwenden Sie den az aks update Befehl mit dem --api-server-authorized-ip-ranges Parameter, um die autorisierten IP-Bereiche des API-Servers eines Clusters zu aktualisieren. Im folgenden Beispiel wird der autorisierte Bereich 73.140.245.0/24 für den Cluster mit dem Namen "myAKSCluster " in der Ressourcengruppe " myResourceGroup" festgelegt:

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

Mehrere IP-Adressbereiche mit Azure CLI zulassen

Um mehrere IP-Adressbereiche zuzulassen, trennen Sie sie durch Kommas.

Verwenden Sie den az aks update Befehl mit dem --api-server-authorized-ip-ranges Parameter, um mehrere IP-Adressbereiche zu autorisieren. Im folgenden Beispiel wird der Cluster " myAKSCluster " in der Ressourcengruppe " myResourceGroup" aktualisiert:

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

Verwenden Sie das Set-AzAksCluster Cmdlet mit dem -ApiServerAccessAuthorizedIpRange Parameter, um die autorisierten IP-Bereiche des API-Servers eines Clusters zu aktualisieren. Im folgenden Beispiel wird der autorisierte Bereich 73.140.245.0/24 für den Cluster mit dem Namen "myAKSCluster " in der Ressourcengruppe " myResourceGroup" festgelegt:

Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange '73.140.245.0/24'
  1. Navigieren Sie zum Azure-Portal und wählen Sie den AKS-Cluster aus, den Sie aktualisieren möchten.
  2. Wählen Sie im Dienstmenü unter "Einstellungen" die Option "Netzwerk" aus.
  3. Wählen Sie unter Ressourceneinstellungen die Option Verwalten.
  4. Aktualisieren Sie auf der Seite Autorisierte IP-Bereiche die Autorisierten IP-Bereiche nach Bedarf.
  5. Klicken Sie auf Speichern, wenn Sie fertig sind.

Deaktivieren von autorisierten IP-Bereichen des API-Servers in einem vorhandenen Cluster

Um autorisierte IP-Bereiche des API-Servers zu deaktivieren, verwenden Sie den az aks update Befehl, und geben Sie einen leeren Bereich "" für den --api-server-authorized-ip-ranges Parameter an.

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

Um autorisierte IP-Bereiche des API-Servers zu deaktivieren, verwenden Sie das Set-AzAksCluster Cmdlet, und geben Sie einen leeren Bereich '' für den -ApiServerAccessAuthorizedIpRange Parameter an.

Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange ''
  1. Navigieren Sie zum Azure-Portal und wählen Sie den AKS-Cluster aus, den Sie aktualisieren möchten.
  2. Wählen Sie im Dienstmenü unter "Einstellungen" die Option "Netzwerk" aus.
  3. Wählen Sie unter Ressourceneinstellungen die Option Verwalten.
  4. Deaktivieren Sie auf der Seite Autorisierte IP-Bereiche das Kontrollkästchen Autorisierte IP-Bereiche festlegen.
  5. Wählen Sie Speichern.

Suchen vorhandener autorisierter IP-Bereiche des API-Servers

Um vorhandene autorisierte IP-Bereiche des API-Servers zu finden, verwenden Sie den az aks show Befehl mit dem auf apiServerAccessProfile.authorizedIpRanges gesetzten Parameter --query.

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

Beispielausgabe:

[
    "73.140.245.0/24"
]

Verwenden Sie das Cmdlet, um vorhandene autorisierte IP-Bereiche des Get-AzAksCluster API-Servers zu finden.

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

Beispielausgabe:

AuthorizedIPRanges: {73.140.245.0/24}
...
  1. Navigieren Sie zum Azure-Portal, und wählen Sie Ihren AKS-Cluster aus.

  2. Wählen Sie im Dienstmenü unter "Einstellungen" die Option "Netzwerk" aus.

    Im Abschnitt „Ressourceneinstellungen“ auf der Seite Networking werden die aktuell konfigurierten autorisierten IP-Bereiche angezeigt.

    Screenshot der autorisierten IP-Bereiche unter

Greifen Sie auf den API-Server von Ihrem Entwicklungscomputer, Tools oder Automatisierung zu.

Um über einen Entwicklungscomputer, ein Tool oder ein Automatisierungssystem auf den API-Server zuzugreifen, fügen Sie seine öffentliche IP-Adresse zu den autorisierten IP-Bereichen des Clusters hinzu.

Alternativ können Sie eine Jumpbox mit den erforderlichen Tools in einem separaten Subnetz im virtuellen Netzwerk der Firewall konfigurieren und die FIREWALL-IP-Adressen zu den autorisierten Bereichen hinzufügen. Wenn das AKS-Cluster-Subnetz erzwungenes Tunneling über die Firewall verwendet, können Sie stattdessen diese Jumpbox im AKS-Cluster-Subnetz platzieren.

Hinweis

Im folgenden Beispiel wird der vorhandene autorisierte Bereich beibehalten und eine weitere IP-Adresse hinzugefügt. Wenn Sie eine vorhandene IP-Adresse weglassen, ersetzt der Befehl sie durch den neuen Bereich.

  1. Führen Sie den folgenden Befehl aus, um Ihre IP-Adresse abzurufen und als Umgebungsvariable festzulegen:

    # Retrieve your IP address
    CURRENT_IP=$(dig +short "myip.opendns.com" "@resolver1.opendns.com")
    
  2. Verwenden Sie den az aks update Befehl mit dem --api-server-authorized-ip-ranges Parameter, um Ihre IP-Adresse zu den autorisierten Bereichen hinzuzufügen. Im folgenden Beispiel wird die aktuelle IP-Adresse zu den vorhandenen IP-Adressbereichen im Cluster mit dem Namen myAKSCluster in der Ressourcengruppe myResourceGroup hinzugefügt:

    az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges $CURRENT_IP/32,73.140.245.0/24
    
  1. Führen Sie den folgenden Befehl aus, um Ihre IP-Adresse abzurufen und als Umgebungsvariable festzulegen:

    # Retrieve your IP address
    $CURRENT_IP = (Invoke-RestMethod -Uri 'https://ipinfo.io/json').ip
    
  2. Verwenden Sie das Set-AzAksCluster Cmdlet mit dem -ApiServerAccessAuthorizedIpRange Parameter, um Ihre IP-Adresse zu den autorisierten Bereichen hinzuzufügen. Im folgenden Beispiel wird die aktuelle IP-Adresse zu den vorhandenen IP-Adressbereichen im Cluster mit dem Namen myAKSCluster in der Ressourcengruppe mit dem Namen myResourceGroup hinzugefügt:

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

Eine weitere Möglichkeit, Ihre IP-Adresse zu ermitteln, finden Sie unter Ihre IP-Adresse finden oder suchen Sie in einem Webbrowser nach Was ist meine IP-Adresse?.

Weitere Informationen zur Sicherheit in AKS finden Sie in den folgenden Artikeln: