Accéder à un serveur d’API Azure Kubernetes Service (AKS)

Cet article décrit les options permettant de se connecter au serveur d’API de votre cluster Azure Kubernetes Service (AKS). Dans un cluster AKS standard, le serveur d’API est exposé sur Internet. Dans un cluster AKS privé, vous pouvez uniquement vous connecter au serveur d’API à partir d’un appareil disposant d’un accès réseau au cluster privé.

La planification de l’accès au serveur d’API est une activité quotidienne zéro et la façon dont vous accédez au serveur dépend de votre scénario de déploiement.

Accès au serveur d’API AKS

Pour gérer un cluster AKS, vous interagissez avec son serveur d’API. Il est essentiel de limiter l’accès au serveur d’API aux seuls utilisateurs nécessaires. Vous pouvez fournir un accès granulaire en intégrant le cluster AKS à Microsoft Entra ID. Les administrateurs peuvent gérer l'accès à l'aide du contrôle d'accès basé sur les rôles Azure (Azure RBAC). Ils peuvent également placer des utilisateurs et des identités dans des groupes Microsoft Entra et attribuer des rôles et des autorisations appropriés. L'authentification Microsoft Entra est activée dans les clusters AKS via OpenID Connect. Pour en savoir plus, consultez les ressources suivantes :

Note

Vous pouvez améliorer la sécurité du cluster AKS en autorisant uniquement les plages d’adresses IP autorisées à accéder au serveur d’API.

Azure protection DDoS, combinée aux meilleures pratiques de conception d’application, fournit des fonctionnalités d’atténuation améliorées contre les attaques par déni de service distribué (DDoS). Activez la protection DDoS sur chaque réseau virtuel de périmètre.

Accéder à un cluster AKS via Internet

Lorsque vous créez un cluster non privilégié qui se résout par défaut sur le nom de domaine complet du serveur d’API( FQDN), il reçoit une adresse IP publique par défaut. Vous pouvez vous connecter à votre cluster à l’aide du portail Azure ou d’un interpréteur de commandes tel que l’Azure CLI, PowerShell ou l’invite de commandes.

Note

Vous pouvez utiliser le client kubectl de ligne de commande Kubernetes pour vous connecter à un cluster via Internet.

Azure Cloud Shell

Azure Cloud Shell est un interpréteur de commandes intégré au portail Azure. Vous pouvez gérer et vous connecter à des ressources Azure à partir de Cloud Shell comme vous pouvez à partir de PowerShell ou du Azure CLI.

Accéder à un cluster privé AKS

Il existe plusieurs façons de se connecter à un cluster privé AKS. La planification de l’accès est une activité de jour zéro basée sur les besoins et les limitations de votre scénario. Vous pouvez vous connecter à votre cluster privé à l’aide des composants et services suivants :

  • Un jump box déployé dans un sous-réseau en tant que station de travail d’exploitation : Cette configuration peut être des machines virtuelles autonomes et persistantes (VM) dans un ensemble de disponibilité ou des Groupes de machines virtuelles identiques Azure.

  • Azure Container Instances et un client compatible OpenSSH : Déployer une instance de conteneur qui exécute un serveur SSH (Secure Shell), puis utilisez votre client compatible OpenSSH pour accéder au conteneur. Ce conteneur sert de jump box au sein de votre réseau pour atteindre votre cluster privé.

  • Azure Bastion : Utilisez Azure Bastion pour établir un accès à distance plus sécurisé et basé sur un navigateur à vos machines virtuelles ou des zones de saut au sein de votre réseau virtuel Azure. Avec cet accès, vous pouvez vous connecter plus en toute sécurité à des points de terminaison privés comme votre serveur d’API AKS. Azure Bastion fournit également une fonctionnalité de tunneling client native (préversion) qui permet une connexion directe aux clusters privés AKS sans nécessiter de zone de raccourci.

  • Réseau privé virtuel (VPN) : Créez une connexion VPN sécurisée qui étend votre réseau local ou distant à votre réseau virtuel. Avec cette connexion, vous pouvez accéder à votre cluster privé comme si vous étiez connecté localement.

  • Azure ExpressRoute : Utiliser ExpressRoute pour créer une connexion privée dédiée entre votre réseau local et votre Azure. Cette connexion permet de garantir un accès plus sécurisé et fiable à votre cluster privé sans utiliser l’Internet public.

  • La commande Azure CLI az aks invoke command : Effectuer des commandes directement sur votre cluster AKS à l’aide du Azure CLI avec la commande az aks command invoke. Cette commande interagit avec le cluster sans exposer de points de terminaison réseau supplémentaires. Vous pouvez également utiliser la fonction Exécuter la commande dans le portail Azure pour l'exécution de commandes depuis un navigateur.

  • Cloud Shell instance déployée dans un sous-réseau connecté au serveur d'API pour le cluster : Déployer Cloud Shell dans un sous-réseau lié au serveur d'API de votre cluster. Cette approche fournit un environnement de ligne de commande plus sécurisé et géré pour gérer votre cluster privé.

  • Azure Virtual Desktop : Accédez à Azure Virtual Desktop pour utiliser des postes de travail Windows ou Linux comme des jump boxes afin de gérer votre cluster privé de manière plus sécurisée depuis presque n’importe où.

