Fonctionnalité Amazon EKS : rôle IAM - Amazon EKS

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.

Fonctionnalité Amazon EKS : rôle IAM

Les fonctionnalités EKS nécessitent la configuration d'un rôle IAM de fonctionnalité (ou rôle de capacité). Les fonctionnalités utilisent ce rôle pour effectuer des actions sur les AWS services et pour accéder aux ressources Kubernetes de votre cluster via des entrées d'accès créées automatiquement.

Avant de pouvoir spécifier un rôle de capacité lors de la création d'une fonctionnalité, vous devez créer le rôle IAM avec la politique de confiance et les autorisations appropriées pour le type de capacité. Une fois ce rôle IAM créé, il peut être réutilisé pour n'importe quel nombre de ressources de capacité.

Exigences relatives aux rôles de capacité

Le rôle de capacité doit répondre aux exigences suivantes :

  • Le rôle doit figurer dans le même AWS compte que le cluster et la ressource de capacité

  • Le rôle doit avoir une politique de confiance qui permet au service des capacités EKS d'assumer le rôle

  • Le rôle doit disposer d'autorisations adaptées au type de fonctionnalité et aux exigences du cas d'utilisation (voirAutorisations par type de capacité)

Politique de confiance pour les rôles liés aux capacités

Tous les rôles de capacité doivent inclure la politique de confiance suivante :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "capabilities.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }

Cette politique de confiance permet à EKS de :

  • Assumez le rôle d'effectuer des opérations AWS d'API

  • Étiquetez les sessions à des fins d'audit et de suivi

Autorisations par type de capacité

Les autorisations IAM requises dépendent de la fonctionnalité que vous utilisez et de votre modèle de déploiement.

Note

Pour les déploiements de production utilisant des sélecteurs de rôles IAM avec ACK, ou lorsque vous utilisez Kro ou Argo CD sans intégration de AWS services, le rôle de capacité peut ne nécessiter aucune autorisation IAM au-delà de la politique de confiance.

kro (Kube Resource Orchestrator)

Aucune autorisation IAM n'est requise. Vous pouvez créer un rôle de capacité sans politique attachée. Kro n'a besoin que des autorisations RBAC de Kubernetes pour créer et gérer les ressources Kubernetes.

AWS Contrôleurs pour Kubernetes (ACK)

ACK prend en charge deux modèles d'autorisation :

  • Configuration simple (développement/test) : ajoutez des autorisations AWS de service directement au rôle de capacité. Cela fonctionne bien pour la mise en route, les déploiements à compte unique ou lorsque tous les utilisateurs ont besoin des mêmes autorisations.

  • Bonnes pratiques de production : utilisez les sélecteurs de rôles IAM pour implémenter l'accès avec le moindre privilège. Avec cette approche, le rôle de capacité n'a besoin que d'une sts:AssumeRole autorisation pour assumer des rôles spécifiques au service. Vous n'ajoutez pas d'autorisations de AWS service (comme S3 ou RDS) au rôle de capacité lui-même : ces autorisations sont accordées à des rôles IAM individuels mappés à des espaces de noms spécifiques.

    Les sélecteurs de rôles IAM permettent de :

    • Isolation des autorisations au niveau de l'espace de noms

    • Gestion des ressources entre comptes

    • Rôles IAM spécifiques à l'équipe

    • Modèle de sécurité fondé sur le moindre privilège

      Exemple de politique de rôle de capacité pour l'approche du sélecteur de rôle IAM :

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::111122223333:role/ACK-S3-Role", "arn:aws:iam::111122223333:role/ACK-RDS-Role", "arn:aws:iam::444455556666:role/ACKCrossAccountRole" ] } ] }

      Pour une configuration détaillée des autorisations ACK, y compris les sélecteurs de rôle IAM, voir. Configurer les autorisations ACK

Argo CD

