Création d'un rôle de service EMR Studio - 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.

Création d'un rôle de service EMR Studio

À propos du rôle de service EMR Studio

Chaque EMR studio utilise un IAM rôle doté d'autorisations qui lui permettent d'interagir avec d'autres AWS services. Ce rôle de service doit inclure des autorisations permettant à EMR Studio d'établir un canal réseau sécurisé entre les espaces de travail et les clusters, d'y stocker des fichiers de bloc-notes et d'y accéder AWS Secrets Manager tout en liant un espace de travail à un référentiel Git. Amazon S3 Control

Utilisez la fonction du service Studio (au lieu des politiques de session) pour définir toutes les autorisations d'accès Amazon S3 pour le stockage des fichiers de bloc-notes et pour définir les autorisations d'accès AWS Secrets Manager .

Comment créer un rôle de service pour EMR Studio sur Amazon EC2 ou Amazon EKS

  1. Suivez les instructions de la section Création d'un rôle pour déléguer des autorisations à un AWS service afin de créer le rôle de service avec la politique de confiance suivante.

    Important

    La politique de confiance suivante inclut les clés de condition aws:SourceArnet les clés de condition aws:SourceAccountglobales pour limiter les autorisations que vous EMR accordez à Studio à des ressources spécifiques de votre compte. Cela peut vous protéger contre le problème de l'adjoint confus.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "<account-id>" }, "ArnLike": { "aws:SourceArn": "arn:aws:elasticmapreduce:<region>:<account-id>:*" } } } ] }
  2. Supprimez les autorisations de rôle par défaut. Incluez ensuite les autorisations issues de l'exemple de politique d'IAMautorisation suivant. Vous pouvez également créer une politique personnalisée qui utilise les EMRAutorisations relatives aux rôles du service Studio.

    Important
    • Pour que le contrôle d'accès EC2 basé sur les balises Amazon fonctionne avec EMR Studio, vous devez définir l'accès ModifyNetworkInterfaceAttribute API conformément à la politique suivante.

    • Pour que EMR Studio fonctionne avec le rôle de service, vous ne devez pas modifier les instructions suivantes : AllowAddingEMRTagsDuringDefaultSecurityGroupCreation etAllowAddingTagsDuringEC2ENICreation.

    • Pour utiliser l'exemple de politique, vous devez baliser les ressources suivantes avec la clé "for-use-with-amazon-emr-managed-policies" et la valeur "true".

      • Votre Amazon Virtual Private Cloud (VPC) pour EMR Studio.

      • Chaque sous-réseau que vous voulez utiliser avec le Studio.

      • Tous les groupes de sécurité EMR Studio personnalisés. Vous devez étiqueter tous les groupes de sécurité que vous avez créés pendant la période de prévisualisation de EMR Studio si vous souhaitez continuer à les utiliser.

      • Secrets conservés dans AWS Secrets Manager Studio et utilisés par les utilisateurs de Studio pour lier les référentiels Git à un espace de travail.

      Vous pouvez appliquer des balises aux ressources à l'aide de l'onglet Balises sur l'écran des ressources correspondant dans l' AWS Management Console.

    Le cas échéant, modifiez le * "Resource":"*" texte de la politique suivante pour spécifier le nom de ressource Amazon (ARN) des ressources couvertes par la déclaration pour votre cas d'utilisation.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowEMRReadOnlyActions", "Effect": "Allow", "Action": [ "elasticmapreduce:ListInstances", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListSteps" ], "Resource": "*" }, { "Sid": "AllowEC2ENIActionsWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowEC2ENIAttributeAction", "Effect": "Allow", "Action": [ "ec2:ModifyNetworkInterfaceAttribute" ], "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Sid": "AllowEC2SecurityGroupActionsWithEMRTags", "Effect": "Allow", "Action": [ "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "ec2:DeleteNetworkInterfacePermission" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowDefaultEC2SecurityGroupsCreationWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateSecurityGroup" ], "Resource": [ "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowDefaultEC2SecurityGroupsCreationInVPCWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateSecurityGroup" ], "Resource": [ "arn:aws:ec2:*:*:vpc/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowAddingEMRTagsDuringDefaultSecurityGroupCreation", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:security-group/*", "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true", "ec2:CreateAction": "CreateSecurityGroup" } } }, { "Sid": "AllowEC2ENICreationWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ], "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowEC2ENICreationInSubnetAndSecurityGroupWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowAddingTagsDuringEC2ENICreation", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateNetworkInterface" } } }, { "Sid": "AllowEC2ReadOnlyActions", "Effect": "Allow", "Action": [ "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Sid": "AllowSecretsManagerReadOnlyActionsWithEMRTags", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:*", "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowWorkspaceCollaboration", "Effect": "Allow", "Action": [ "iam:GetUser", "iam:GetRole", "iam:ListUsers", "iam:ListRoles", "sso:GetManagedApplicationInstance", "sso-directory:SearchUsers" ], "Resource": "*" } ] }
  3. Donnez à votre rôle de service un accès en lecture et en écriture à votre emplacement Amazon S3 pour EMR Studio. Utilisez l'ensemble minimum d'autorisations suivant. Pour plus d'informations, consultez l'exemple Amazon S3 : autorise l'accès en lecture et en écriture aux objets d'un compartiment S3, par programmation et dans la console.

    "s3:PutObject", "s3:GetObject", "s3:GetEncryptionConfiguration", "s3:ListBucket", "s3:DeleteObject"

    Si vous chiffrez votre compartiment Amazon S3, incluez les autorisations suivantes pour AWS Key Management Service.

    "kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"
  4. Si vous souhaitez contrôler l'accès aux secrets Git au niveau de l'utilisateur, ajoutez des autorisations basées sur des balises secretsmanager:GetSecretValue dans la politique de rôle d'utilisateur de EMR Studio et supprimez les autorisations de secretsmanager:GetSecretValue politique dans la politique de rôle du service EMR Studio. Pour plus d’informations sur la définition d’autorisations utilisateur précises, voir la rubrique Création de politiques d'autorisation pour les utilisateurs de EMR Studio.

