Aidez à améliorer cette page
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Découvrez comment EKS Pod Identity permet aux pods d'accéder aux AWS services
Les applications situées dans les conteneurs d'un pod peuvent utiliser un AWS SDK ou la AWS CLI pour envoyer des demandes d'API aux AWS services à l'aide des AWS autorisations Identity and Access Management (IAM). Les applications doivent signer leurs demandes AWS d'API avec des AWS informations d'identification.
EKS Pod Identities permet de gérer les informations d'identification de vos applications, de la même manière que les profils d' EC2 instance Amazon fournissent des informations d'identification aux EC2 instances Amazon. Au lieu de créer et de distribuer vos AWS informations d'identification aux conteneurs ou d'utiliser le rôle de l' EC2 instance Amazon, vous associez un rôle IAM à un compte de service Kubernetes et configurez vos Pods pour utiliser le compte de service.
Chaque identité du pod EKS mappe un rôle à un compte de service dans un espace de noms dans le cluster spécifié. Si vous avez la même application dans plusieurs clusters, vous pouvez faire des associations identiques dans chaque cluster sans modifier la politique d’approbation du rôle.
Si un pod utilise un compte de service qui a une association, Amazon EKS définit des variables d’environnement dans les conteneurs du pod. Les variables d'environnement configurent AWS SDKs, y compris la AWS CLI, pour utiliser les informations d'identification EKS Pod Identity.
Avantages des identités du pod EKS
Les identités du pod EKS offrent les avantages suivants :
-
Privilège minimal : vous pouvez attribuer des autorisations IAM à un compte de service, et seuls les pods qui utilisent ce compte de service ont accès à ces autorisations. Cette fonctionnalité élimine également le besoin de solutions tierces telles que
kiam
oukube2iam
. -
Isolation des informations d'identification : lorsque l'accès à l'Amazon EC2 Instance Metadata Service (IMDS) est restreint, les conteneurs d'un pod peuvent uniquement récupérer les informations d'identification pour le rôle IAM associé au compte de service utilisé par le conteneur. Un conteneur n'a jamais accès aux informations d'identification utilisées par d'autres conteneurs dans d'autres pods. Si l'IMDS n'est pas restreint, les conteneurs du pod ont également accès au rôle IAM du nœud Amazon EKS et les conteneurs peuvent être en mesure d'accéder aux informations d'identification des rôles IAM des autres pods sur le même nœud. Pour plus d'informations, consultez Restreindre l'accès au profil d'instance affecté au composant master.
Note
Les pods configurés avec hostNetwork: true
auront toujours un accès IMDS, mais la CLI AWS SDKs and utilisera les informations d'identification du Pod Identity lorsqu'elle est activée.
-
Auditabilité — La journalisation des accès et des événements est disponible AWS CloudTrail pour faciliter l'audit rétrospectif.
Important
Les conteneurs ne constituent pas une limite de sécurité, et l'utilisation de Pod Identity n'y change rien. Les pods assignés au même nœud partageront un noyau et potentiellement d'autres ressources en fonction de la configuration de votre pod. Alors que les pods exécutés sur des nœuds distincts seront isolés au niveau de la couche de calcul, certaines applications de nœuds disposent d'autorisations supplémentaires dans l'API Kubernetes au-delà du cadre d'une instance individuelle. Par exemple kubelet
kube-proxy
, les pilotes de stockage CSI ou vos propres applications Kubernetes.
EKS Pod Identity est une méthode plus simpleRôles IAM pour les comptes de service, car elle n'utilise pas de fournisseurs d'identité OIDC. L’identité du pod EKS présente les améliorations suivantes :
-
Opérations indépendantes — Dans de nombreuses organisations, la création de fournisseurs d'identité OIDC relève de la responsabilité d'équipes différentes de celle de l'administration des clusters Kubernetes. L’identité du pod EKS présente une séparation nette des tâches, où toute la configuration des associations de l’identité du pod EKS est effectuée dans Amazon EKS et toute la configuration des autorisations IAM est effectuée dans IAM.
-
Réutilisabilité : l’identité du pod EKS utilise un seul principal IAM au lieu des principaux distincts pour chaque cluster que les rôles IAM des comptes de service utilisent. Votre administrateur IAM ajoute le principal suivant à la politique d’approbation de n’importe quel rôle pour le rendre utilisable par les identités du pod EKS.
"Principal": { "Service": "pods.eks.amazonaws.com" }
-
Évolutivité — Chaque ensemble d'informations d'identification temporaires est utilisé par le service EKS Auth dans EKS Pod Identity, et non par chaque AWS SDK que vous exécutez dans chaque module. Ensuite, l'agent d'identité Amazon EKS Pod qui s'exécute sur chaque nœud émet les informations d'identification au SDKs. Ainsi, la charge est réduite à une fois pour chaque nœud et n'est pas dupliquée dans chaque pod. Pour plus de détails sur le processus, consultez Découvrez le fonctionnement d'EKS Pod Identity.
Pour plus d’informations sur la comparaison des deux solutions, consultez Autoriser les charges de travail Kubernetes à utiliser les comptes de service Kubernetes AWS.
Présentation de la configuration des identités du pod EKS
Activez les identités du pod EKS en effectuant les procédures suivantes :
-
Configuration de l'agent d'identité Amazon EKS Pod— Vous n'effectuez cette procédure qu'une seule fois pour chaque cluster. Il n'est pas nécessaire de terminer cette étape si le mode automatique EKS est activé sur votre cluster.
-
Attribuer un rôle IAM à un compte de service Kubernetes— Effectuez cette procédure pour chaque ensemble unique d'autorisations que vous souhaitez attribuer à une application.
-
Configurer les pods pour accéder aux AWS services avec des comptes de service— Complétez cette procédure pour chaque Pod qui a besoin d'accéder aux AWS services.
-
Utiliser l'identité du pod avec le AWS SDK— Vérifiez que la charge de travail utilise un AWS SDK d'une version prise en charge et qu'elle utilise la chaîne d'informations d'identification par défaut.
Limites
-
Jusqu'à 5 000 associations d'identité EKS Pod par cluster pour mapper les rôles IAM aux comptes de service Kubernetes sont prises en charge.
Considérations
-
Association de rôles IAM : chaque compte de service Kubernetes d'un cluster peut être associé à un rôle IAM à partir du même compte que AWS le cluster. Pour modifier le rôle, modifiez l'association EKS Pod Identity. Pour l'accès entre comptes, déléguez l'accès au rôle à l'aide des rôles IAM. Pour en savoir plus, consultez la section Déléguer l'accès entre les AWS comptes à l'aide de rôles IAM dans le Guide de l'utilisateur IAM.
-
EKS Pod Identity Agent : L'agent Pod Identity est requis pour utiliser EKS Pod Identity. L'agent s'exécute en tant que Kubernetes
DaemonSet
sur les nœuds du cluster, fournissant des informations d'identification uniquement aux pods du même nœud. Il utilise le port d'occupation duhostNetwork
nœud80
et2703
l'adresse locale du lien (169.254.170.23
pour IPv4,[fd00:ec2::23]
pour IPv6). S'il IPv6 est désactivé dans votre cluster, désactivez-le IPv6 pour le Pod Identity Agent. Pour en savoir plus, voir Désactiver IPv6 dans l'agent d'identité EKS Pod. -
Cohérence éventuelle : les associations EKS Pod Identity sont finalement cohérentes, avec des délais potentiels de plusieurs secondes après les appels d'API. Évitez de créer ou de mettre à jour des associations dans des chemins de code critiques à haute disponibilité. Effectuez plutôt ces actions dans le cadre de routines d'initialisation ou de configuration distinctes et moins fréquentes. Pour en savoir plus, consultez la section Groupes de sécurité par pod dans le guide des meilleures pratiques d'EKS.
-
Considérations relatives au proxy et au groupe de sécurité : pour les pods utilisant un proxy, ajoutez
169.254.170.23
(IPv4) et[fd00:ec2::23]
(IPv6) aux variables d'no_proxy/NO_PROXY
environnement afin d'éviter l'échec des demandes adressées à l'agent EKS Pod Identity. Si vous utilisez des groupes de sécurité pour les pods avec le AWS VPC CNI, définissez l'ENABLE_POD_ENI
indicateur sur « true » et lePOD_SECURITY_GROUP_ENFORCING_MODE
drapeau sur « standard ». Pour en savoir plus, voir Attribuer des groupes de sécurité à des pods individuels.
Versions du cluster de l’identité du pod EKS
Pour utiliser EKS Pod Identity, le cluster doit disposer d'une version de plate-forme identique ou ultérieure à la version répertoriée dans le tableau suivant, ou d'une version de Kubernetes ultérieure aux versions répertoriées dans le tableau. Pour trouver la version suggérée de l'agent d'identité Amazon EKS Pod pour une version de Kubernetes, consultez. Vérifier la compatibilité de la version du module complémentaire Amazon EKS avec un cluster
Version de Kubernetes | Version de la plateforme |
---|---|
Versions de Kubernetes non répertoriées |
Toutes les versions de plateforme sont prises en charge |
|
|
|
|
|
|
Restrictions relatives à l’identité du pod EKS
Les identités du pod EKS sont disponibles sur les éléments suivants :
-
Les versions du cluster Amazon EKS répertoriées dans la rubrique précédente Versions du cluster de l’identité du pod EKS.
-
Nœuds de travail du cluster qui sont des EC2 instances Amazon Linux.
Les identités EKS Pod ne sont pas disponibles dans les pays suivants :
-
AWS Outposts.
-
Amazon EKS Anywhere.
-
Clusters Kubernetes que vous créez et exécutez sur Amazon. EC2 Les composants de l’identité du pod Amazon EKS sont uniquement disponibles sur Amazon EKS.
Vous ne pouvez pas utiliser EKS Pod Identities avec :
-
Des pods qui s'exécutent n'importe où, sauf sur EC2 les instances Linux Amazon. Les pods Linux et Windows qui s'exécutent sur AWS Fargate (Fargate) ne sont pas pris en charge. Les pods qui s'exécutent sur des EC2 instances Amazon Windows ne sont pas pris en charge.