Aucune autorisation IAM n'est requise par défaut. Des autorisations facultatives peuvent être nécessaires pour :

  • AWS Secrets Manager : si vous utilisez Secrets Manager pour stocker les informations d'identification du référentiel Git

  • AWS CodeConnections: en cas d'utilisation CodeConnections pour l'authentification du dépôt Git

    Exemple de politique pour Secrets Manager et CodeConnections :

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:argocd/*" }, { "Effect": "Allow", "Action": [ "codeconnections:UseConnection", "codeconnections:GetConnection" ], "Resource": "arn:aws:codeconnections:region:account-id:connection/*" } ] }

    Pour connaître les exigences détaillées en matière d'autorisation sur Argo CD, voirConsidérations relatives à Argo CD.

Vérifier la présence d'un rôle de capacité existant

Vous pouvez utiliser la procédure suivante pour vérifier si votre compte possède déjà un rôle IAM de fonctionnalité adapté à votre cas d'utilisation.

  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. Recherchez dans la liste des rôles le nom de votre rôle de capacité (par exemple, ACKCapabilityRole ouArgoCDCapabilityRole).

  4. Si un rôle existe, sélectionnez-le pour afficher les politiques et la relation de confiance associées.

  5. Sélectionnez l'onglet Trust relationships (Relations d'approbation), puis Edit trust policy (Modifier la relation d'approbation).

  6. Vérifiez que la relation de confiance correspond à la politique de confiance des capacités. Si elle ne correspond pas, mettez à jour la politique de confiance.

  7. Choisissez Autorisations et vérifiez que le rôle dispose des autorisations appropriées pour votre type de fonctionnalité et votre cas d'utilisation.

Création d'un rôle IAM de capacité

Vous pouvez utiliser la AWS Management Console ou la AWS CLI pour créer un rôle de capacité.

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

  2. Choisissez Roles (Rôles) puis Create role (Créer un rôle).

  3. Sous Type d'entité fiable, sélectionnez Politique de confiance personnalisée.

  4. Copiez et collez la politique de confiance des capacités dans l'éditeur de politique de confiance.

  5. Choisissez Suivant.

  6. Dans l'onglet Ajouter des autorisations, sélectionnez ou créez des politiques adaptées à votre type de fonctionnalité (voirAutorisations par type de capacité). Pour Kro, vous pouvez ignorer cette étape.

  7. Choisissez Suivant.

  8. Dans Nom du rôle, entrez un nom unique pour votre rôle, tel que ACKCapabilityRoleArgoCDCapabilityRole, oukroCapabilityRole.

  9. Pour Description, saisissez un texte descriptif tel que Amazon EKS - ACK capability role.

  10. Choisissez Créer un rôle.

AWS CLI
  1. Copiez la politique de confiance en matière de capacités dans un fichier nommécapability-trust-policy.json.

  2. Créez le rôle. ACKCapabilityRoleRemplacez-le par le nom de rôle de votre choix.

    aws iam create-role \ --role-name ACKCapabilityRole \ --assume-role-policy-document file://capability-trust-policy.json
  3. Associez les politiques IAM requises au rôle. Pour ACK, associez des politiques aux AWS services que vous souhaitez gérer. Pour Argo CD, joignez des politiques pour Secrets Manager ou CodeConnections si nécessaire. Pour Kro, vous pouvez ignorer cette étape.

    Exemple pour ACK avec autorisations S3 :

    aws iam put-role-policy \ --role-name ACKCapabilityRole \ --policy-name S3Management \ --policy-document file://s3-policy.json

Résolution des problèmes liés aux rôles liés aux capacités

La création de capacités échoue avec un « rôle IAM non valide »

Vérifiez que :

  • Le rôle existe dans le même compte que le cluster

  • La politique de confiance correspond à la politique de confiance des capacités

  • Vous êtes iam:PassRole autorisé à jouer le rôle

La fonctionnalité affiche les erreurs d'autorisation

Vérifiez que :

  • Le rôle dispose des autorisations IAM nécessaires pour le type de fonctionnalité

  • L'entrée d'accès existe sur le cluster pour le rôle

  • Des autorisations Kubernetes supplémentaires sont configurées si nécessaire (voir) Autorisations Kubernetes supplémentaires

Les ressources ACK échouent avec des erreurs « autorisation refusée »

Vérifiez que :

  • Le rôle dispose des autorisations IAM nécessaires pour votre cas d'utilisation

  • Pour les contrôleurs ACK qui font référence à des secrets, assurez-vous d'avoir associé la politique d'entrée d'AmazonEKSSecretReaderPolicyaccès aux espaces de noms appropriés.

Pour plus de conseils de résolution des problèmes, consultezConsidérations relatives à la sécurité relatives aux fonctionnalités EKS.