Partager via


Sécuriser l’accès au serveur d’API à l’aide de plages d’adresses IP autorisées dans Azure Kubernetes Service (AKS)

Cet article explique comment utiliser des plages d’adresses IP autorisées par le serveur d’API pour limiter les adresses IP et les CIDR qui peuvent accéder aux points de terminaison du plan de contrôle pour vos charges de travail Azure Kubernetes Service (AKS).

Prerequisites

  • Azure CLI version 2.0.76 ou ultérieure installée et configurée. Vérifiez votre version en utilisant la commande az --version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.
  • Pour savoir quelles adresses IP inclure lors de l’intégration de votre cluster AKS à Azure DevOps, consultez adresses IP autorisées et URL de domaine.

Conseil / Astuce

À partir du portail Azure, vous pouvez utiliser Azure Copilot pour apporter des modifications aux adresses IP qui peuvent accéder à votre cluster. Pour plus d’informations, consultez Utiliser efficacement des clusters AKS à l’aide d’Azure Copilot.

Limitations et considérations

  • Cette fonctionnalité est uniquement prise en charge sur l’équilibreur de charge SKU Standard pour les clusters créés à partir d'octobre 2019. Tous les clusters existants sur l'équilibreur de charge Basic SKU avec la fonctionnalité activée doivent continuer à fonctionner correctement si la version Kubernetes et le plan de contrôle sont mis à niveau. Toutefois, vous ne pouvez pas migrer ces clusters vers l'équilibreur de charge SKU Standard.
  • Vous ne pouvez pas utiliser cette fonctionnalité avec des clusters privés.
  • Lorsque vous utilisez cette fonctionnalité avec des clusters qui utilisent des adresses IP publiques node, les pools de nœuds utilisant les adresses IP publiques node doivent utiliser des préfixes d’adresses IP publiques. Vous devez ajouter les préfixes d’adresse IP publique en tant que plages autorisées.
  • Vous pouvez spécifier jusqu’à 200 plages d’adresses IP autorisées. Pour dépasser cette limite, envisagez d’utiliser l’intégration au réseau virtuel du serveur d’API, qui prend en charge jusqu’à 2 000 plages d’adresses IP autorisées.

Vue d’ensemble des plages d’adresses IP pour le serveur d’API

Le serveur d’API Kubernetes expose les API Kubernetes sous-jacentes et fournit l’interaction pour les outils de gestion tels que kubectl et le tableau de bord Kubernetes. AKS fournit un plan de contrôle de cluster monolocataire doté d’un serveur d’API dédié. Le serveur d’API se voit assigner une adresse IP publique par défaut. Vous pouvez contrôler l’accès à l’aide du contrôle d’accès en fonction du rôle Kubernetes (RBAC Kubernetes) ou du RBAC Azure.

Pour sécuriser l’accès au plan de contrôle AKS/serveur d’API, normalement accessible, vous pouvez activer et utiliser des plages d’adresses IP autorisées. Ces plages d’adresses IP autorisées autorisent uniquement les plages d’adresses IP définies à communiquer avec le serveur d’API. Toute requête adressée au serveur API depuis une adresse IP qui ne fait pas partie de ces plages d’adresses IP autorisées est bloquée. La propagation des règles peut prendre jusqu’à deux minutes. Patientez pendant le test de la connexion.

Nous vous recommandons d’inclure les plages d’adresses IP suivantes dans la configuration des plages d’adresses IP autorisées de votre serveur d’API :

  • Adresse IP de sortie du cluster (pare-feu, passerelle NAT ou autre adresse, selon votre type de trafic sortant).
  • Toute plage qui représente les réseaux à partir desquels vous allez administrer le cluster.

Créer un cluster AKS dont les plages d’adresses IP autorisées du serveur d’API sont activées

Remarque

Lorsque vous activez les plages d’adresses IP autorisées du serveur d’API lors de la création du cluster, l’adresse IP publique du serveur d’API et l’adresse IP publique sortante de l’équilibreur de charge de référence SKU Standard sont automatiquement autorisées par défaut, en plus des plages que vous spécifiez.

