Rôle IAM d’exécution de pod Amazon 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.

Rôle IAM d’exécution de pod Amazon EKS

Le rôle d’exécution de pod Amazon EKS est nécessaire pour exécuter des pods sur l’infrastructure AWS Fargate.

Lorsque votre cluster crée des pods sur l’infrastructure AWS Fargate, les composants s’exécutant sur l’infrastructure Fargate doivent effectuer des appels d’API AWS en votre nom. Cela leur permet d'effectuer des actions telles que l'extraction d'images de conteneurs d'Amazon ECR ou l'acheminement de journaux vers d'autres services AWS. Pour ce faire, le rôle d’exécution de pod Amazon EKS fournit les autorisations IAM.

Lorsque vous créez un profil Fargate, vous devez spécifier un rôle d’exécution de pod pour les composants Amazon EKS qui s’exécutent sur l’infrastructure Fargate à l’aide du profil. Ce rôle est ajouté au Contrôle d’accès basé sur les rôles (RBAC) Kubernetes du cluster à des fins d’autorisation. Cela permet au kubelet qui s’exécute sur l’infrastructure Fargate de s’enregistrer auprès de votre cluster Amazon EKS afin qu’il puisse apparaître dans votre cluster en tant que nœud.

Note

Le profil Fargate doit avoir un rôle IAM différent des groupes de nœuds Amazon EC2.

Important

Les conteneurs s’exécutant dans le pod Fargate ne peuvent pas assumer les autorisations IAM associées à un rôle d’exécution de pod. Pour donner aux conteneurs de votre pod Fargate les autorisations d’accès à d’autres services AWS, vous devez utiliser les rôles IAM pour les comptes de service.

Avant de créer un profil Fargate, vous devez créer un rôle IAM avec la AmazonEKSFargatePodExecutionRolePolicy.

Vérifiez si un rôle d’exécution de pod existant est correctement configuré

Vous pouvez suivre la procédure suivante pour vérifier si votre compte dispose déjà d’un rôle d’exécution de pod Amazon EKS correctement configuré. Afin d’éviter tout problème de sécurité lié à un délégué confus, il est important que le rôle restreigne l’accès en fonction de SourceArn. Vous pouvez modifier le rôle d'exécution si nécessaire pour inclure la prise en charge des profils Fargate sur d'autres clusters.

  1. Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.

  2. Dans le volet de navigation de gauche, choisissez Rôles.

  3. Dans la page Roles (Rôles), recherchez dans la liste des rôles AmazonEKSFargatePodExecutionRole. Si le rôle n’existe pas, consultez Création du rôle d’exécution de pod Amazon EKS pour créer le rôle. Si le rôle existe, sélectionnez-le.

  4. Dans la page AmazonEKSFargatePodExecutionRole, procédez comme suit :

    1. Choisissez Autorisations.

    2. Assurez-vous que la politique gérée par Amazon AmazonEKSFargatePodExecutionRolePolicy est attachée au rôle.

    3. Choisissez Trust Relationships (Relations d'approbation).

    4. Choisissez Edit trust policy (Modifier la politique).

  5. Dans la page Edit trust policy (Modifier la politique), vérifiez que la relation d'approbation contient la politique suivante, ainsi qu'une ligne pour les profils Fargate sur votre cluster. Dans ce cas, sélectionnez Cancel (Annuler).

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    Si la politique correspond mais ne comporte pas de ligne spécifiant les profils Fargate sur votre cluster, vous pouvez ajouter la ligne suivante en haut de l’objet ArnLike. Remplacez region-code par la région AWS dans laquelle se trouve votre cluster, 111122223333 par votre ID de compte et my-cluster par le nom de votre cluster.

    "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*",

    Si la politique ne correspond pas, copiez l’intégralité de la politique précédente dans le formulaire et sélectionnez Mettre à jour la politique. Remplacez region-code par la région AWS dans laquelle votre cluster se situe. Si vous voulez utiliser le même rôle dans toutes les régions AWS de votre compte, remplacez region-code par *. Remplacez 111122223333 par votre ID de compte et my-cluster par le nom de votre cluster. Si vous voulez utiliser le même rôle pour tous les clusters de votre compte, remplacez my-cluster par *.

Création du rôle d’exécution de pod Amazon EKS

Si vous ne disposez pas encore du rôle d’exécution de pod Amazon EKS pour votre cluster, vous pouvez utiliser la AWS Management Console ou l’AWS CLI pour le créer.

AWS Management Console
  1. Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.

  2. Dans le volet de navigation de gauche, choisissez Rôles.

  3. Sur la page Rôles, choisissez Créer un rôle.

  4. Sur la page Select trusted entity (Sélectionner une entité de confiance), procédez comme suit :

    1. Sous la section Type d’entité de confiance, sélectionnez Service AWS.

    2. Dans la liste déroulante Cas d’utilisation pour d’autres services AWS, choisissez EKS.

    3. Sélectionnez EKS – Fargate Pod.

    4. Choisissez Suivant.

  5. Sur la page Add permissions (Ajouter des autorisations), sélectionnez Next (Suivant).

  6. Sur la page Name, review, and create (Nommer, vérifier et créer), procédez comme suit :

    1. Pour Role name (Nom de rôle), saisissez un nom unique pour votre rôle, par exemple, AmazonEKSFargatePodExecutionRole.

    2. 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.

    3. Sélectionnez Créer un rôle.

  7. Dans la page Roles (Rôles), recherchez dans la liste des rôles AmazonEKSFargatePodExecutionRole. Choisissez le rôle.

  8. Dans la page AmazonEKSFargatePodExecutionRole, procédez comme suit :

    1. Choisissez Trust Relationships (Relations d'approbation).

    2. Choisissez Edit trust policy (Modifier la politique).

  9. Dans la page Edit trust policy (Modifier la politique), procédez comme suit :

    1. Copiez le contenu suivant et collez-le dans le formulaire Edit trust policy (Modifier la politique). Remplacez region-code par la région AWS dans laquelle votre cluster se situe. Si vous voulez utiliser le même rôle dans toutes les régions AWS de votre compte, remplacez region-code par *. Remplacez 111122223333 par votre ID de compte et my-cluster par le nom de votre cluster. Si vous voulez utiliser le même rôle pour tous les clusters de votre compte, remplacez my-cluster par *.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Choisissez Mettre à jour une politique.

AWS CLI
  1. Copiez le contenu suivant et collez-le dans un fichier nommé pod-execution-role-trust-policy.json. Remplacez region-code par la région AWS dans laquelle votre cluster se situe. Si vous voulez utiliser le même rôle dans toutes les régions AWS de votre compte, remplacez region-code par *. Remplacez 111122223333 par votre ID de compte et my-cluster par le nom de votre cluster. Si vous voulez utiliser le même rôle pour tous les clusters de votre compte, remplacez my-cluster par *.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Créez un rôle IAM d’exécution de pod.

    aws iam create-role \ --role-name AmazonEKSFargatePodExecutionRole \ --assume-role-policy-document file://"pod-execution-role-trust-policy.json"
  3. Attachez la politique IAM gérée par Amazon EKS au rôle.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy \ --role-name AmazonEKSFargatePodExecutionRole