Informations sur les identités et l’accès dans le mode automatique EKS - Amazon EKS

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.

Informations sur les identités et l’accès dans le mode automatique EKS

Cette rubrique décrit les rôles et autorisations de gestion des identités et des accès (IAM) requis pour utiliser le mode automatique EKS. Le mode automatique EKS utilise deux rôles IAM principaux : un rôle IAM de cluster et un rôle IAM de nœud. Ces rôles fonctionnent conjointement avec l’identité du pod EKS et les entrées d’accès EKS pour assurer une gestion complète des accès aux clusters EKS.

Lors de la configuration du mode automatique EKS, vous devez définir ces rôles IAM avec des autorisations spécifiques permettant aux services AWS d’interagir avec les ressources de votre cluster. Ces autorisations couvrent la gestion des ressources de calcul, des volumes de stockage, des équilibreurs de charge et des composants réseau. La compréhension de la configuration de ces rôles est essentielle pour garantir le bon fonctionnement et la sécurité du cluster.

Dans le mode automatique EKS, les rôles IAM AWS sont automatiquement mappés aux autorisations Kubernetes grâce aux entrées d’accès EKS, éliminant ainsi la nécessité de configurer manuellement les ConfigMaps aws-auth ou les liaisons personnalisées. Lors de la création d’un cluster du mode automatique, EKS crée automatiquement les autorisations Kubernetes correspondantes à l’aide d’entrées d’accès, garantissant ainsi que les services AWS et les composants du cluster disposent du niveau d’accès approprié à la fois dans le système d’autorisation AWS et dans Kubernetes. Cette intégration automatisée réduit la complexité de la configuration et aide à prévenir les problèmes d’autorisations fréquemment rencontrés lors de la gestion des clusters EKS.

Rôle IAM du cluster

Le rôle IAM du cluster est un rôle de gestion des identités et des accès AWS (IAM) utilisé par Amazon EKS pour gérer les autorisations des clusters Kubernetes. Ce rôle accorde à Amazon EKS les autorisations nécessaires pour interagir avec d’autres services AWS au nom de votre cluster. Il est automatiquement configuré avec les autorisations Kubernetes à l’aide des entrées d’accès EKS.

  • Vous devez attacher des politiques IAM AWS à ce rôle.

  • Le mode automatique EKS attache automatiquement les autorisations Kubernetes à ce rôle via les entrées d’accès EKS.

  • Avec le mode automatique EKS, AWS recommande de créer un seul rôle IAM de cluster par compte AWS.

  • AWS recommande de nommer ce rôle AmazonEKSAutoClusterRole.

  • Ce rôle nécessite des autorisations pour plusieurs services AWS afin de gérer les ressources, notamment les volumes EBS, les équilibreurs de charge Elastic Load Balancers et les instances EC2.

  • La configuration recommandée pour ce rôle inclut plusieurs politiques IAM gérées par AWS, correspondant aux différentes capacités offertes par le mode automatique EKS.

    • AmazonEKSComputePolicy

    • AmazonEKSBlockStoragePolicy

    • AmazonEKSLoadBalancingPolicy

    • AmazonEKSNetworkingPolicy

    • AmazonEKSClusterPolicy

Pour plus d’informations sur le rôle IAM du cluster et les politiques IAM gérées par AWS, consultez :

Pour plus d’informations sur les autorisations d’accès Kubernetes, consultez :

Rôle IAM de nœud

Le rôle IAM du nœud est un rôle Gestion des identités et des accès AWS (IAM) utilisé par Amazon EKS pour gérer les autorisations des composants master dans les clusters Kubernetes. Ce rôle accorde aux instances EC2 exécutées comme nœuds Kubernetes les autorisations nécessaires pour interagir avec les services et ressources AWS. Il est automatiquement configuré avec les autorisations Kubernetes RBAC à l’aide des entrées d’accès EKS.

  • Vous devez attacher des politiques IAM AWS à ce rôle.

  • Le mode automatique EKS attache automatiquement ces autorisations Kubernetes RBAC à ce rôle via les entrées d’accès EKS.

  • AWS recommande de nommer ce rôle AmazonEKSAutoNodeRole.

  • Avec le mode automatique EKS, AWS recommande de créer un seul rôle IAM de nœud par compte AWS.

  • Ce rôle dispose d’autorisations limitées. Les principales autorisations incluent la possibilité d’assumer un rôle d’identité du pod et l’autorisation d’extraire des images depuis ECR.

  • AWS recommande d’utiliser les politiques IAM gérées par AWS suivantes :

    • AmazonEKSWorkerNodeMinimalPolicy

    • AmazonEC2ContainerRegistryPullOnly