Cas spécial - 0.0.0.0/32: il s’agit d’une valeur spéciale qui indique à AKS d’autoriser uniquement l’adresse IP publique sortante du répartiteur de charge SKU Standard à accéder au serveur d’API. La valeur 0.0.0.0/32 sert de espace réservé qui :

  • Désactive le comportement par défaut pour autoriser des plages d’adresses IP client supplémentaires.
  • Limite l’accès au serveur d’API uniquement aux propres adresses IP sortantes du cluster.
  • Est utile pour les scénarios où vous souhaitez que le cluster se gère automatiquement, mais bloque l’accès externe.

Lors de la création d’un cluster avec des plages d’adresses IP autorisées du serveur d’API activées, vous fournissez la liste des plages d’adresses IP publiques autorisées. Lorsque vous spécifiez une plage CIDR, vous devez utiliser l’adresse réseau (première adresse IP de la plage). Par exemple, si vous souhaitez autoriser la plage de 137.117.106.88 à 137.117.106.95, vous devez spécifier 137.117.106.88/29.

  • Créez un cluster AKS avec des plages d’adresses IP autorisées du serveur d’API activées à l’aide de la commande az aks create avec le paramètre --api-server-authorized-ip-ranges. L’exemple suivant crée un cluster nommé myAKSCluster dans le groupe de ressources nommé myResourceGroup et permet à la plage 73.140.245.0/24 d’adresses IP d’accéder au serveur d’API :

    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
    
  • Créez un cluster AKS avec des plages d’adresses IP autorisées du serveur d’API activées à l’aide de l’applet de commande New-AzAksCluster avec le paramètre -ApiServerAccessAuthorizedIpRange. L’exemple suivant crée un cluster nommé myAKSCluster dans le groupe de ressources nommé myResourceGroup et permet à la plage 73.140.245.0/24 d’adresses IP d’accéder au serveur d’API :

    New-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -NodeVmSetType VirtualMachineScaleSets -LoadBalancerSku Standard -ApiServerAccessAuthorizedIpRange '73.140.245.0/24' -GenerateSshKey
    
  1. Sur la page d’accueil du portail Azure, sélectionnez Créer une ressource>Conteneurs>Azure Kubernetes Service (AKS).
  2. Définissez les paramètres du cluster, en fonction de vos besoins.
  3. Dans la section Mise en réseau sous Accès public, sélectionnez Définir des plages d’adresses IP autorisées.
  4. Pour Spécifier des plages d’adresses IP, entrez les plages d’adresses IP que vous souhaitez autoriser à accéder au serveur d’API.
  5. Configurez le reste des paramètres du cluster en fonction des besoins.
  6. Lorsque vous êtes prêt, sélectionnez Vérifier + créer>Créer pour créer le cluster.

Spécifier des adresses IP sortantes pour un équilibreur de charge de la référence SKU Standard

Lors de la création d’un cluster avec des plages d’adresses IP autorisées du serveur d’API activées, vous pouvez également spécifier les adresses IP sortantes ou les préfixes du cluster à l’aide des paramètres --load-balancer-outbound-ips ou --load-balancer-outbound-ip-prefixes. Toutes les adresses IP fournies dans les paramètres sont autorisées avec les adresses IP dans le paramètre --api-server-authorized-ip-ranges.

  • Créez un cluster AKS avec des plages d’adresses IP autorisées du serveur d’API activées et spécifiez les adresses IP sortantes pour l’équilibreur de charge de référence SKU Standard à l’aide du paramètre --load-balancer-outbound-ips. L’exemple suivant crée un cluster nommé myAKSCluster dans le groupe de ressources nommé myResourceGroup, permet à la plage 73.140.245.0/24 d’adresses IP d’accéder au serveur d’API et spécifie deux adresses IP sortantes pour l’équilibreur de charge de référence SKU Standard. Veillez à remplacer les espaces de réserve <public-ip-id-1> et <public-ip-id-2> par les ID de ressource réels de vos adresses IP publiques.

    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
    

