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.
Utilisation des rôles d'exécution de tâches avec Amazon EMR on EKS
Pour utiliser la commande StartJobRun
afin de soumettre une tâche exécutée sur un cluster EKS, vous devez d'abord intégrer un rôle d'exécution de tâche à utiliser avec un cluster virtuel. Pour plus d'informations, consultez Création d'un rôle d'exécution des tâches dans Configuration d'Amazon EMR sur EKS. Vous pouvez également suivre les instructions de la section Création d'un rôle IAM pour l'exécution des tâches
Les autorisations suivantes doivent être incluses dans la politique d'approbation du rôle d'exécution des tâches.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::
AWS_ACCOUNT_ID
:oidc-provider/OIDC_PROVIDER
" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringLike": { "OIDC_PROVIDER
:sub": "system:serviceaccount:NAMESPACE
:emr-containers-sa-*-*-AWS_ACCOUNT_ID
-BASE36_ENCODED_ROLE_NAME
" } } } ] }
La politique d'approbation décrite dans l'exemple précédent accorde des autorisations uniquement à un compte de service Kubernetes géré par Amazon EMR dont le nom correspond au modèle emr-containers-sa-*-*-
. Les comptes de service utilisant ce modèle seront automatiquement créés lors de la soumission de la tâche et limités à l'espace de noms dans lequel vous soumettez la tâche. Cette politique d'approbation permet à ces comptes de service d'assumer le rôle d'exécution et d'obtenir les informations d'identification temporaires du rôle d'exécution. Les comptes de service d'un autre cluster Amazon EKS ou d'un espace de noms différent au sein du même cluster EKS ne sont pas autorisés à assumer le rôle d'exécution.AWS_ACCOUNT_ID
-BASE36_ENCODED_ROLE_NAME
Vous pouvez exécuter la commande suivante pour mettre à jour automatiquement la politique d'approbation dans le format indiqué ci-dessus.
aws emr-containers update-role-trust-policy \ --cluster-name
cluster
\ --namespacenamespace
\ --role-nameiam_role_name_for_job_execution
Contrôle de l'accès au rôle d'exécution
L'administrateur de votre cluster Amazon EKS peut créer un cluster virtuel Amazon EMR on EKS multilocataire auquel un administrateur IAM peut ajouter plusieurs rôles d'exécution. Étant donné que des locataires non fiables peuvent utiliser ces rôles d'exécution pour soumettre des tâches exécutant du code arbitraire, vous voudrez peut-être restreindre ces locataires afin qu'ils ne puissent pas exécuter de code qui s'arrogerait les autorisations attribuées à un ou plusieurs de ces rôles d'exécution. Pour restreindre la politique IAM attachée à une identité IAM, l'administrateur IAM peut utiliser la clé de condition Amazon Resource Name (ARN) facultative emr-containers:ExecutionRoleArn
. Cette condition accepte une liste d'ARN de rôles d'exécution autorisés à accéder au cluster virtuel, comme le montre la politique d'autorisation suivante.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "emr-containers:StartJobRun", "Resource": "arn:aws:emr-containers:
REGION
:AWS_ACCOUNT_ID
:/virtualclusters/VIRTUAL_CLUSTER_ID
", "Condition": { "ArnEquals": { "emr-containers:ExecutionRoleArn": [ "execution_role_arn_1
", "execution_role_arn_2
", ... ] } } } ] }
Si vous souhaitez autoriser tous les rôles d'exécution commençant par un préfixe particulier, par exemple MyRole
, vous pouvez remplacer l'opérateur de condition ArnEquals
par l'opérateur ArnLike
, et vous pouvez remplacer la valeur execution_role_arn
de la condition par un caractère générique *
. Par exemple, arn:aws:iam::
. Toutes les autres clés de condition ARN sont également prises en charge.AWS_ACCOUNT_ID
:role/MyRole*
Note
Avec Amazon EMR on EKS, vous ne pouvez pas accorder d'autorisations aux rôles d'exécution en fonction de balises ou d'attributs. Amazon EMR on EKS ne prend pas en charge le contrôle d'accès basé sur les balises (TBAC) ou le contrôle d'accès par attributs (ABAC) pour les rôles d'exécution.