Accorder IAM aux utilisateurs et aux rôles l'accès à Kubernetes APIs - Amazon EKS

Aidez à améliorer cette page

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 aideront à améliorer notre guide de l'utilisateur pour tout le monde.

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.

Accorder IAM aux utilisateurs et aux rôles l'accès à Kubernetes APIs

Votre cluster possède un Kubernetes API point de terminaison. Kubectl l'utilise. API Vous pouvez vous authentifier à API l'aide de deux types d'identités :

  • An AWS Identity and Access Management (IAM) principal (rôle ou utilisateur) — Ce type nécessite une authentification auprès deIAM. Les utilisateurs peuvent se connecter en AWS tant qu'IAMutilisateur ou avec une identité fédérée en utilisant les informations d'identification fournies par le biais d'une source d'identité. Les utilisateurs ne peuvent se connecter avec une identité fédérée que si votre administrateur a préalablement configuré la fédération d'identité à l'aide de IAM rôles. Lorsque les utilisateurs accèdent AWS par le biais de la fédération, ils assument indirectement un rôle. Lorsque les utilisateurs utilisent ce type d'identité :

    • Vous pouvez leur attribuer des autorisations Kubernetes afin qu'ils puissent travailler avec des objets Kubernetes de votre cluster. Pour plus d'informations sur la manière d'attribuer des autorisations à IAM vos principaux afin qu'ils puissent accéder aux Kubernetes objets de votre cluster, consultezAccorder aux IAM utilisateurs l'accès à Kubernetes des entrées EKS d'accès.

    • Peut leur attribuer IAM des autorisations afin qu'ils puissent travailler avec votre EKS cluster Amazon et ses ressources à l'aide d'Amazon EKSAPI, AWS CLI, AWS CloudFormation, AWS Management Console, oueksctl. Pour plus d'informations, consultez la rubrique Actions définies par Amazon Elastic Kubernetes Service dans la Référence des autorisations de service.

    • Les nœuds rejoignent votre cluster en assumant un IAM rôle. La possibilité d'accéder à votre cluster à l'aide de IAM principes est fournie par l'AWS IAMAuthenticator for Kubernetes, qui s'exécute sur le plan de contrôle AmazonEKS.

  • Un utilisateur de votre propre fournisseur OpenID Connect (OIDC) : ce type nécessite une authentification auprès de votre fournisseur OIDC. Pour plus d'informations sur la configuration de votre propre OIDC fournisseur avec votre EKS cluster Amazon, consultezAccorder aux utilisateurs l'accès Kubernetes auprès d'un OIDC fournisseur externe. Lorsque les utilisateurs utilisent ce type d'identité :

    • Vous pouvez leur attribuer des autorisations Kubernetes afin qu'ils puissent travailler avec des objets Kubernetes de votre cluster.

    • Impossible de leur attribuer IAM des autorisations afin qu'ils puissent travailler avec votre EKS cluster Amazon et ses ressources à l'aide d'Amazon EKS API AWS CLI, AWS CloudFormation, AWS Management Console, oueksctl.

Vous pouvez utiliser les deux types d'identités avec votre cluster. La méthode IAM d'authentification ne peut pas être désactivée. La méthode OIDC d'authentification est facultative.

Associer IAM des identités aux autorisations Kubernetes

