AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Comment résoudre l'erreur « Unauthorized » lorsque j'utilise les commandes kubectl pour accéder à mon cluster Amazon EKS ?
Lorsque j'utilise les commandes kubectl pour accéder à un cluster Amazon Elastic Kubernetes Service (Amazon EKS), j'obtiens le message d'erreur : « You must be logged in to the server (Unauthorized) ».
Brève description
Quand l'utilisateur ou le rôle Gestion des identités et des accès AWS (IAM) crée un cluster Amazon EKS différent de celui qui est utilisé par aws-iam-authenticator, le message d'erreur « Unauthorized » s'affiche. Pour résoudre ce problème, configurez le contrôle d'accès basé sur les rôles (RBAC) de votre cluster Amazon EKS pour autoriser l'entité IAM. Pour plus d'informations sur RBAC, consultez la page Utilisation de l'autorisation RBAC sur le site Web de Kubernetes.
Seul le créateur du cluster Amazon EKS dispose d'autorisations system:masters pour configurer le cluster. Il existe deux manières d'étendre les autorisations system:masters à d'autres utilisateurs et rôles IAM. Vous pouvez utiliser les informations d'identification du créateur du cluster, puis ajouter le rôle IAM dans la section mapRoles du fichier aws-auth ConfigMap. Vous pouvez également utiliser les entrées d'accès Amazon EKS.
Important : Il est recommandé de ne pas ajouter cluster_creator à ConfigMap. Si vous ne configurez pas correctement votre ConfigMap, tous les utilisateurs et rôles IAM, y compris cluster_creator, peuvent perdre définitivement l'accès au cluster Amazon EKS. Par défaut, le cluster_creator dispose d'un accès administrateur au cluster qu'il a créé. Cela signifie que vous n'êtes pas obligé d'ajouter le cluster_creator à l'aws-auth ConfigMap.
Remarque : dans la résolution suivante, cluster_creator est l'entité IAM qui crée le cluster dans Amazon EKS. L'utilisateur auquel vous accordez l'accès est le designated_user.
Résolution
Remarque : si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l'AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.
Important : Le fichier aws-auth ConfigMap est obsolète. Pour connaître la méthode recommandée pour gérer l'accès aux API Kubernetes, voir Autoriser les utilisateurs IAM à accéder à Kubernetes avec des entrées d'accès EKS.
Identifier l'utilisateur ou le rôle IAM du créateur du cluster
Pour identifier l'entité IAM du créateur du cluster qui dispose d'un accès principal pour configurer votre cluster Amazon EKS, procédez comme suit :
- Recherchez l'appel d'API CreateCluster dans AWS CloudTrail.
- Consultez la section userIdentity de l'appel d'API.
- Identifiez l'entité IAM à laquelle vous accordez une autorisation après avoir créé le cluster.
Utilisez aws-auth ConfigMap pour accorder l'accès au cluster lorsque le créateur du cluster est un utilisateur IAM
Procédez comme suit :
-
Installez kubectl sur votre machine hôte locale. Ou, si vous disposez d'une instance Amazon Elastic Compute Cloud (Amazon EC2) dédiée avec un package kubectl installé, utilisez SSH pour vous connecter à l'instance.
-
Sur la machine hôte sur laquelle kubectl est installé, configurez l'AWS CLI avec les informations d'identification du designated_user :
aws configure -
Pour vérifier votre identité AWS, exécutez la commande get-caller-identity suivante :
aws sts get-caller-identityL'exemple de sortie suivant renvoie les détails de l'utilisateur IAM pour le designated_user :
{ "UserId": "YOUR_USER_ID", "Account": "YOUR_ACCOUNT_NUMBER", "Arn": "arn:aws:iam::YOUR_ACCOUNT_NUMBER:user/YOUR_IAM_USERNAME" } -
Pour répertorier les pods exécutés dans le cluster de l'espace de noms par défaut, exécutez la commande suivante :
kubectl get pods --namespace defaultRemarque : la sortie affiche le message d'erreur « Unauthorized » car le designated_user n'est pas autorisé à accéder au cluster Amazon EKS.
-
Pour configurer les informations d'identification de l'interface de ligne de commande AWS pour l'entité IAM cluster_creator, exécutez la commande suivante :
aws configureRemarque : configurez l'AWS CLI avec les informations d'identification de l'utilisateur ou du rôle IAM qui a créé le cluster. Par défaut, seul le créateur du cluster dispose d'un accès administrateur au cluster Amazon EKS. Si vous avez créé le cluster dans la console Amazon EKS, configurez l'AWS CLI avec la même entité IAM que celle que vous avez utilisée pour vous connecter à la console. Si vous avez créé le cluster avec eksctl, configurez l'interface de ligne de commande AWS avec l'entité IAM qui disposait d'informations d'identification actives lorsque vous avez exécuté eksctl.
-
Pour vérifier que le cluster_creator a accès au cluster, exécutez la commande suivante :
kubectl get podsRemarque : le message d'erreur « Unauthorized » ne s'affiche pas et la sortie répertorie tous les pods qui s'exécutent dans l'espace de noms par défaut. Si la sortie n'affiche aucune ressource, aucun pod n'est en cours d'exécution dans l'espace de noms par défaut.
-
Pour accorder au designated_user l'accès au cluster, ajoutez la section mapUsers au fichier aws-auth.yaml. Pour plus d'informations, consultez la section Ajouter des principaux IAM à votre cluster Amazon EKS.
-
Ajoutez le designated_user à la section mapUsers du fichier aws-auth.yaml, puis enregistrez le fichier.
-
Pour appliquer le nouveau ConfigMap à la configuration RBAC du cluster, exécutez la commande suivante :
kubectl apply -f aws-auth.yaml -
Pour modifier la configuration de l'AWS CLI afin d'utiliser les informations d'identification du designated_user, exécutez la commande suivante :
aws configure
- Pour vérifier que le designated_user a accès au cluster, exécutez la commande suivante :
kubectl get pods
Remarque : le message d'erreur « Unauthorized » ne s'affiche pas et la sortie répertorie tous les pods qui s'exécutent dans l'espace de noms par défaut. Si la sortie n'affiche aucune ressource, aucun pod n'est en cours d'exécution dans l'espace de noms par défaut.
Utiliser aws-auth ConfigMap pour accorder l'accès au cluster lorsque le créateur du cluster est un rôle IAM
Si un rôle IAM a créé le cluster à la place d'un utilisateur IAM, vous ne pouvez pas utiliser les informations d'identification. Vous devez plutôt endosser le rôle IAM qui a créé le cluster pour fournir un accès au designated_user.
Procédez comme suit :
-
Exécutez la commande de l'interface de ligne de commande AWS get-caller-identity pour obtenir les détails de l'utilisateur IAM de assume_role_user :
aws sts get-caller-identity -
Pour vérifier que l'assume_role_user a accès au cluster, exécutez la commande suivante :
kubectl get podsRemarque : la sortie affiche le message d'erreur « Unauthorized » car le designated_user n'est pas autorisé à accéder au cluster Amazon EKS.
-
Pour autoriser l'assume_role_user à assumer le rôle du cluster_creator, exécutez la commande assume-role suivante :
aws sts assume-role --role-arn arn:aws:iam::123456789012:role/cluster_creator --role-session-name testRemarque : remplacez 123456789012 par votre numéro de compte AWS, cluster_creator par le nom de votre rôle et test par le nom de votre session. La sortie renvoie des informations d'identification temporaires :
{ "Credentials": { "AccessKeyId": "YOUR_ACCESS_KEY_ID", "SecretAccessKey": "YOUR_SECRET_ACCESS_KEY", "SessionToken": "YOUR_SESSION_TOKEN", "Expiration": "2026-03-31T18:20:00Z" }, "AssumedRoleUser": { "AssumedRoleId": "AROA1234567890EXAMPLE:test", "Arn": "arn:aws:sts::123456789012:assumed-role/cluster_creator/test" } } -
Utilisez les informations d'identification IAM temporaires pour définir les variables d'environnement AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY et AWS_SESSION_TOKEN, exécutez les commandes suivantes :
export AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY_ID export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_ACCESS_KEY export AWS_SESSION_TOKEN=YOUR_SESSION_TOKENRemarque : l'AWS CLI classe les informations d'identification définies dans les variables d'environnement et les utilise pour appeler les services AWS.
-
Pour vérifier que l'AWS CLI utilise le rôle assumé pour le cluster_creator, exécutez la commande suivante :
aws sts get-caller-identity -
Pour accorder au designated_user l'accès au cluster, ajoutez la section mapUsers au fichier aws-auth.yaml.
-
Ajoutez le designated_user à la section mapUsers du fichier aws-auth.yaml, puis enregistrez le fichier.
-
Pour appliquer la nouvelle configuration à la configuration RBAC du cluster Amazon EKS, exécutez la commande suivante :
kubectl apply -f aws-auth.yaml -
Pour vérifier les variables d'environnement, exécutez la commande suivante :
unset AWS_ACCESS_KEY_ID unset AWS_SESSION_TOKEN unset AWS_SECRET_ACCESS_KEY -
Pour obtenir les détails de l'utilisateur IAM pour le designated_user, exécutez la commande suivante :
aws sts get-caller-identity
- Pour vérifier que le designated_user a accès au cluster, exécutez la commande suivante :
kubectl get pods
Remarque : le message d'erreur « Unauthorized » ne s'affiche pas et la sortie répertorie tous les pods qui s'exécutent dans l'espace de noms par défaut. Si la sortie n'affiche aucune ressource, aucun pod n'est en cours d'exécution dans l'espace de noms par défaut. Si vous utilisez eksctl, consultez la section Gérer les utilisateurs et les rôles IAM.
Utiliser les entrées d'accès EKS pour accorder l'accès au cluster aux utilisateurs et aux rôles IAM
Remarque : Pour plus d'informations sur l'utilisation d'eksctl pour gérer les entrées d'accès, consultez la section Entrées d'accès Amazon EKS dans eksctl.
Créer des entrées d'accès
Créez des entrées d'accès qui accordent l'accès au cluster à vos utilisateurs et rôles IAM.
Remarque : pour accéder à un cluster, il est recommandé d'utiliser des rôles IAM dotés d'informations d'identification à court terme plutôt que des utilisateurs IAM dotés d'informations d'identification à long terme.
Amazon EKS prend en charge trois modes d'authentification pour les entrées d'accès :
- CONFIG_MAP pour utiliser uniquement aws-auth ConfigMap.
- API_AND_CONFIG_MAP pour utiliser à la fois les API d'entrée d'accès EKS et aws-auth ConfigMap. Utilisez ce mode pour migrer les autorisations ** aws-auth** existantes vers les entrées d'accès Amazon EKS. Ce mode donne la priorité à l'authentification via les entrées d'accès Amazon EKS.
- API pour utiliser uniquement les API d'entrée d'accès EKS.
Pour plus d'informations, consultez la section Autoriser les utilisateurs et les rôles IAM à accéder aux API Kubernetes.
Configurer votre cluster avec des entrées d'accès
Pour utiliser la console Amazon EKS afin de configurer votre cluster, procédez comme suit :
- Ouvrez la console Amazon EKS.
- Sélectionnez l'onglet Access (Accès).
- Dans Access configuration (Configuration de l'accès), vérifiez le réglage actuel de Authentication mode (Mode d'authentification).
- Définissez le mode d'authentification du cluster sur API EKS ou API_AND_CONFIG_MAP.
Pour utiliser l'AWS CLI afin de configurer votre cluster, exécutez la commande describe-cluster :
aws eks describe-cluster --name CLUSTER_NAME --query 'cluster.accessConfig.authenticationMode' --region REGION
Remarque : remplacez CLUSTER_NAME par le nom de votre cluster et REGION par votre région AWS.
Si le mode d'authentification du cluster est API EKS ou API_AND_CONFIG_MAP, vous pouvez configurer le cluster afin d'utiliser des entrées d'accès. Sinon, consultez la section Modifier le mode d'authentification pour utiliser les entrées d'accès.
Pour utiliser l'interface de ligne de commande AWS afin de modifier le mode d'authentification, exécutez la commande update-cluster-config suivante :
aws eks update-cluster-config \ --name CLUSTER_NAME \ --access-config authenticationMode=API_AND_CONFIG_MAP
Remarque : remplacez CLUSTER_NAME par le nom de votre cluster. Si vous souhaitez désactiver définitivement la méthode ConfigMap, remplacez API_AND_CONFIG_MAP par API. Vous pouvez passer du mode d'authentification CONFIG_MAP au mode API, mais vous ne pouvez pas passer du mode API ou API_AND_CONFIG_MAP au mode CONFIG_MAP. Pour plus d'informations, consultez la section Gestion des identités et des accès.
Informations connexes
Utilisation d'un rôle IAM dans l'AWS CLI
Migration des entrées aws-auth ConfigMap existantes vers des entrées d'accès
Comment puis-je utiliser l'API d'entrée d'accès Amazon EKS pour récupérer l'accès à un cluster EKS ?
- Sujets
- Containers
- Langue
- Français
Vidéos associées


This article was reviewed and updated on 2026-04-01.
Contenus pertinents
demandé il y a 4 ans
demandé il y a un an
demandé il y a un an
AWS OFFICIELA mis à jour il y a un an
AWS OFFICIELA mis à jour il y a un an