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.
Vous souhaitez contribuer à ce guide de l'utilisateur ? Faites défiler cette page vers le bas et sélectionnez Modifier cette page sur GitHub. Vos contributions contribueront à améliorer notre guide de l'utilisateur pour tous.
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.
Configuration pods pour accéder aux AWS services avec des comptes de service
Si un Pod doit accéder aux AWS services, alors vous devez le configurer pour utiliser un Kubernetes compte de service. Le compte de service doit être associé à un rôle AWS Identity and Access Management (IAM) autorisé à accéder aux AWS services.
-
Un cluster existant. Si vous n'en avez pas, vous pouvez en créer un à l'aide de l'un des guides inclus dansCommencez avec Amazon EKS.
-
Un existant Kubernetes un compte de service et une association EKS Pod Identity qui associe le compte de service à un IAM rôle. Le rôle doit être associé à une IAM politique contenant les autorisations que vous souhaitez Pods de devoir utiliser des AWS services. Pour plus d'informations sur la façon de créer et de configurer le compte de service et le rôle, consultez Attribuez un IAM rôle pour un Kubernetes compte de service.
-
La dernière version AWS CLI installée et configurée sur votre appareil ou AWS CloudShell. Vous pouvez vérifier votre version actuelle avec
aws --version | cut -d / -f2 | cut -d ' ' -f1
. Des gestionnaires de packages tels queyum
apt-get
, ou Homebrew for macOS ont souvent plusieurs versions de retard par rapport à la dernière version du AWS CLI. Pour installer la dernière version, consultez la section Installation et configuration rapide avec aws configure dans le Guide de l'utilisateur de l'interface de ligne de AWS commande. La AWS CLI version installée dans le AWS CloudShell peut également être en retard de plusieurs versions par rapport à la dernière version. Pour le mettre à jour, consultez la section Installation AWS CLI dans votre répertoire personnel dans le guide de AWS CloudShell l'utilisateur. -
L'outil de ligne de
kubectl
commande est installé sur votre appareil ou AWS CloudShell. La version peut être identique ou supérieure à une version mineure antérieure ou ultérieure au Kubernetes version de votre cluster. Par exemple, si la version de votre cluster est1.29
, vous pouvez utiliser la versionkubectl
1.28
,1.29
ou1.30
. Pour installer ou mettre à niveaukubectl
, veuillez consulter Configurer kubectl et eksctl. -
Un fichier existant
kubectl
config
qui contient la configuration de votre cluster. Pour créer un fichierkubectl
config
, consultez Connect kubectl à un EKS cluster en créant un fichier kubeconfig.-
Utilisez la commande suivante pour créer un manifeste de déploiement dans lequel vous pouvez déployer un Pod pour confirmer la configuration avec. Remplacez le
example values
avec vos propres valeurs.cat >my-deployment.yaml <<EOF apiVersion: apps/v1 kind: Deployment metadata: name: my-app spec: selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: serviceAccountName: my-service-account containers: - name: my-app image: public.ecr.aws/nginx/nginx:X.XX EOF
-
Appliquez le manifeste à votre cluster.
kubectl apply -f my-deployment.yaml
-
Vérifiez que les variables d'environnement requises existent pour votre Pod.
-
Consultez le Pods qui ont été déployés lors du déploiement de l'étape précédente.
kubectl get pods | grep my-app
L'exemple qui suit illustre un résultat.
my-app-6f4dfff6cb-76cv9 1/1 Running 0 3m28s
-
Confirmez que le Pod possède un montage de fichier de jeton de compte de service.
kubectl describe pod my-app-6f4dfff6cb-76cv9 | grep AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE:
L'exemple qui suit illustre un résultat.
AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE: /var/run/secrets/pods.eks.amazonaws.com/serviceaccount/eks-pod-identity-token
-
-
Confirmez que votre Pods peut interagir avec les AWS services en utilisant les autorisations que vous avez attribuées dans la IAM politique associée à votre rôle.
Note
Quand un Pod utilise les AWS informations d'identification d'un IAM rôle associé à un compte de service, le AWS CLI ou un autre SDKs dans les conteneurs pour cela Pod utilisez les informations d'identification fournies par ce rôle. Si vous ne limitez pas l'accès aux informations d'identification fournies au IAM rôle de EKS nœud IAMRôle EKS du nœud Amazon Amazon, le Pod a toujours accès à ces informations d'identification. Pour plus d'informations, consultez Restreindre l'accès au profil d'instance affecté au composant master
. Si vos recettes Pods Impossible d'interagir avec les services comme prévu, suivez les étapes suivantes pour vérifier que tout est correctement configuré.
-
Confirmez que votre Pods utilisez une AWS SDK version qui permet d'assumer un IAM rôle via une association EKS Pod Identity. Pour de plus amples informations, veuillez consulter Utilisez l'identité du pod avec le AWS SDK.
-
Vérifiez que le déploiement utilise le compte de service.
kubectl describe deployment my-app | grep "Service Account"
L'exemple qui suit illustre un résultat.
Service Account: my-service-account
-
-