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.
Comprendre le fonctionnement de l’identité du pod Amazon EKS
Les associations de l’identité du pod Amazon EKS offrent une capacité de gestion des informations d’identification à utiliser pour les applications, de la même façon que les profils d’instance Amazon EC2 fournissent des informations d’identification aux instances EC2.
L’identité du pod Amazon EKS fournit des informations d’identification à vos charges de travail avec une API d’authentification EKS supplémentaire et un pod d’agent qui s’exécute sur chaque nœud.
Dans vos modules complémentaires, tels que les modules complémentaires Amazon EKS et le contrôleur autogéré, les opérateurs et autres modules complémentaires, l’auteur doit mettre à jour son logiciel pour utiliser les derniers kits SDK AWS. Pour la liste de compatibilité entre l’identité du pod EKS et les modules complémentaires produits par Amazon EKS, reportez-vous à la section précédente Restrictions relatives à l’identité du pod EKS.
Utilisation des identités du pod EKS dans votre code
Dans votre code, vous pouvez utiliser les kits SDK AWS pour accéder aux services AWS. Vous écrivez du code pour créer un client pour un service AWS avec un kit SDK, et par défaut, le kit SDK recherche dans une chaîne d’emplacements les informations d’identification de la gestion des identités et des accès AWS à utiliser. Une fois les informations d’identification valides trouvées, la recherche s’arrête. Pour plus d’informations sur les emplacements par défaut utilisés, consultez Chaîne de fournisseurs d’informations d’identification dans le Guide de référence des kits SDK et des outils AWS.
Les identités du pod EKS ont été ajoutées au fournisseur d’informations d’identification du conteneur qui est recherché dans une étape de la chaîne d’informations d’identification par défaut. Si vos charges de travail utilisent actuellement des informations d’identification antérieures dans la chaîne de fournisseurs d’informations d’identification, ces informations continueront d’être utilisées même si vous configurez une association d’identité du pod EKS pour la même charge de travail. Ainsi, vous pouvez migrer en toute sécurité à partir d’autres types d’informations d’identification en créant d’abord l’association, avant de supprimer les anciennes informations d’identification.
Le fournisseur d’informations d’identification de conteneur fournit des informations d’identification temporaires à partir d’un agent qui s’exécute sur chaque nœud. Dans Amazon EKS, l’agent est l’agent d’identité du pod Amazon EKS et sur Amazon Elastic Container Service, l’agent est le amazon-ecs-agent. Les kits SDK utilisent des variables d’environnement pour localiser l’agent auquel se connecter.
En revanche, les rôles IAM pour les comptes de service fournissent un jeton d’identité Web que le kit SDK AWS doit échanger avec le service de jetons de sécurité AWS à l’aide d’AssumeRoleWithWebIdentity.
Fonctionnement de l’agent de l’identité du pod EKS avec un pod
-
Lorsque Amazon EKS démarre un nouveau pod qui utilise un compte de service associé à une identité du pod EKS, le cluster ajoute le contenu suivant au manifeste du pod :
env: - name: AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE value: "/var/run/secrets/pods.eks.amazonaws.com/serviceaccount/eks-pod-identity-token" - name: AWS_CONTAINER_CREDENTIALS_FULL_URI value: "http://169.254.170.23/v1/credentials" volumeMounts: - mountPath: "/var/run/secrets/pods.eks.amazonaws.com/serviceaccount/" name: eks-pod-identity-token volumes: - name: eks-pod-identity-token projected: defaultMode: 420 sources: - serviceAccountToken: audience: pods.eks.amazonaws.com expirationSeconds: 86400 # 24 hours path: eks-pod-identity-token -
Kubernetes sélectionne le nœud sur lequel exécuter le pod. Ensuite, l’agent d’identité du pod Amazon EKS sur le nœud utilise l’action AssumeRoleForPodIdentity pour récupérer des informations d’identification temporaires auprès de l’API d’authentification EKS.
-
L’agent d’identité du pod EKS met ces identités à la disposition des kits SDK AWS que vous exécutez à l’intérieur de vos conteneurs.
-
Vous utilisez le kit SDK dans votre application sans spécifier de fournisseur d’informations d’identification pour utiliser la chaîne d’informations d’identification par défaut. Vous pouvez également spécifier le fournisseur d’informations d’identification du conteneur. Pour plus d’informations sur les emplacements par défaut utilisés, consultez Chaîne de fournisseurs d’informations d’identification dans le Guide de référence des kits SDK et des outils AWS.
-
Le kit SDK utilise les variables d’environnement pour se connecter à l’agent d’identité du pod EKS et récupérer les informations d’identification.
Note
Si vos charges de travail utilisent actuellement des informations d’identification antérieures dans la chaîne de fournisseurs d’informations d’identification, ces informations continueront d’être utilisées même si vous configurez une association d’identité du pod EKS pour la même charge de travail.