Comment configurer un utilisateur SSO pour accéder à mon cluster Amazon EKS ?
Je souhaite configurer un utilisateur d'AWS IAM Identity Center pour accéder à mon cluster Amazon Elastic Kubernetes Service (Amazon EKS).
Résolution
Prérequis
- IAM Identity Center doit être activé et configuré
- L'utilisateur SSO doit être associé au compte AWS qui contient le cluster EKS
- Le cluster EKS doit prendre en charge les entrées d'accès (version de plateforme eks.2 ou ultérieure)
Pour configurer un utilisateur SSO afin qu'il accède à votre cluster Amazon EKS, procédez comme suit :
Configurer l'AWS CLI pour l'authentification SSO
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.
Configurez l'AWS CLI pour utiliser l'authentification SSO afin que l'utilisateur SSO puisse s'authentifier et assumer un rôle Gestion des identités et des accès AWS (AWS IAM).
Pour plus d'informations sur la configuration de l'AWS CLI avec IAM Identity Center, consultez la section Intégration de l'AWS CLI à IAM Identity Center.
Configurer kubectl pour utiliser le profil SSO
Pour configurer kubectl afin qu'il utilise votre profil SSO, exécutez la commande update-kubeconfig de l’AWS CLI suivante :
aws eks update-kubeconfig --name your-cluster-name --profile your-sso-profile
Remarque : remplacez your-cluster-name par le nom de votre cluster EKS. Remplacez your-sso-profile par le nom du profil SSO.
Vérifier le mode d'authentification du cluster
Pour vérifier le mode d'authentification du cluster, exécutez la commande describe-cluster de l’AWS CLI suivante :
aws eks describe-cluster --name your-cluster-name --query "cluster.accessConfig.authenticationMode" --profile your-sso-profile
Remarque : remplacez your-cluster-name par le nom de votre cluster EKS. Remplacez your-sso-profile par le nom du profil SSO.
Si la sortie affiche API ou API_AND_CONFIG_MAP, les entrées d'accès sont activées. Si la sortie affiche CONFIG_MAP, seule la méthode aws-auth ConfigMap est disponible.
Utiliser les entrées d'accès pour configurer l'accès
Choisissez l'un des niveaux d'autorisation suivants :
Accorder des autorisations d'administration à l'échelle du cluster
Procédez comme suit :
- Ouvrez la console Amazon EKS.
- Dans le volet de navigation, sélectionnez Clusters.
- Sélectionnez votre cluster.
- Sélectionnez l’onglet Accès.
- Dans la section Entrées d'accès, choisissez Créer une entrée d'accès.
- Dans ARN du principal IAM, entrez l'ARN de votre rôle SSO sans le composant du chemin.
- Dans Type, sélectionnez Standard.
- Sélectionnez Suivant.
- Dans Nom de la politique, choisissez AmazonEKSClusterAdminPolicy.
- Dans Portée d’accès, choisissez Cluster.
- Choisissez Suivant, puis Créer.
Accorder des autorisations spécifiques à l'espace de noms
Procédez comme suit :
- Ouvrez la console Amazon EKS.
- Dans le volet de navigation, sélectionnez Clusters.
- Sélectionnez votre cluster.
- Sélectionnez l’onglet Accès.
- Dans la section Entrées d'accès, choisissez Créer une entrée d'accès.
- Dans ARN du principal IAM, entrez l'ARN de votre rôle SSO sans le composant du chemin.
- Dans Type, sélectionnez Standard.
- Sélectionnez Suivant.
- Dans Nom de la politique, choisissez AmazonEKSAdminViewPolicy ou AmazonEKSEditPolicy en fonction de vos exigences.
- Dans Portée d’accès, choisissez Espace de noms.
- Dans Espace de noms, entrez le nom de votre espace de noms.
- Choisissez Suivant, puis Créer.
Pour plus d'informations sur les entrées d'accès, consultez la section Autoriser les utilisateurs IAM à accéder à Kubernetes avec des entrées d'accès EKS.
Utiliser aws-auth ConfigMap pour configurer l'accès
Important : lorsque vous utilisez aws-auth avec IAM Identity Center, utilisez l'ARN du rôle IAM sans le composant de chemin. Par exemple, si l'ARN de votre rôle est arn:aws:iam::123456789012:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_AdministratorAccess_1234567890abcdef, supprimez le chemin pour utiliser arn:aws:iam::123456789012:role/AWSReservedSSO_AdministratorAccess_1234567890abcdef.
Si votre cluster ne prend pas en charge les entrées d'accès ou si vous préférez utiliser la méthode ConfigMap aws-auth, procédez comme suit :
Accorder des autorisations d'administration à l'échelle du cluster
Créez un fichier YAML avec la configuration suivante :
apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - rolearn: arn:aws:iam::123456789012:role/AWSReservedSSO_AdministratorAccess_1234567890abcdef username: sso-admin-user groups: - system:masters
Remarque : remplacez la valeur de rolearn par l'ARN de votre rôle SSO sans le composant de chemin. Remplacez sso-admin-user par votre nom d'utilisateur préféré.
Appliquez la configuration :
kubectl apply -f aws-auth-configmap.yaml
Accorder des autorisations spécifiques à l'espace de noms
Créez un rôle et un RoleBinding pour un accès spécifique à l'espace de noms :
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: sso-user-role namespace: your-namespace rules: - apiGroups: [""] resources: ["pods", "services", "configmaps"] verbs: ["get", "list", "watch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: sso-user-rolebinding namespace: your-namespace subjects: - kind: User name: sso-user apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: sso-user-role apiGroup: rbac.authorization.k8s.io
Remarque : remplacez your-namespace par l’espace de noms. Remplacez sso-user par le nom d'utilisateur que vous avez spécifié dans le fichier ConfigMap aws-auth.
Appliquez la configuration :
kubectl apply -f role-rolebinding.yaml
Mettez à jour le fichier ConfigMap aws-auth pour associer le rôle SSO au nom d'utilisateur :
apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - rolearn: arn:aws:iam::123456789012:role/AWSReservedSSO_AdministratorAccess_1234567890abcdef username: sso-user
Remarque : remplacez la valeur de rolearn par l'ARN de votre rôle SSO sans le composant de chemin.
Appliquez la configuration :
kubectl apply -f aws-auth-configmap.yaml
Pour plus d'informations sur l'aws-auth ConfigMap, consultez la section Autoriser les utilisateurs IAM à accéder à Kubernetes avec une ConfigMap.
Vérifier l'accès
Pour vérifier que l'utilisateur SSO peut accéder au cluster, exécutez la commande suivante :
kubectl get nodes
Si la commande renvoie une liste de nœuds, cela signifie que l'utilisateur SSO s'est authentifié avec succès auprès du cluster.
Informations connexes
- Sujets
- Containers
- Langue
- Français

Contenus pertinents
- demandé il y a 3 ans
- demandé il y a 10 mois
- demandé il y a 2 ans
- demandé il y a 2 ans
AWS OFFICIELA mis à jour il y a un an
AWS OFFICIELA mis à jour il y a un an