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.
Activation de l'accès aux clusters pour Amazon EMR on EKS
Vous devez autoriser Amazon EMR on EKS à accéder à un espace de noms spécifique de votre cluster en effectuant les actions suivantes : créer un rôle Kubernetes, lier le rôle à un utilisateur Kubernetes et associer l'utilisateur Kubernetes au rôle lié au service AWSServiceRoleForAmazonEMRContainers
. Ces actions sont automatisées dans eksctl
lorsque la commande de mappage d'identité IAM est utilisée avec emr-containers
comme nom de service. Vous pouvez effectuer ces opérations facilement à l'aide de la commande suivante.
eksctl create iamidentitymapping \ --cluster
my_eks_cluster
\ --namespacekubernetes_namespace
\ --service-name "emr-containers"
Remplacez my_eks_cluster
par le nom de votre cluster Amazon EKS et remplacez kubernetes_namespace
par l'espace de noms Kubernetes créé pour exécuter les charges de travail Amazon EMR.
Important
Pour utiliser cette fonctionnalité, vous devez télécharger la dernière version d'eksctl en suivant l'étape Installer eksctl précédente.
Étapes manuelles à suivre pour activer l'accès aux clusters pour Amazon EMR on EKS
Vous pouvez également suivre les étapes manuelles ci-dessous pour activer l'accès aux clusters pour Amazon EMR on EKS.
-
Création d'un rôle Kubernetes dans un espace de noms spécifique
-
Création d'une liaison de rôle Kubernetes adaptée à l'espace de noms
Exécutez la commande suivante pour créer une liaison de rôle Kubernetes dans l'espace de noms donné. Cette liaison de rôle accorde les autorisations définies dans le rôle créé à l'étape précédente à un utilisateur nommé
emr-containers
. Cet utilisateur identifie les rôles liés au service pour Amazon EMR on EKS et permet ainsi à Amazon EMR on EKS d'effectuer les actions définies par le rôle que vous avez créé.namespace=
my-namespace
cat - <<EOF | kubectl apply -f - --namespace "${namespace}" apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: emr-containers namespace: ${namespace} subjects: - kind: User name: emr-containers apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: emr-containers apiGroup: rbac.authorization.k8s.io EOF -
Mise à jour la carte de configuration
aws-auth
de KubernetesVous pouvez utiliser l'une des options suivantes pour associer le rôle lié au service Amazon EMR on EKS à l'utilisateur
emr-containers
associé au rôle Kubernetes à l'étape précédente.Option 1 : utilisation de l'outil
eksctl
Exécutez la commande
eksctl
suivante pour associer le rôle lié au service Amazon EMR on EKS à l'utilisateuremr-containers
.eksctl create iamidentitymapping \ --cluster
my-cluster-name
\ --arn "arn:aws:iam::my-account-id
:role/AWSServiceRoleForAmazonEMRContainers" \ --username emr-containersOption 2 : sans utiliser eksctl
-
Exécutez la commande suivante pour ouvrir la carte de configuration
aws-auth
dans l'éditeur de texte.kubectl edit -n kube-system configmap/aws-auth
Note
Si vous recevez un message d'erreur
Error from server (NotFound): configmaps "aws-auth" not found
, consultez les étapes décrites dans la section Ajouter des rôles d'utilisateur dans le guide de l'utilisateur Amazon EKS pour appliquer le stock ConfigMap. -
Ajoutez les détails du rôle lié au service Amazon EMR on EKS dans la section
mapRoles
de laConfigMap
, sousdata
. Ajoutez cette section si elle n'existe pas déjà dans le fichier. La sectionmapRoles
mise à jour sous les données ressemble à l'exemple suivant.apiVersion: v1 data: mapRoles: | - rolearn: arn:aws:iam::<your-account-id>:role/AWSServiceRoleForAmazonEMRContainers username: emr-containers - ... <other previously existing role entries, if there's any>.
-
Enregistrez le fichier et quittez votre éditeur de texte.
-
Automatiser l'activation de l'accès au cluster pour Amazon EMR sur EKS
Amazon EMR est intégré à la gestion des accès aux clusters (CAM) d'Amazon EKS, ce qui vous permet d'automatiser la configuration des politiques AuthN et AuthZ nécessaires pour exécuter des tâches Amazon EMR Spark dans les espaces de noms des clusters Amazon EKS. Lorsque vous créez un cluster virtuel à partir d'un espace de noms de cluster Amazon EKS, Amazon EMR configure automatiquement toutes les autorisations nécessaires, de sorte que vous n'avez pas besoin d'ajouter d'étapes supplémentaires à vos flux de travail actuels.
Note
L'entrée d'accès Amazon EKS ne prend en charge que 100 espaces de noms au maximum. Si vous avez plus de 100 clusters virtuels, Amazon EMR n'utilisera pas les API d'entrée d'accès lorsque vous créerez de nouveaux clusters virtuels. Vous pouvez voir quels clusters ont activé l'intégration des entrées d'accès en définissant le eksAccessEntryIntegrated
paramètre sur true lors de l'exécution de l'opération ListVirtualClusters
API ou de la commande list-virtual-clusters
CLI. La commande renvoie les identifiants uniques de tous les clusters virtuels applicables.
Prérequis
-
Assurez-vous que vous utilisez la version 2.15.3 ou supérieure du AWS CLI
-
Votre cluster Amazon EKS doit être doté de la version 1.23 ou supérieure.
Configuration
Pour configurer l'intégration entre Amazon EMR et les opérations d' AccessEntry API d'Amazon EKS, assurez-vous d'avoir effectué les étapes suivantes :
-
Assurez-vous que celui
authenticationMode
de votre cluster Amazon EKS est défini surAPI_AND_CONFIG_MAP
.aws eks describe-cluster --name
<eks-cluster-name>
Si ce n'est pas déjà le cas, réglez-le
authenticationMode
surAPI_AND_CONFIG_MAP
.aws eks update-cluster-config --name
<eks-cluster-name>
--access-config authenticationMode=API_AND_CONFIG_MAPPour plus d'informations sur les modes d'authentification, consultez la section Modes d'authentification de cluster.
-
Assurez-vous que le rôle IAM que vous utilisez pour exécuter les opérations
CreateVirtualCluster
etDeleteVirtualCluster
API dispose également des autorisations suivantes :{ "Effect": "Allow", "Action": [ "eks:DescribeAccessEntry", "eks:CreateAccessEntry", "eks:DeleteAccessEntry", "eks:ListAssociatedAccessPolicies", "eks:AssociateAccessPolicy", "eks:DisassociateAccessPolicy" ], "Resource": "*" }
Concepts et terminologie
Vous trouverez ci-dessous une liste de terminologies et de concepts liés à Amazon EKS CAM.
-
Cluster virtuel (VC) : représentation logique de l'espace de noms créé dans Amazon EKS. Il s'agit d'un lien 1:1 vers un espace de noms de cluster Amazon EKS. Vous pouvez l'utiliser pour exécuter des charges de travail Amazon EMR sur un cluster Amazon EKS dans l'espace de noms spécifié.
-
Namespace : mécanisme permettant d'isoler des groupes de ressources au sein d'un seul cluster EKS.
-
Politique d'accès : autorisations qui accordent l'accès et les actions à un rôle IAM au sein d'un cluster EKS.
-
Entrée d'accès : entrée créée avec un rôle arn. Vous pouvez lier l'entrée d'accès à une politique d'accès pour attribuer des autorisations spécifiques dans le cluster Amazon EKS.
-
Cluster virtuel intégré d'entrée d'accès EKS : cluster virtuel créé à l'aide des opérations d'API d'entrée d'accès d'Amazon EKS.