Note

Tout le trafic vers le serveur d’API est transmis via le protocole de contrôle de transmission au port 443 via HTTPS. Les groupes de sécurité réseau (les NSG) ou d’autres pare-feu réseau doivent autoriser le trafic provenant de l’origine vers le FQDN du serveur d’API sur le port 443 pour HTTPS. Les allocations de trafic doivent être limitées spécifiquement au nom de domaine complet pour le serveur d’API du cluster.

Azure Bastion

Azure Bastion est une offre PaaS (Platform as a Service) qui permet de sécuriser les connexions RDP (Secure Bureau à distance Protocol) ou SSH à une machine virtuelle au sein de votre réseau virtuel qui ne nécessite pas d'adresse IP publique sur la machine virtuelle. Deux approches principales de l’utilisation de Azure Bastion avec des clusters AKS privés sont de se connecter via une zone de rebond ou d’utiliser le tunneling client natif pour se connecter directement sans zone de rebond.

Azure Bastion avec une jump box

Lorsque vous vous connectez à un cluster AKS privé, utilisez Azure Bastion pour accéder à une zone de rebond dans le réseau virtuel hub. Vous pouvez également utiliser SSH, RDP ou Bureau à distance Services pour contrôler à distance la zone de rebond. Le cluster AKS réside dans un réseau spoke, ce qui le sépare de la zone de rebond. Le peering de réseaux virtuels connecte les réseaux hub-and-spoke. La zone de rebond peut résoudre le nom de domaine complet du serveur d'API AKS à l'aide d'un point de terminaison privé Azure, d'une zone DNS (Domain Name System) privée et d'un enregistrement DNS A. Cette configuration garantit que le nom de domaine complet du serveur d’API est résolu uniquement à l’intérieur du réseau virtuel. Cette configuration fournit une connexion approuvée au cluster AKS privé.

Note

Pour l’accès continu à votre cluster AKS privé, la disponibilité et la redondance de vos zones de rebond sont cruciales. Pour garantir cette fiabilité, placez vos jump boxes dans les groupes de disponibilité et utilisez des jeux d'échelle de machines virtuelles ayant un nombre limité d'instances de machines virtuelles. Pour en savoir plus, consultez les ressources suivantes :

diagramme Architecture qui montre l’itinéraire du trafic d’un utilisateur vers un cluster AKS privé. Le trafic transite par Azure Bastion et une jump box.

Téléchargez un fichier Visio de cette architecture.