Autoriser uniquement l’adresse IP publique sortante de l’équilibreur de charge de la référence SKU Standard

  • Créez un cluster AKS avec des plages d’adresses IP autorisées du serveur d’API activées et n’autorisez que l’adresse IP publique sortante de l’équilibreur de charge de référence SKU Standard à l’aide du paramètre --api-server-authorized-ip-ranges. L’exemple suivant montre la création d’un cluster nommé myAKSCluster dans le groupe de ressources nommé myResourceGroup, avec des plages d’adresses IP autorisées du serveur d’API activées et n’autorise que l’adresse IP publique sortante de l’équilibreur de charge de référence SKU Standard :

    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
    
  • Créez un cluster AKS avec des plages d’adresses IP autorisées du serveur d’API activées et n’autorisez que l’adresse IP publique sortante de l’équilibreur de charge de référence SKU Standard à l’aide du paramètre -ApiServerAccessAuthorizedIpRange. L’exemple suivant montre la création d’un cluster nommé myAKSCluster dans le groupe de ressources nommé myResourceGroup, avec des plages d’adresses IP autorisées du serveur d’API activées et n’autorise que l’adresse IP publique sortante de l’équilibreur de charge de référence SKU Standard :

    New-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -NodeVmSetType VirtualMachineScaleSets -LoadBalancerSku Standard -ApiServerAccessAuthorizedIpRange '0.0.0.0/32' -GenerateSshKey
    
  1. Sur la page d’accueil du portail Azure, sélectionnez Créer une ressource>Conteneurs>Azure Kubernetes Service (AKS).
  2. Définissez les paramètres du cluster, en fonction de vos besoins.
  3. Dans la section Mise en réseau sous Accès public, sélectionnez Définir des plages d’adresses IP autorisées.
  4. Pour spécifier des plages d’adresses IP, entrez 0.0.0.0/32. Ce paramètre autorise uniquement l’adresse IP publique sortante de l’équilibreur de charge de référence SKU Standard.
  5. Configurez le reste des paramètres du cluster en fonction des besoins.
  6. Lorsque vous êtes prêt, sélectionnez Vérifier + créer>Créer pour créer le cluster.

Mettre à jour les plages d’adresses IP autorisées du serveur d’API sur un cluster existant

  • Mettez à jour les plages d’adresses IP autorisées du serveur d’API sur un cluster existant à l’aide de la commande az aks update avec le paramètre --api-server-authorized-ip-ranges. L’exemple suivant met à jour les plages d’adresses IP autorisées du serveur d’API sur le cluster nommé myAKSCluster dans le groupe de ressources nommé myResourceGroup et met à jour la plage d’adresses IP pour 73.140.245.0/24:

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

Autoriser plusieurs plages d’adresses IP

Pour autoriser plusieurs plages d’adresses IP, vous pouvez en répertorier plusieurs, séparées par des virgules.

  • Mettez à jour les plages d’adresses IP autorisées du serveur d’API d’un cluster existant pour autoriser plusieurs plages d’adresses IP à l’aide de la az aks update commande avec le --api-server-authorized-ip-ranges paramètre. L’exemple suivant met à jour les plages d’adresses IP autorisées du serveur d’API sur le cluster nommé myAKSCluster dans le groupe de ressources nommé myResourceGroup et autorise plusieurs plages d’adresses IP :

    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
    
  • Mettez à jour les plages d’adresses IP autorisées du serveur d’API sur un cluster existant à l’aide de l’applet de commande Set-AzAksCluster avec le paramètre -ApiServerAccessAuthorizedIpRange. L’exemple suivant met à jour les plages d’adresses IP autorisées du serveur d’API sur le cluster nommé myAKSCluster dans le groupe de ressources nommé myResourceGroup et met à jour la plage d’adresses IP pour 73.140.245.0/24:

    Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange '73.140.245.0/24'
    
  1. Accédez au portail Azure et sélectionnez le cluster AKS que vous souhaitez mettre à jour.
  2. Dans le menu du service, sous Paramètres, sélectionnez Mise en réseau.
  3. Sous Paramètres de ressource, sélectionnez Gérer.
  4. Sur la page Plages d’adresses IP autorisées, mettez à jour les Plages d’adresses IP autorisées en fonction des besoins.
  5. Quand vous avez terminé, sélectionnez Enregistrer.

