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.
Entrées EKS Access
Vous pouvez utiliser eksctl pour gérer les entrées d'accès EKS. Utilisez les entrées d'accès pour accorder des autorisations Kubernetes à AWS IAM Identities. Par exemple, vous pouvez accorder à un rôle de développeur l'autorisation de lire les ressources Kubernetes dans un cluster.
Cette rubrique explique comment utiliser eksctl pour gérer les entrées d'accès. Pour des informations générales sur les entrées d'accès, voir Accorder aux utilisateurs IAM l'accès à Kubernetes avec des entrées d'accès EKS.
Vous pouvez joindre des politiques d'accès Kubernetes définies par AWS ou associer une identité IAM à un groupe Kubernetes.
Pour plus d'informations sur les politiques prédéfinies disponibles, voir Associer des politiques d'accès aux entrées d'accès.
Si vous devez définir les politiques Kubernetes du client, associez l'identité IAM à un groupe Kubernetes et accordez des autorisations à ce groupe.
Mode d'authentification du cluster
Vous ne pouvez utiliser les entrées d'accès que si le mode d'authentification du cluster le permet.
Pour plus d'informations, voir Définir le mode d'authentification du cluster
Définir le mode d'authentification avec un fichier YAML
eksctla ajouté un nouveau accessConfig.authenticationMode champ sous ClusterConfig, qui peut être défini sur l'une des trois valeurs suivantes :
-
CONFIG_MAP- par défaut dans l'API EKS - seulaws-authConfigMap sera utilisé -
API- seule l'API d'entrées d'accès sera utilisée -
API_AND_CONFIG_MAP- par défaut danseksctl- les deuxaws-authConfigMap et l'API d'entrées d'accès peuvent être utilisées
Définissez le mode d'authentification dans ClusterConfig YAML :
accessConfig: authenticationMode: <>
Mettre à jour le mode d'authentification à l'aide d'une commande
Si vous souhaitez utiliser des entrées d'accès sur un cluster déjà existant, non créé par eksctl, où l'CONFIG_MAPoption est utilisée, l'utilisateur devra d'abord définir sur. authenticationMode API_AND_CONFIG_MAP Pour cela, eksctl a introduit une nouvelle commande pour mettre à jour le mode d'authentification du cluster, qui fonctionne à la fois avec les indicateurs CLI, par exemple
eksctl utils update-authentication-mode --cluster my-cluster --authentication-mode API_AND_CONFIG_MAP
Accédez aux ressources d'entrée
Les entrées d'accès ont un type, tel que STANDARD ouEC2_LINUX. Le type dépend de la manière dont vous utilisez l'entrée d'accès.
-
Le
standardtype est destiné à accorder des autorisations Kubernetes aux utilisateurs IAM et aux rôles IAM.-
Par exemple, vous pouvez consulter les ressources Kubernetes dans la console AWS en attachant une politique d'accès au rôle ou à l'utilisateur que vous utilisez pour accéder à la console.
-
-
Les
EC2_WINDOWStypesEC2_LINUXet permettent d'accorder des autorisations Kubernetes aux instances. EC2 Les instances utilisent ces autorisations pour rejoindre le cluster.
Pour plus d'informations sur les types d'entrées d'accès, voir Création d'entrées d'accès
IAM entités
Vous pouvez utiliser des entrées d'accès pour accorder des autorisations Kubernetes aux identités IAM telles que les utilisateurs IAM et les rôles IAM.
Utilisez le accessConfig.accessEntries champ pour associer l'ARN d'une ressource IAM à une API EKS Access Entries. Par exemple :
accessConfig: authenticationMode: API_AND_CONFIG_MAP accessEntries: - principalARN: arn:aws:iam::111122223333:user/my-user-name type: STANDARD kubernetesGroups: # optional Kubernetes groups - group1 # groups can used to give permissions via RBAC - group2 - principalARN: arn:aws:iam::111122223333:role/role-name-1 accessPolicies: # optional access polices - policyARN: arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy accessScope: type: namespace namespaces: - default - my-namespace - dev-* - principalARN: arn:aws:iam::111122223333:role/admin-role accessPolicies: # optional access polices - policyARN: arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy accessScope: type: cluster - principalARN: arn:aws:iam::111122223333:role/role-name-2 type: EC2_LINUX
En plus d'associer des politiques EKS, on peut également spécifier les groupes Kubernetes auxquels appartient une entité IAM, octroyant ainsi des autorisations via RBAC.
Groupes de nœuds gérés et Fargate
L'intégration avec les entrées d'accès à ces ressources sera réalisée en coulisse grâce à l'API EKS. Les groupes de nœuds gérés et les pods Fargate nouvellement créés créeront des entrées d'accès à l'API, plutôt que d'utiliser des ressources RBAC préchargées. Les groupes de nœuds et les pods Fargate existants ne seront pas modifiés et continueront de s'appuyer sur les entrées de la carte de configuration aws-auth.
Groupes de nœuds autogérés
Chaque entrée d'accès possède un type. Pour autoriser les groupes de nœuds autogérés, eksctl vous créerez une entrée d'accès unique pour chaque groupe de nœuds, l'ARN principal étant défini sur l'ARN du rôle de nœud et le type défini sur AmiFamily EC2_LINUX ou EC2_WINDOWS en fonction de celui-ci.
Lorsque vous créez vos propres entrées d'accès, vous pouvez également spécifier EC2_LINUX (pour un rôle IAM utilisé avec des nœuds autogérés Linux ou Bottlerocket), EC2_WINDOWS (pour un rôle IAM utilisé avec des nœuds autogérés Windows), FARGATE_LINUX (pour un rôle IAM utilisé avec AWS Fargate (Fargate)) ou en tant que type. STANDARD Si vous ne spécifiez aucun type, le type par défaut est défini surSTANDARD.
Note
Lors de la suppression d'un groupe de nœuds créé avec un groupe préexistantinstanceRoleARN, il est de la responsabilité de l'utilisateur de supprimer l'entrée d'accès correspondante lorsqu'aucun autre groupe de nœuds n'y est associé. Cela est dû au fait que eksctl ne cherche pas à savoir si une entrée d'accès est toujours utilisée par des groupes de nœuds autogérés qui n'ont pas été créés par eksctl, car il s'agit d'un processus compliqué.
Créer une entrée d'accès
Cela peut être fait de deux manières différentes, soit lors de la création du cluster, soit en spécifiant les entrées d'accès souhaitées dans le cadre du fichier de configuration, soit en exécutant :
eksctl create cluster -f config.yaml
OU après la création du cluster, en exécutant :
eksctl create accessentry -f config.yaml
Pour un exemple de fichier de configuration permettant de créer des entrées d'accès, consultez 40-access-entries.yaml
Obtenir l'entrée d'accès
L'utilisateur peut récupérer toutes les entrées d'accès associées à un certain cluster en exécutant l'une des opérations suivantes :
eksctl get accessentry -f config.yaml
OU
eksctl get accessentry --cluster my-cluster
Sinon, pour récupérer uniquement l'entrée d'accès correspondant à une certaine entité IAM, il faut utiliser le --principal-arn drapeau. Par exemple
eksctl get accessentry --cluster my-cluster --principal-arn arn:aws:iam::111122223333:user/admin
Supprimer l'entrée d'accès
Pour supprimer une seule entrée d'accès à la fois, utilisez :
eksctl delete accessentry --cluster my-cluster --principal-arn arn:aws:iam::111122223333:user/admin
Pour supprimer plusieurs entrées d'accès, utilisez le --config-file drapeau et spécifiez toutes les entrées principalARN’s correspondantes, sous le accessEntry champ de niveau supérieur, par ex.
... accessEntry: - principalARN: arn:aws:iam::111122223333:user/my-user-name - principalARN: arn:aws:iam::111122223333:role/role-name-1 - principalARN: arn:aws:iam::111122223333:role/admin-role
eksctl delete accessentry -f config.yaml
Migrer depuis aws-auth ConfigMap
L'utilisateur peut migrer ses identités IAM existantes de aws-auth configmap vers les entrées d'accès en exécutant ce qui suit :
eksctl utils migrate-to-access-entry --cluster my-cluster --target-authentication-mode <API or API_AND_CONFIG_MAP>
Lorsque l'--target-authentication-modeindicateur est défini surAPI, le mode d'authentification passe en API API mode (ignoré s'il est déjà activé), les mappages d'identité IAM sont migrés vers les entrées d'accès et le aws-auth fichier configmap est supprimé du cluster.
Lorsque l'--target-authentication-modeindicateur est défini surAPI_AND_CONFIG_MAP, le mode d'authentification passe en API_AND_CONFIG_MAP API_AND_CONFIG_MAP mode (ignoré s'il est déjà activé), les mappages d'identité IAM sont migrés vers les entrées d'accès, mais aws-auth le configmap est conservé.
Note
Lorsque l'--target-authentication-modeindicateur est défini surAPI, cette commande ne met pas à jour le mode d'authentification API en mode si aws-auth configmap possède l'une des contraintes ci-dessous.
-
Il existe un mappage d'identité au niveau du compte.
-
Un ou plusieurs Roles/Users sont mappés vers le ou les groupes Kubernetes commençant par un préfixe
system:(sauf pour les groupes spécifiques à EKS, c'est-à-diresystem:masters, etc.).system:bootstrapperssystem:nodes -
Un ou plusieurs mappages d'identité IAM concernent un [rôle lié au service] (lien : IAM/latest/UserGuide/using - service-linked-roles .html).
Désactiver les autorisations d'administrateur du créateur du cluster
eksctla ajouté un nouveau champ accessConfig.bootstrapClusterCreatorAdminPermissions: boolean qui, lorsqu'il est défini sur false, désactive l'octroi d'autorisations d'administrateur de cluster à l'identité IAM créant le cluster. par exemple
ajoutez l'option au fichier de configuration :
accessConfig: bootstrapClusterCreatorAdminPermissions: false
et lancez :
eksctl create cluster -f config.yaml