Flux de données

  1. Un utilisateur tente de se connecter à une zone de rebond à l’aide de Azure Bastion et d’un navigateur HTML5 avec le chiffrement Transport Layer Security.

  2. L’utilisateur choisit dans le portail s’il faut utiliser RDP ou SSH pour se connecter à la zone de raccourci.

  3. L’utilisateur se connecte à la zone de rebond via Azure Bastion. La tentative de connexion au cluster privé AKS est effectuée à partir de cette zone de rebond. Le réseau virtuel hub a un lien de réseau virtuel vers la zone DNS privée AKS pour résoudre le nom de domaine complet du cluster privé.

  4. Le réseau virtuel hub et le réseau virtuel spoke communiquent entre eux à l’aide du peering de réseaux virtuels.

  5. Pour atteindre le cluster AKS privé, le trafic entre dans le réseau principal d'Azure. Un point de terminaison privé établit une connexion privée isolée au cluster AKS privé.

  6. Le trafic atteint le serveur d’API du cluster AKS privé. L’utilisateur peut ensuite gérer des pods, des nœuds et des applications.

Note

Le nom de domaine complet de votre cluster privé peut être résolu en dehors de votre réseau virtuel si vous ne désactivez pas directement le nom de domaine complet public sur un cluster existant.

Résoudre les problèmes de connexion

Si vous ne pouvez pas vous connecter à votre cluster privé :

  • Vérifiez le peering des réseaux virtuels. Ce mécanisme fournit une connectivité réseau à réseau entre deux réseaux virtuels. Pour que le trafic circule entre ces deux réseaux, vous devez établir l'interconnexion de réseaux virtuels entre eux. Lorsque vous établissez une interconnexion de réseaux virtuels, un itinéraire est placé dans la table de routage du système du réseau virtuel. Cet itinéraire fournit un chemin d'accès vers l'espace d'adresses de destination. Pour plus d’informations sur la résolution des problèmes de peerings de réseaux virtuels, consultez Créer, modifier ou supprimer un peering de réseaux virtuels.

    Note

    Vous n’avez pas besoin d’un peering de réseaux virtuels si votre jump box se trouve dans le même réseau virtuel que le point de terminaison privé et le cluster privé AKS.

  • Vérifiez le lien de réseau virtuel vers la zone DNS privée. Les liens de réseau virtuel permettent aux machines virtuelles qui se trouvent à l’intérieur des réseaux virtuels de se connecter à une zone DNS privée et de résoudre les enregistrements DNS à l’intérieur de la zone. Si vous ne pouvez pas vous connecter à votre cluster AKS privé ou ne pouvez pas résoudre le nom de domaine complet du cluster privé, vérifiez si votre réseau virtuel a un lien de réseau virtuel vers votre zone DNS privée. Le nom de la zone DNS privée doit avoir le privatelink.<region>.azmk8s.io format.

    Pour plus d’informations sur la résolution des problèmes de liens de réseau virtuel, consultez les articles suivants :

    Note

    Lorsque vous créez un cluster AKS privé, une zone DNS privée est créée avec un lien de réseau virtuel vers le réseau virtuel qui héberge le cluster AKS privé.

Client natif de tunneling Azure Bastion

Vous pouvez utiliser le tunneling client natif pour vous connecter directement à des clusters privés AKS sans zone de raccourci. Cette approche prend en charge l'accès persistant, continu et maintient le fonctionnement de vos outils clients natifs depuis votre machine locale.

Important

Cette fonctionnalité est en version préliminaire. Les fonctionnalités d’évaluation AKS sont disponibles en libre-service et font l’objet d’un abonnement. Microsoft fournit des versions préliminaires en l'état et selon disponibilité, et elles ne sont pas incluses dans les contrats de niveau de service (CNS) ou la garantie limitée. Le support client fournit une couverture partielle et optimale pour les préversions AKS, de sorte que ces fonctionnalités ne conviennent pas à la production. Pour plus d’informations, consultez les articles de support suivants :

Exigences

  • Deloy Azure Bastion à l’aide de la référence SKU Standard ou Premium.

  • Activez la prise en charge native du client dans les paramètres de configuration Azure Bastion.

  • Vérifiez que vous disposez du rôle Lecteur sur le cluster AKS, la ressource Azure Bastion et le réseau virtuel.

