Rôles d'exécution des tâches pour Amazon EMR Serverless - Amazon EMR

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.

Rôles d'exécution des tâches pour Amazon EMR Serverless

Vous pouvez spécifier les autorisations de IAM rôle que l'exécution d'une tâche EMR sans serveur peut assumer lorsque vous appelez d'autres services en votre nom. Cela inclut l'accès à Amazon S3 pour toutes les sources de données, les cibles, ainsi que pour d'autres AWS ressources telles que les clusters Amazon Redshift et les tables DynamoDB. Pour en savoir plus sur la création d'un rôle, consultezCréation d'un rôle d'exécution de tâches.

Exemples de politiques d'exécution

Vous pouvez associer une politique d'exécution, telle que la suivante, à un rôle d'exécution de tâche. La politique d'exécution des tâches suivante permet :

  • Accès en lecture aux compartiments Amazon S3 avec des EMR exemples.

  • Accès complet aux compartiments S3.

  • Créez et lisez l'accès au catalogue de données AWS Glue.

Pour ajouter l'accès à d'autres AWS ressources telles que DynamoDB, vous devez inclure les autorisations correspondantes dans la politique lors de la création du rôle d'exécution.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadAccessForEMRSamples", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::*.elasticmapreduce", "arn:aws:s3:::*.elasticmapreduce/*" ] }, { "Sid": "FullAccessToS3Bucket", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Sid": "GlueCreateAndReadDataCatalog", "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:CreateDatabase", "glue:GetDataBases", "glue:CreateTable", "glue:GetTable", "glue:UpdateTable", "glue:DeleteTable", "glue:GetTables", "glue:GetPartition", "glue:GetPartitions", "glue:CreatePartition", "glue:BatchCreatePartition", "glue:GetUserDefinedFunctions" ], "Resource": ["*"] } ] }

Transmettez les privilèges liés aux rôles

Vous pouvez associer IAM des politiques d'autorisation au rôle d'un utilisateur pour lui permettre de transmettre uniquement les rôles approuvés. Cela permet aux administrateurs de contrôler quels utilisateurs peuvent transmettre des rôles d'exécution de tâches spécifiques à des tâches EMR sans serveur. Pour en savoir plus sur la définition des autorisations, voir Autoriser un utilisateur à transmettre un rôle à un AWS service.

Voici un exemple de politique qui permet de transmettre un rôle d'exécution de tâche au principal du service EMR Serverless.

{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::1234567890:role/JobRuntimeRoleForEMRServerless", "Condition": { "StringLike": { "iam:PassedToService": "emr-serverless.amazonaws.com" } } }

Politiques d'autorisation gérées associées aux rôles d'exécution

Lorsque vous soumettez des exécutions de tâches à un environnement EMR sans serveur via la console EMR Studio, vous choisissez une étape au cours de laquelle vous choisissez un rôle Runtime à associer à votre application. Il est important de connaître les politiques gérées sous-jacentes associées à chaque sélection dans la console. Les trois sélections sont les suivantes :

  1. Tous les compartiments : lorsque vous choisissez cette option, elle spécifie la politique FullAccess AWS gérée par AmazonS3, qui fournit un accès complet à tous les compartiments.

  2. Buckets spécifiques — Ceci indique l'identifiant du nom de ressource Amazon (ARN) de chaque compartiment que vous choisissez. Aucune politique gérée sous-jacente n'est incluse.

  3. Aucune — Aucune autorisation basée sur des politiques gérées n'est incluse.

Nous vous recommandons d'ajouter des compartiments spécifiques. Si vous choisissez tous les compartiments, n'oubliez pas qu'il définit un accès complet pour tous les compartiments.