Crea un ruolo di servizio di EMR Studio - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea un ruolo di servizio di EMR Studio

Informazioni sul ruolo di servizio di EMR Studio

Ogni EMR Studio utilizza un IAM ruolo con autorizzazioni che consentono allo Studio di interagire con altri AWS servizi. Questo ruolo di servizio deve includere autorizzazioni che consentano a EMR Studio di stabilire un canale di rete sicuro tra Workspace e cluster, di archiviare i file del notebook e di accedervi AWS Secrets Manager mentre si collega un Workspace a un repository Git. Amazon S3 Control

Utilizza il ruolo di servizio Studio (anziché le policy di sessione) per definire tutte le autorizzazioni di accesso ad Amazon S3 per l'archiviazione dei file notebook e per definire autorizzazioni di accesso AWS Secrets Manager .

Come creare un ruolo di servizio per EMR Studio su Amazon EC2 o Amazon EKS

  1. Segui le istruzioni in Creazione di un ruolo per delegare le autorizzazioni a un AWS servizio per creare il ruolo di servizio con la seguente politica di attendibilità.

    Importante

    La seguente politica di attendibilità include aws:SourceArnle chiavi di condizione aws:SourceAccountglobali per limitare le autorizzazioni concesse a EMR Studio a particolari risorse del proprio account. In questo modo puoi proteggerti dal problema del "confused deputy".

    { "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. Rimuovere le autorizzazioni di ruolo predefinite. Quindi, includi le autorizzazioni contenute nella seguente politica di IAM autorizzazione di esempio. In alternativa, è possibile creare una policy personalizzata che utilizzi EMRAutorizzazioni per i ruoli di servizio di Studio.

    Importante
    • Affinché il controllo degli accessi EC2 basato su tag di Amazon funzioni con EMR Studio, devi impostare l'accesso per ModifyNetworkInterfaceAttribute API come mostrato nella seguente politica.

    • Affinché EMR Studio funzioni con il ruolo di servizio, non devi modificare le seguenti istruzioni: AllowAddingEMRTagsDuringDefaultSecurityGroupCreation eAllowAddingTagsDuringEC2ENICreation.

    • Per utilizzare la policy di esempio, è necessario taggare le seguenti risorse con la chiave "for-use-with-amazon-emr-managed-policies" e il valore "true".

      • Il tuo Amazon Virtual Private Cloud (VPC) per EMR Studio.

      • Ogni sottorete che si desidera utilizzare con Studio.

      • Qualsiasi gruppo di sicurezza EMR Studio personalizzato. È necessario etichettare tutti i gruppi di sicurezza creati durante il periodo di anteprima di EMR Studio se si desidera continuare a utilizzarli.

      • Segreti mantenuti in AWS Secrets Manager modo che gli utenti di Studio utilizzino per collegare i repository Git a un Workspace.

      Puoi applicare i tag alle risorse utilizzando la scheda Tag nella schermata delle risorse pertinente nella sezione AWS Management Console.

    Ove applicabile, modifica l'*indirizzo "Resource":"*" nella seguente politica per specificare l'Amazon Resource Name (ARN) delle risorse coperte dall'informativa per il tuo caso d'uso.

    { "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. Offri al tuo ruolo di servizio l'accesso in lettura e scrittura alla tua posizione Amazon S3 per EMR Studio. Utilizza il seguente set minimo di autorizzazioni. Per ulteriori informazioni, consulta l'esempio Amazon S3: consente l'accesso in lettura e scrittura agli oggetti di un bucket S3, in modo programmatico e nella console.

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

    Se si crittografa il bucket Amazon S3, devi includere le seguenti autorizzazioni per AWS Key Management Service.

    "kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"
  4. Se desideri controllare l'accesso ai segreti di Git a livello di utente, aggiungi autorizzazioni basate su tag secretsmanager:GetSecretValue nella politica del ruolo utente di EMR Studio e rimuovi le autorizzazioni alla secretsmanager:GetSecretValue policy dalla politica del ruolo del servizio di EMR Studio. Per ulteriori informazioni sull'impostazione di autorizzazioni utente granulari, consulta Crea politiche di autorizzazione per EMR gli utenti di Studio.

Ruolo di servizio minimo per Serverless EMR

Se desideri eseguire carichi di lavoro interattivi con EMR Serverless tramite notebook EMR Studio, utilizza la stessa politica di attendibilità utilizzata per configurare EMR Studio nella sezione precedente,. Come creare un ruolo di servizio per EMR Studio su Amazon EC2 o Amazon EKS

Per la tua IAM politica, la policy minima valida prevede le seguenti autorizzazioni. Aggiorna bucket-name con il nome del bucket che intendi utilizzare quando configuri EMR Studio e Workspace. EMRStudio utilizza il bucket per il backup delle aree di lavoro e dei file del taccuino di 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"] } ] }

Se intendi utilizzare un bucket Amazon S3 crittografato, aggiungi le seguenti autorizzazioni al policy:

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

EMRAutorizzazioni per i ruoli di servizio di Studio

La tabella seguente elenca le operazioni eseguite da EMR Studio utilizzando il ruolo di servizio, insieme alle IAM azioni richieste per ciascuna operazione.

Operazione Azioni
Stabilisci un canale di rete sicuro tra un workspace e un EMR cluster ed esegui le azioni di pulizia necessarie.
"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"
Usa le credenziali Git archiviate in AWS Secrets Manager per collegare i repository Git a un Workspace.
"secretsmanager:GetSecretValue"
Applica i AWS tag all'interfaccia di rete e ai gruppi di sicurezza predefiniti creati da EMR Studio durante la configurazione del canale di rete sicuro. Per ulteriori informazioni, consulta Assegnazione di tag alle risorse AWS.
"ec2:CreateTags"
Accedi o carica i file notebook e i metadati in Amazon S3.
"s3:PutObject", "s3:GetObject", "s3:GetEncryptionConfiguration", "s3:ListBucket", "s3:DeleteObject"

Se utilizzi un bucket Amazon S3 crittografato, devi includere le seguenti autorizzazioni.

"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"
Abilita e configura la collaborazione di Workspace.
"iam:GetUser", "iam:GetRole", "iam:ListUsers", "iam:ListRoles", "sso:GetManagedApplicationInstance", "sso-directory:SearchUsers"
Crittografa i notebook e i file dell'area di lavoro di EMR Studio utilizzando chiavi gestite dal cliente () con CMK AWS Key Management Service
"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"