Flux de travail de connexion

  1. Récupérez les informations d’identification sur votre cluster privé AKS :

    az aks get-credentials --admin --name <AKSClusterName> --resource-group <ResourceGroupName>
    
  2. Ouvrez le tunnel vers votre cluster AKS cible :

    az aks bastion --name <AKSClusterName> --resource-group <AKSClusterResourceGroup> --admin --bastion <BastionResourceId>
    
  3. Mettez à jour votre fichier kubeconfig pour qu’il pointe vers le tunnel Azure Bastion :

    export BASTION_PORT=$(ps aux | sed -n 's/.*--port \([0-9]*\).*/\1/p' | head -1)
    sed -i "s|server: https://.*|server: https://localhost:${BASTION_PORT}|" $KUBECONFIG
    
  4. Interagissez avec votre cluster AKS :

    kubectl get nodes
    

Pour plus d’informations, consultez Connectez-vous aux clusters privés AKS en utilisant Azure Bastion.

Note

Pour le client natif d'Azure Bastion, le tunneling n'est pas pris en charge pour les clusters AKS automatiques ou pour les clusters ayant un verrouillage du groupe de ressources réseau (NRG).

Améliorer la sécurité

Pour sécuriser les charges de travail AKS et vos jump boxes, utilisez l’accès juste-à-temps (JIT) et une station de travail d'accès privilégié (PAW). L’accès JIT fait partie de Microsoft Defender for Cloud. Il peut aider à réduire la surface d’attaque potentielle et les vulnérabilités en bloquant le trafic entrant vers votre zone de rebond et en autorisant l’accès uniquement pendant une période spécifiée si nécessaire. Une fois l’heure d’expiration terminée, l’accès est automatiquement révoqué. Pour plus d’informations, consultez l’accès juste-à-temps aux machines.

Les PW sont des appareils renforcés qui offrent une haute sécurité aux opérateurs en bloquant les vecteurs d’attaque courants tels que la messagerie et la navigation web. Pour plus d’informations, consultez Sécuriser les appareils dans le cadre de l’article d’accès privilégié.

VPN

Une connexion VPN fournit une connectivité hybride de votre environnement local à Azure. Cette connectivité permet d’accéder à un cluster AKS privé. Le serveur d’API du cluster privé n’est pas accessible en dehors de vos réseaux virtuels. Avec un VPN, vous pouvez vous connecter à votre réseau virtuel dans Azure via un tunnel chiffré, accéder à votre jump box, puis vous connecter au serveur d'API du cluster privé.

Diagramme d’architecture montrant le flux de trafic d’un utilisateur vers un cluster AKS privé. L’itinéraire comprend une passerelle VPN, un tunnel IPsec (Internet Protocol Security) et une jump box.

Téléchargez un fichier Visio de cette architecture.

Flux de données

  1. Un utilisateur lance le trafic RDP ou SSH vers la zone de rebond à partir d’une station de travail locale.

  2. Le trafic de jump box quitte les routeurs de périphérie du client et l’appliance VPN. Le trafic utilise un tunnel IPsec (Internet Protocol Security) chiffré pour traverser Internet.

  3. Le trafic de "jump box" atteint la passerelle de réseau virtuel dans Azure, qui est à la fois le point d’entrée et de sortie de l’infrastructure Azure de réseau virtuel.

  4. Une fois le trafic passé la passerelle de réseau virtuel, il atteint la zone de rebond. La tentative de connexion au cluster privé AKS est effectuée à partir de la zone de rebond. Le réseau virtuel hub a un lien de réseau virtuel vers la zone DNS privée AKS pour résoudre le nom de domaine complet du cluster privé.

  5. Les réseaux virtuels hub et spoke communiquent entre eux grâce à un peering de réseaux virtuels.

  6. Pour atteindre le cluster AKS privé, le trafic entre dans le réseau principal d'Azure. Un point de terminaison privé établit une connexion privée isolée au cluster AKS privé.

  7. Le trafic atteint le serveur d’API du cluster AKS privé. L’utilisateur peut ensuite gérer des pods, des nœuds et des applications.

