Cree un rol de servicio de EMR Studio - Amazon EMR

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cree un rol de servicio de EMR Studio

Acerca del rol de servicio de EMR Studio

Cada EMR Studio usa un IAM rol con permisos que le permiten interactuar con otros AWS servicios. Esta función de servicio debe incluir permisos que permitan a EMR Studio establecer un canal de red seguro entre los espacios de trabajo y los clústeres, almacenar los archivos del bloc de notas y acceder a ellos AWS Secrets Manager al vincular un espacio de trabajo a un repositorio de Git. Amazon S3 Control

Utilice el rol de servicio de Studio (en lugar de las políticas de sesión) para definir todos los permisos de acceso a Amazon S3 para almacenar los archivos de cuadernos y para definir los permisos de acceso de AWS Secrets Manager .

Cómo crear un rol de servicio para EMR Studio en Amazon EC2 o Amazon EKS

  1. Siga las instrucciones de Creación de un rol para delegar permisos a un AWS servicio para crear el rol de servicio con la siguiente política de confianza.

    importante

    La siguiente política de confianza incluye las claves de condición aws:SourceAccountglobales aws:SourceArny las claves de condición para limitar los permisos que concedes a EMR Studio a determinados recursos de tu cuenta. Si lo hace, podrá protegerse contra el problema del suplente confuso.

    { "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. Quite los permisos de rol predeterminados. A continuación, incluye los permisos del siguiente ejemplo de política de IAM permisos. Como opción, puede crear una política personalizada que usa EMRPermisos de rol de servicio de Studio.

    importante
    • Para que el control de acceso EC2 basado en etiquetas de Amazon funcione con EMR Studio, debes configurar el acceso para la política siguiente, ModifyNetworkInterfaceAttribute API tal como se muestra.

    • Para que EMR Studio funcione con la función de servicio, no debes cambiar las siguientes afirmaciones: AllowAddingEMRTagsDuringDefaultSecurityGroupCreation yAllowAddingTagsDuringEC2ENICreation.

    • Para usar la política de ejemplo, debe etiquetar los siguientes recursos con la clave "for-use-with-amazon-emr-managed-policies" y el valor "true".

      • Su Amazon Virtual Private Cloud (VPC) para EMR Studio.

      • Cada subred que desee utilizar con el estudio.

      • Cualquier grupo de seguridad de EMR Studio personalizado. Debe etiquetar los grupos de seguridad que haya creado durante el período de vista previa de EMR Studio si quiere seguir utilizándolos.

      • Secretos guardados en él AWS Secrets Manager que los usuarios de Studio utilizan para vincular los repositorios de Git a un espacio de trabajo.

      Puede aplicar etiquetas a los recursos mediante la pestaña Etiquetas de la pantalla de recursos correspondiente de la AWS Management Console.

    Cuando proceda, cambie la * siguiente política para especificar el nombre del recurso de Amazon (ARN) de los recursos que cubre la declaración para su caso de uso. "Resource":"*"

    { "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. Conceda a su rol de servicio acceso de lectura y escritura a su ubicación de Amazon S3 para EMR Studio. Utilice el siguiente conjunto mínimo de permisos. Para obtener más información, consulte el ejemplo Amazon S3: permite el acceso de lectura y escritura a objetos en un bucket de S3 mediante programación y en la consola.

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

    Si cifra su bucket de Amazon S3, incluya los siguientes permisos para AWS Key Management Service.

    "kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"
  4. Si quieres controlar el acceso a los secretos de Git a nivel de usuario, añade permisos basados secretsmanager:GetSecretValue en etiquetas a la política de roles de usuario de EMR Studio y elimina los permisos a la secretsmanager:GetSecretValue política de roles de servicio de EMR Studio. Para obtener más información acerca de cómo utilizar permisos detallados, consulte Crea políticas de permisos para los usuarios de EMR Studio.

Función de servicio mínima para Serverless EMR

Si desea ejecutar cargas de trabajo interactivas con EMR Serverless a través de las libretas de EMR Studio, utilice la misma política de confianza que utilizó para configurar EMR Studio en la sección anterior,. Cómo crear un rol de servicio para EMR Studio en Amazon EC2 o Amazon EKS

Para su IAM política, la política mínima viable tiene los siguientes permisos. Actualízala bucket-name con el nombre del depósito que piensas usar al configurar EMR Studio y Workspace. EMRStudio usa el depósito para hacer copias de seguridad de los espacios de trabajo y los archivos del bloc de notas de tu 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 pretende usar un bucket de Amazon S3 cifrado, agregue los siguientes permisos a su política:

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

EMRPermisos de rol de servicio de Studio

En la siguiente tabla se enumeran las operaciones que EMR Studio realiza con el rol de servicio, junto con las IAM acciones necesarias para cada operación.

Operación Acciones
Establezca un canal de red seguro entre un espacio de trabajo y un EMR clúster y lleve a cabo las acciones de limpieza necesarias.
"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 las credenciales de Git almacenadas AWS Secrets Manager para vincular los repositorios de Git a un espacio de trabajo.
"secretsmanager:GetSecretValue"
Aplica AWS etiquetas a la interfaz de red y a los grupos de seguridad predeterminados que EMR Studio crea al configurar el canal de red seguro. Para obtener más información, consulte Tagging AWS resources (Etiquetado de los recursos de ).
"ec2:CreateTags"
Acceda a los archivos y metadatos de los cuadernos en Amazon S3 o cárguelos.
"s3:PutObject", "s3:GetObject", "s3:GetEncryptionConfiguration", "s3:ListBucket", "s3:DeleteObject"

Si usa un bucket de Amazon S3 cifrado, incluya los siguientes permisos.

"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"
Habilite y configure la colaboración en el espacio de trabajo.
"iam:GetUser", "iam:GetRole", "iam:ListUsers", "iam:ListRoles", "sso:GetManagedApplicationInstance", "sso-directory:SearchUsers"
Cifre las libretas y los archivos del espacio de trabajo de EMR Studio mediante claves administradas por el cliente () CMK con AWS Key Management Service
"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"