Aidez à améliorer cette page
Pour contribuer à ce guide de l’utilisateur, cliquez sur le lien Modifier cette page sur GitHub qui se trouve dans le volet droit de chaque page.
Rôle IAM de nœud Amazon EKS
Le démon kubelet du nœud Amazon EKS effectue les appels vers les API AWS en votre nom. Les nœuds reçoivent l'autorisation pour ces appels d'API via un profil d'instance IAM et les politiques associées. Avant de pouvoir lancer les nœuds et les enregistrer dans un cluster, vous devez créer un rôle IAM qui sera utilisé par ces nœuds lors de leur lancement. Cette exigence s'applique aux nœuds lancés avec l'AMI optimisée pour Amazon EKS fournie par Amazon, ou avec toute autre AMI de nœud que vous prévoyez d'utiliser. En outre, cette exigence s'applique à la fois aux groupes de nœuds gérés et aux nœuds autogérés.
Note
Vous ne pouvez pas utiliser le même rôle que celui utilisé pour créer des clusters.
Avant de créer des nœuds, vous devez créer un rôle IAM avec les autorisations suivantes :
-
Autorisations permettant au
kubeletde décrire les ressources Amazon EC2 dans le VPC, telles que fournies par la politique AmazonEKSWorkerNodePolicy. Cette politique fournit également les autorisations pour l'agent d'identité du pod Amazon EKS. -
Autorisations permettant au
kubeletd’utiliser des images du conteneur provenant d’Amazon Elastic Container Registry (Amazon ECR), tel que prévu par la politique AmazonEC2ContainerRegistryPullOnly. Les autorisations d'utiliser des images de conteneurs provenant d'Amazon Elastic Container Registry (Amazon ECR) sont nécessaires parce que les modules complémentaires intégrés pour la mise en réseau exécutent des pods qui utilisent des images de conteneurs provenant d'Amazon ECR. -
(Facultatif) Autorisations permettant à l'agent d'identité du pod Amazon EKS d'utiliser l'action
eks-auth:AssumeRoleForPodIdentitypour récupérer les informations d'identification pour les pods. Si vous n’utilisez pas AmazonEKSWorkerNodePolicy, vous devez fournir cette autorisation en plus des autorisations EC2 pour utiliser l’identité du pod EKS. -
(Facultatif) Si vous n’utilisez pas IRSA ou l’identité du pod EKS pour accorder des autorisations aux pods VPC CNI, vous devez alors attribuer les autorisations du VPC CNI au rôle de l’instance. Vous pouvez utiliser soit la politique gérée par
AmazonEKS_CNI_Policy(si vous avez créé votre cluster avec la familleIPv4), soit une politique IPv6 que vous créez (si vous avez créé votre cluster avec la familleIPv6). Cependant, plutôt que d'attacher la politique à ce rôle, nous vous recommandons de l'attacher à un rôle distinct utilisé spécifiquement pour le module complémentaire Amazon VPC CNI. Pour plus d'informations sur la création d'un rôle distinct pour le module complémentaire Amazon VPC CNI, veuillez consulter Configuration du plug-in Amazon VPC CNI pour utiliser IRSA.
Note
Les groupes de nœuds Amazon EC2 doivent avoir un rôle IAM différent de celui du profil Fargate. Pour de plus amples informations, consultez Rôle IAM d’exécution de pod Amazon EKS.
Recherche d'un rôle de nœud existant
Vous pouvez utiliser la procédure suivante pour vérifier si votre compte possède déjà le rôle de nœud Amazon EKS.
-
Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/
. -
Dans le volet de navigation de gauche, choisissez Rôles.
-
Recherchez
eksNodeRole,AmazonEKSNodeRoleouNodeInstanceRoledans la liste des rôles. Si aucun rôle portant l’un de ces noms n’existe, consultez la section Création du rôle IAM de nœud Amazon EKS pour créer le rôle. Si un rôle qui contienteksNodeRole,AmazonEKSNodeRoleouNodeInstanceRoleexiste, sélectionnez-le pour afficher les politiques attachées. -
Choisissez Autorisations.
-
Assurez-vous que les politiques gérées AmazonEKSWorkerNodePolicy et AmazonEC2ContainerRegistryPullOnly sont attachées au rôle ou qu’une politique personnalisée minimale équivalente y est attachée.
Note
Si la politique AmazonEKS_CNI_Policy est attachée au rôle, nous vous recommandons de la supprimer et de l'attacher à un rôle IAM qui est plutôt mappé au compte de service
aws-nodeKubernetes. Pour de plus amples informations, consultez Configuration du plug-in Amazon VPC CNI pour utiliser IRSA. -
Sélectionnez l'onglet Trust relationships (Relations d'approbation), puis Edit trust policy (Modifier la relation d'approbation).
-
Vérifiez que la relation d'approbation contient la politique suivante. Si la relation d'approbation correspond à la politique ci-dessous, sélectionnez Annuler. Si la relation d’approbation ne correspond pas, copiez la politique dans la fenêtre Modifier la politique d’approbation et sélectionnez Mettre à jour la politique.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "Service": [ "ec2.amazonaws.com" ] } } ] }
Création du rôle IAM de nœud Amazon EKS
Vous pouvez créer le rôle IAM de nœud à l’aide de AWS Management Console ou de la CLI AWS.
- AWS Management Console
-
-
Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/
. -
Dans le volet de navigation de gauche, choisissez Rôles.
-
Sur la page Rôles, choisissez Créer un rôle.
-
Sur la page Select trusted entity (Sélectionner une entité de confiance), procédez comme suit :
-
Sous la section Type d’entité de confiance, sélectionnez Service AWS.
-
Sous Cas d'utilisation, choisissez EC2.
-
Choisissez Suivant.
-
-
Sur la page Ajouter des autorisations, associez une stratégie personnalisée ou procédez comme suit :
-
Dans la zone Filter policies (Politiques de filtre), saisissez
AmazonEKSWorkerNodePolicy. -
Sélectionnez la case à gauche d'AmazonEKSWorkerNodePolicy dans les résultats de la recherche.
-
Sélectionnez Clear filters (Effacer les filtres).
-
Dans la zone Filter policies (Politiques de filtre), saisissez
AmazonEC2ContainerRegistryPullOnly. -
Cochez la case à gauche d’AmazonEC2ContainerRegistryPullOnly dans les résultats de la recherche.
Soit la politique gérée AmazonEKS_CNI_Policy, soit une politique IPv6 que vous créez doit être également attachée à ce rôle ou à un autre rôle qui est mappé au compte de service
aws-nodeKubernetes. Nous vous recommandons d'attribuer la politique au rôle associé au compte de service Kubernetes au lieu de l'affecter à ce rôle. Pour de plus amples informations, consultez Configuration du plug-in Amazon VPC CNI pour utiliser IRSA. -
Choisissez Suivant.
-
-
Sur la page Name, review, and create (Nommer, vérifier et créer), procédez comme suit :
-
Pour Role name (Nom de rôle), saisissez un nom unique pour votre rôle, par exemple,
AmazonEKSNodeRole. -
Pour Description, remplacez le texte actuel par un texte descriptif tel que
Amazon EKS - Node role. -
Sous Ajouter des balises (Facultatif), ajoutez des métadonnées au rôle en attachant les identifications sous forme de paires clé-valeur. Pour plus d'informations sur l'utilisation des balises dans IAM, consultez la rubrique Balisage des ressources IAM dans le Guide de l'utilisateur IAM.
-
Sélectionnez Créer un rôle.
-
-
- AWS CLI
-
-
Exécutez la commande ci-dessous pour créer un fichier
node-role-trust-relationship.json.cat >node-role-trust-relationship.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "Service": [ "ec2.amazonaws.com" ] } } ] } EOF -
Créez le rôle IAM.
aws iam create-role \ --role-name AmazonEKSNodeRole \ --assume-role-policy-document file://"node-role-trust-relationship.json" -
Attachez deux politiques gérées IAM requises au rôle IAM.
aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy \ --role-name AmazonEKSNodeRole aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly \ --role-name AmazonEKSNodeRole -
Attachez l'une des politiques IAM suivantes au rôle IAM en fonction de la famille IP avec laquelle vous avez créé votre cluster. La politique doit être attachée à ce rôle ou à un rôle associé au compte de service
aws-nodeKubernetes utilisé pour le plug-in Amazon VPC CNI pour Kubernetes. Nous vous recommandons d'attribuer la politique au rôle associé au compte de service Kubernetes. Pour attribuer la politique au rôle associé au compte de service Kubernetes, veuillez consulter Configuration du plug-in Amazon VPC CNI pour utiliser IRSA.-
IPv4
aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy \ --role-name AmazonEKSNodeRole -
IPv6
-
Copiez la politique suivante et enregistrez-la dans un fichier appelé
vpc-cni-ipv6-policy.json.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AssignIpv6Addresses", "ec2:DescribeInstances", "ec2:DescribeTags", "ec2:DescribeNetworkInterfaces", "ec2:DescribeInstanceTypes" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ] } ] } -
Créez la politique IAM.
aws iam create-policy --policy-name AmazonEKS_CNI_IPv6_Policy --policy-document file://vpc-cni-ipv6-policy.json -
Attachez la politique IAM au rôle IAM. Remplacez
111122223333par votre ID de compte.aws iam attach-role-policy \ --policy-arn arn:aws:iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy \ --role-name AmazonEKSNodeRole
-
-
-