ExpressRoute

ExpressRoute fournit une connectivité à votre cluster privé AKS à partir d’un environnement local. ExpressRoute utilise le protocole BGP (Border Gateway Protocol) pour échanger des itinéraires entre votre réseau local et Azure. Cette connexion crée un chemin sécurisé entre les ressources IaaS (Infrastructure as a Service) et les stations de travail locales. ExpressRoute fournit une connexion dédiée et isolée qui a une bande passante et une latence cohérentes, ce qui le rend idéal pour les environnements d’entreprise.

Diagramme d’architecture montrant l’itinéraire du trafic d’un utilisateur vers un cluster AKS privé. L’itinéraire inclut ExpressRoute et une zone de raccourci.

Téléchargez un fichier Visio de cette architecture.

Flux de données

  1. Un utilisateur lance le trafic RDP ou SSH vers la zone de rebond à partir d’une station de travail locale.

  2. Le trafic de jump box quitte les routeurs de périphérie du client et se déplace sur une connexion fibre à l’emplacement de rencontre-moi où réside le circuit ExpressRoute. Le trafic atteint les appareils Microsoft Enterprise Edge (MSEE) là-bas. Ensuite, il entre dans l’infrastructure Azure.

  3. Le trafic de la zone de rebond atteint la passerelle ExpressRoute, qui est à la fois le point d’entrée et de sortie de l’infrastructure de réseau virtuel Azure.

  4. Le trafic atteint la zone de rebond. La tentative de connexion au cluster privé AKS est effectuée à partir de la zone de rebond. Le réseau virtuel hub a un lien de réseau virtuel vers la zone DNS privée AKS pour résoudre le nom de domaine complet du cluster privé.

  5. Les réseaux virtuels hub et spoke communiquent entre eux grâce à un peering de réseaux virtuels.

  6. Pour atteindre le cluster AKS privé, le trafic entre dans le réseau principal d'Azure. Un point de terminaison privé établit une connexion privée isolée au cluster AKS privé.

  7. Le trafic atteint le serveur d’API du cluster AKS privé. L’utilisateur peut ensuite gérer des pods, des nœuds et des applications.

Note

ExpressRoute nécessite un fournisseur de connectivité non Microsoft pour fournir une connexion de peering aux routeurs MSEE. Le trafic ExpressRoute n’est pas chiffré.

Exécuter l’appel de commande aks

Avec un cluster privé AKS, vous pouvez vous connecter à partir d’une machine virtuelle qui a accès au serveur d’API. Utilisez la commande Azure CLI aks command invoke pour exécuter des commandes telles que kubectl ou helm à distance via l’API Azure. Cette approche crée un pod temporaire dans le cluster, qui dure uniquement pendant la commande. La aks command invoke commande sert de méthode de connexion alternative si vous ne disposez pas d'un VPN, d'ExpressRoute ou d'un réseau virtuel appairé. Vérifiez que votre cluster et votre pool de nœuds disposent de ressources suffisantes pour créer le pod temporaire.

Fonctionnalité de commande Exécuter le portail

Le portail Azure fournit une fonctionnalité Run qui utilise la même fonctionnalité command invoke sous-jacente. Vous pouvez utiliser cette interface basée sur un navigateur pour exécuter des commandes sur votre cluster privé sans le Azure CLI. Le pod créé par la commande Exécuter inclut kubectl et helm pour les opérations de cluster, ainsi que jq, xargs, grepet awk pour la prise en charge de Bash.

Vous pouvez également utiliser Microsoft Copilot dans Azure pour exécuter des commandes kubectl. Pour plus d’informations, consultez Travailler avec des clusters AKS de manière efficace en utilisant Copilot dans Azure.

Connecter Cloud Shell à un sous-réseau