Pour plus d’informations sur le rôle IAM du cluster et les politiques IAM gérées par AWS, consultez :

Pour plus d’informations sur les autorisations d’accès Kubernetes, consultez :

Rôle lié à un service

Amazon EKS utilise un rôle lié à un service (Service-Linked Role, SLR) pour certaines opérations. Un rôle lié à un service est un type unique de rôle IAM lié directement à Amazon EKS. Les rôles liés à un service sont prédéfinis par Amazon EKS et incluent toutes les autorisations requises par le service pour appeler d'autres services AWS en votre nom.

AWS crée et configure automatiquement le SLR. Vous ne pouvez supprimer un SLR qu’après avoir supprimé les ressources associées. Vos ressources Amazon EKS sont ainsi protégées, car vous ne pouvez pas involontairement supprimer l’autorisation d’accéder aux ressources.

La politique SLR accorde à Amazon EKS les autorisations nécessaires pour observer et supprimer les composants d’infrastructure essentiels, notamment les ressources EC2 (instances, interfaces réseau, groupes de sécurité), les ressources ELB (équilibreurs de charge, groupes cibles), les fonctionnalités CloudWatch (journalisation et métriques) et les rôles IAM dont le nom commence par « eks ». Il active également le réseau de points de terminaison privés via l’association VPC/zone hébergée, et inclut les autorisations pour la surveillance EventBridge ainsi que pour le nettoyage automatique des ressources balisées EKS.

Pour plus d’informations, consultez :

Balises AWS personnalisées pour les ressources EKS Auto

Par défaut, les stratégies gérées associées au mode automatique EKS ne permettent pas d’appliquer des balises définies par l’utilisateur aux ressources AWS provisionnées par le mode automatique. Si vous souhaitez appliquer vos propres balises aux ressources AWS, vous devez accorder des autorisations supplémentaires au rôle IAM du cluster afin qu’il dispose des droits suffisants pour créer et modifier des balises sur les ressources AWS. Voici un exemple de politique qui autorisera un accès illimité au balisage :

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Compute", "Effect": "Allow", "Action": [ "ec2:CreateFleet", "ec2:RunInstances", "ec2:CreateLaunchTemplate" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}" }, "StringLike": { "aws:RequestTag/eks:kubernetes-node-class-name": "*", "aws:RequestTag/eks:kubernetes-node-pool-name": "*" } } }, { "Sid": "Storage", "Effect": "Allow", "Action": [ "ec2:CreateVolume", "ec2:CreateSnapshot" ], "Resource": [ "arn:aws:ec2:*:*:volume/*", "arn:aws:ec2:*:*:snapshot/*" ], "Condition": { "StringEquals": { "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}" } } }, { "Sid": "Networking", "Effect": "Allow", "Action": "ec2:CreateNetworkInterface", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}" }, "StringLike": { "aws:RequestTag/eks:kubernetes-cni-node-name": "*" } } }, { "Sid": "LoadBalancer", "Effect": "Allow", "Action": [ "elasticloadbalancing:CreateLoadBalancer", "elasticloadbalancing:CreateTargetGroup", "elasticloadbalancing:CreateListener", "elasticloadbalancing:CreateRule", "ec2:CreateSecurityGroup" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}" } } }, { "Sid": "ShieldProtection", "Effect": "Allow", "Action": [ "shield:CreateProtection" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}" } } }, { "Sid": "ShieldTagResource", "Effect": "Allow", "Action": [ "shield:TagResource" ], "Resource": "arn:aws:shield::*:protection/*", "Condition": { "StringEquals": { "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}" } } } ] }

Référence de stratégie d’accès

Pour plus d’informations sur les autorisations Kubernetes utilisées par le mode automatique EKS, consultez Vérification des autorisations des stratégies d’accès.