Désactiver les plages d’adresses IP autorisées du serveur d’API sur un cluster existant

  • Désactivez les plages d’adresses IP autorisées du serveur d’API à l’aide de la az aks update commande et spécifiez une plage "" vide pour le --api-server-authorized-ip-ranges paramètre.

    az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges ""
    
  • Désactivez les plages d’adresses IP autorisées du serveur d’API à l’aide de l’applet Set-AzAksCluster de commande et spécifiez une plage '' vide pour le -ApiServerAccessAuthorizedIpRange paramètre.

    Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange ''
    
  1. Accédez au portail Azure et sélectionnez le cluster AKS que vous souhaitez mettre à jour.
  2. Dans le menu du service, sous Paramètres, sélectionnez Mise en réseau.
  3. Sous Paramètres de ressource, sélectionnez Gérer.
  4. Dans la page Plages d’adresses IP autorisées, décochez la case Définir les plages d’adresses IP autorisées.
  5. Cliquez sur Enregistrer.

Rechercher des plages d’adresses IP autorisées du serveur d’API existantes

  • Recherchez les plages d’adresses IP autorisées du serveur d’API existantes à l’aide de la az aks show commande avec le --query paramètre défini sur apiServerAccessProfile.authorizedIpRanges.

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

    Exemple de sortie :

    [
      "73.140.245.0/24"
    ]
    
  • Recherchez les plages d’adresses IP autorisées du serveur d’API existant à l’aide du cmdlet Get-AzAksCluster.

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

    Exemple de sortie :

    AuthorizedIPRanges: {73.140.245.0/24}
    ...
    
  1. Accédez au portail Microsoft Azure et sélectionnez votre cluster AKS.

  2. Dans le menu du service, sous Paramètres, sélectionnez Mise en réseau. Les plages d’adresses IP autorisées du serveur d’API existantes sont répertoriées sous Paramètres de ressource.

    Capture d’écran des plages d’adresses IP autorisées du serveur d’API dans le portail Azure.

Accéder au serveur d’API à partir de votre ordinateur de développement, de vos outils ou de votre automatisation

Vous devez ajouter vos ordinateurs de développement, vos outils ou vos adresses IP Automation à la liste de clusters AKS des plages d’adresses IP approuvées pour accéder au serveur d’API à partir de ces emplacements.

Une autre option est de configurer une jumpbox avec les outils nécessaires à l’intérieur d’un sous-réseau distinct dans le réseau virtuel du pare-feu. Cette option suppose que votre environnement dispose d’un pare-feu avec le réseau respectif et que vous avez ajouté les adresses IP de pare-feu aux plages autorisées. De même, si vous avez forcé le tunneling du sous-réseau AKS vers le sous-réseau du pare-feu, avoir une jumpbox dans le sous-réseau du cluster est également une bonne chose.

Remarque

L’exemple suivant ajoute une autre adresse IP aux plages approuvées. Il inclut toujours l’adresse IP existante. Si vous n’incluez pas votre adresse IP existante, cette commande la remplace par la nouvelle au lieu de l’ajouter aux plages autorisées.

  1. Récupérez votre adresse IP et définissez-la sur une variable d’environnement à l’aide de la commande suivante :

    # Retrieve your IP address
    CURRENT_IP=$(dig +short "myip.opendns.com" "@resolver1.opendns.com")
    
  2. Ajoutez votre adresse IP à la liste approuvée à l’aide de la az aks update commande avec le --api-server-authorized-ip-ranges paramètre. L’exemple suivant ajoute votre adresse IP actuelle aux plages d’adresses IP autorisées du serveur d’API existantes sur le cluster nommé myAKSCluster dans le groupe de ressources nommé myResourceGroup :

    az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges $CURRENT_IP/24,73.140.245.0/24
    
  1. Récupérez votre adresse IP et définissez-la sur une variable d’environnement à l’aide de la commande suivante :

    # Retrieve your IP address
    CURRENT_IP=$(dig +short "myip.opendns.com" "@resolver1.opendns.com")
    
  2. Ajoutez votre adresse IP à la liste approuvée à l’aide de la commande applet Set-AzAksCluster avec le paramètre -ApiServerAccessAuthorizedIpRange. L’exemple suivant ajoute votre adresse IP actuelle aux plages d’adresses IP autorisées du serveur d’API existantes sur le cluster nommé myAKSCluster dans le groupe de ressources nommé myResourceGroup :

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

Une autre option consiste à utiliser la commande suivante sur les systèmes Windows pour obtenir l’adresse IPv4 publique :

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

Vous pouvez également suivre les étapes décrites dans Rechercher votre adresse IP ou rechercher sur quelle est mon adresse IP dans un navigateur Internet.

Pour en savoir plus sur la sécurité dans AKS, consultez les articles suivants :