Lorsque vous déployez Cloud Shell dans un réseau virtuel que vous contrôlez, vous pouvez interagir avec les ressources à l’intérieur de ce réseau. Le déploiement de Cloud Shell dans un sous-réseau que vous gérez permet la connectivité au serveur d’API d’un cluster privé AKS. Avec ce déploiement, vous pouvez vous connecter directement au cluster privé. Pour plus d’informations, consultez Deploy Cloud Shell dans un réseau virtuel Azure.

Note

Cloud Shell, lorsqu'il est déployé dans un réseau virtuel, n'est pas pris en charge pour les clusters automatiques AKS ni pour les clusters avec verrou NRG.

Utiliser SSH et Visual Studio Code pour les tests

SSH gère et accède en toute sécurité aux fichiers sur un hôte distant à l’aide de paires de clés publiques-privées. À partir de votre ordinateur local, vous pouvez utiliser SSH avec l’extension Visual Studio Code Remote - SSH pour vous connecter à une zone de rebond dans votre réseau virtuel. Le tunnel SSH chiffré se termine à l’adresse IP publique de la zone de rebond, ce qui facilite la modification des fichiers manifeste Kubernetes.

Pour savoir comment vous connecter à votre jump box via SSH, consultez le développement à distance via SSH.

Si vous ne pouvez pas vous connecter à votre machine virtuelle via SSH pour gérer votre cluster privé :

  • Vérifiez la règle de groupe de sécurité réseau entrante pour le sous-réseau de machine virtuelle. La règle de groupe de sécurité réseau par défaut bloque tout le trafic entrant provenant de l'extérieur Azure. Créez donc une règle qui autorise le trafic SSH à partir de l'adresse IP publique de votre ordinateur local.

  • Vérifiez l’emplacement du certificat et vérifiez l’emplacement correct des certificats. Vérifiez que la clé privée se trouve dans le répertoire C:\Users\User\.ssh\id_rsa sur votre ordinateur local et que la clé publique se trouve dans le fichier ~/.ssh/id_rsa.pub sur la machine virtuelle dans Azure.

Note

Nous vous recommandons de :

  • Évitez d’utiliser une adresse IP publique pour vous connecter aux ressources dans des environnements de production. Utilisez uniquement des adresses IP publiques dans des environnements de développement ou de test. Dans ces scénarios, créez une règle de groupe de sécurité réseau entrante pour autoriser le trafic à partir de l’adresse IP publique de votre ordinateur local. Pour plus d’informations sur les règles de groupe de sécurité réseau, consultez Créer, modifier ou supprimer un groupe de sécurité réseau.

  • Évitez d’utiliser SSH pour vous connecter directement aux nœuds ou conteneurs AKS. Utilisez plutôt une solution de gestion externe dédiée. Cette pratique est particulièrement importante lorsque vous utilisez la aks command invoke commande, ce qui crée un pod temporaire au sein de votre cluster pour l’accès proxié.

Conclusion

  • Vous pouvez accéder au serveur d’API de votre cluster AKS via Internet si le nom de domaine complet public est activé.

  • Cloud Shell est un interpréteur de commandes intégré dans le portail Azure que vous pouvez utiliser pour vous connecter à un cluster AKS.

  • Pour un accès plus sécurisé, utilisez Azure Bastion avec un tunneling client natif ou une zone de rebond.

  • Les VPN et ExpressRoute fournissent une connectivité hybride à votre cluster AKS privé.

  • Si aucune solution de connectivité externe n’est disponible, vous pouvez utiliser aks command invoke à distance ou la fonctionnalité de commande Exécuter du portail.

  • Vous pouvez déployer Cloud Shell directement dans un réseau virtuel que vous gérez pour accéder au cluster privé.

  • Vous pouvez utiliser Visual Studio Code avec SSH sur une zone de raccourci pour chiffrer la connexion et simplifier la modification du fichier manifeste. Toutefois, cette approche expose une adresse IP publique dans votre environnement.

Contributors

Microsoft maintient cet article. Les contributeurs suivants ont écrit cet article.

Auteurs principaux :

Autres contributeurs :

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Étapes suivantes