L'AWS IAMauthentificateur pour Kubernetes est installé sur le plan de contrôle de votre cluster. Il permet AWS Identity and Access Management(IAM) aux principaux (rôles et utilisateurs) que vous autorisez à accéder aux Kubernetes ressources de votre cluster. Vous pouvez autoriser IAM les principaux à accéder aux Kubernetes objets de votre cluster en utilisant l'une des méthodes suivantes :

  • Création d'entrées d'accès : si votre cluster correspond à la version de plateforme répertoriée dans la section Conditions requises pour la version Kubernetes de votre cluster ou est ultérieure à celle-ci, nous vous recommandons d'utiliser cette option.

    Utilisez les entrées d'accès pour gérer les Kubernetes autorisations IAM des principaux extérieurs au cluster. Vous pouvez ajouter et gérer l'accès au cluster à l'aide des EKS API boutons AWS Command Line Interface, AWS SDKs, AWS CloudFormation, et AWS Management Console. Cela signifie que vous pouvez gérer les utilisateurs avec les mêmes outils que ceux avec lesquels vous avez créé le cluster.

    Pour commencer, suivez Modifier le mode d'authentification pour utiliser les entrées d'accès, puis Migration des entrées aws-auth ConfigMap existantes pour accéder aux entrées.

  • Ajouter des entrées à la ConfigMapaws-auth : si la version de la plateforme de votre cluster est antérieure à la version répertoriée dans la section Conditions préalables, vous devez utiliser cette option. Si la version de plateforme de votre cluster est identique ou ultérieure à la version de plateforme répertoriée dans la section Conditions requises pour la version Kubernetes de votre cluster et que vous avez ajouté des entrées à la ConfigMap, nous vous recommandons de migrer ces entrées vers des entrées d'accès. Vous ne pouvez ConfigMap toutefois pas migrer les entrées qu'Amazon EKS y a ajoutées, telles que les entrées pour les IAM rôles utilisés avec des groupes de nœuds gérés ou des profils Fargate. Pour de plus amples informations, veuillez consulter Accorder IAM aux utilisateurs et aux rôles l'accès à Kubernetes APIs.

    • Si vous devez utiliser l'option ConfigMap aws-auth, vous pouvez ajouter des entrées à la ConfigMap à l'aide de la commande eksctl create iamidentitymapping. Pour plus d'informations, consultez la section Gérer IAM les utilisateurs et les rôles dans la eksctl documentation.

Définir le mode d'authentification du cluster

Chaque cluster possède un mode d'authentification. Le mode d'authentification détermine les méthodes que vous pouvez utiliser pour autoriser IAM les principaux à accéder aux Kubernetes objets de votre cluster. Il existe trois modes d'authentification.

Important

Une fois que la méthode de saisie d'accès est activée, elle ne peut pas être désactivée.

Si la ConfigMap méthode n'est pas activée lors de la création du cluster, elle ne pourra pas être activée ultérieurement. La ConfigMap méthode est activée pour tous les clusters créés avant l'introduction des entrées d'accès.

La ConfigMap aws-auth au sein du cluster

Il s'agit du mode d'authentification d'origine pour les EKS clusters Amazon. Le IAM principal qui a créé le cluster est l'utilisateur initial qui peut accéder au cluster en utilisantkubectl. L'utilisateur initial doit ajouter d'autres utilisateurs à la liste dans la ConfigMap aws-auth et attribuer des autorisations qui affectent les autres utilisateurs au sein du cluster. Ces autres utilisateurs ne peuvent pas gérer ou supprimer l'utilisateur initial, car il n'y a aucune entrée à gérer dans la ConfigMap.

À la fois la ConfigMap et les entrées d'accès

Avec ce mode d'authentification, vous pouvez utiliser les deux méthodes pour ajouter IAM des principaux au cluster. Notez que chaque méthode stocke des entrées distinctes ; par exemple, si vous ajoutez une entrée d'accès depuis le AWS CLI, elle n'aws-authConfigMapest pas mise à jour.

Accès aux entrées uniquement

Avec ce mode d'authentification, vous pouvez utiliser le EKS API AWS Command Line Interface, AWS SDKs AWS CloudFormation, et AWS Management Console pour gérer l'accès au cluster pour les IAM principaux.

Chaque entrée d'accès possède un type et vous pouvez utiliser la combinaison d'une portée d'accès pour limiter le principal à un espace de noms spécifique et d'une stratégie d'accès pour définir des politiques d'autorisations réutilisables préconfigurées. Vous pouvez également utiliser le type STANDARD et les groupes Kubernetes RBAC pour attribuer des autorisations personnalisées.

Mode d’authentification Méthodes
ConfigMap uniquement (CONFIG_MAP) aws-auth ConfigMap
EKSAPIet ConfigMap (API_AND_CONFIG_MAP) accéder aux entrées dans les EKS API AWS Command Line Interface AWS SDKs, AWS CloudFormation,, AWS Management Console et aws-auth ConfigMap
EKSAPIuniquement (API) accéder aux entrées dans les EKS API AWS Command Line Interface, AWS SDKs, AWS CloudFormation, et AWS Management Console