Rôle de service minimal pour EMR Serverless

Si vous souhaitez exécuter des charges de travail interactives avec EMR Serverless via des blocs-notes EMR Studio, utilisez la même politique de confiance que celle que vous avez utilisée pour configurer EMR Studio dans la section précédente,. Comment créer un rôle de service pour EMR Studio sur Amazon EC2 ou Amazon EKS

Pour votre IAM politique, la politique minimale viable comporte les autorisations suivantes. Mettez à jour bucket-name avec le nom du bucket que vous prévoyez d'utiliser lors de la configuration de votre EMR studio et de votre espace de travail. EMRStudio utilise le bucket pour sauvegarder les espaces de travail et les fichiers de bloc-notes de votre studio.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ObjectActions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": ["arn:aws:s3:::bucket-name/*"] }, { "Sid": "BucketActions", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetEncryptionConfiguration" ], "Resource": ["arn:aws:s3:::bucket-name"] } ] }

Si vous prévoyez d'utiliser un compartiment Amazon S3 chiffré, ajoutez les autorisations suivantes à votre politique :

"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"

EMRAutorisations relatives aux rôles du service Studio

Le tableau suivant répertorie les opérations effectuées par EMR Studio à l'aide du rôle de service, ainsi que les IAM actions requises pour chaque opération.

Opération Actions
Établissez un canal réseau sécurisé entre un espace de travail et un EMR cluster, et effectuez les actions de nettoyage nécessaires.
"ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:ModifyNetworkInterfaceAttribute", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:RevokeSecurityGroupEgress", "ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elasticmapreduce:ListInstances", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListSteps"
Utilisez les informations d'identification Git enregistrées dans le AWS Secrets Manager répertoire pour lier les référentiels Git à un espace de travail.
"secretsmanager:GetSecretValue"
Appliquez des AWS balises à l'interface réseau et aux groupes de sécurité par défaut créés par EMR Studio lors de la configuration du canal réseau sécurisé. Pour plus d'informations, veuillez consulter la rubrique Balisage des ressources AWS.
"ec2:CreateTags"
Accédez ou chargez les fichiers de bloc-notes et les métadonnées sur Amazon S3.
"s3:PutObject", "s3:GetObject", "s3:GetEncryptionConfiguration", "s3:ListBucket", "s3:DeleteObject"

Si vous utilisez un compartiment Amazon S3 chiffré, incluez les autorisations suivantes.

"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"
Activer et configurer la collaboration dans l'espace de travail.
"iam:GetUser", "iam:GetRole", "iam:ListUsers", "iam:ListRoles", "sso:GetManagedApplicationInstance", "sso-directory:SearchUsers"
Chiffrez les blocs-notes et les fichiers de l'espace de travail EMR Studio à l'aide de clés gérées par le client () CMK avec AWS Key Management Service
"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"