Configuración de la propagación de identidades de confianza con Amazon EMR Studio - AWS IAM Identity Center

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.

Configuración de la propagación de identidades de confianza con Amazon EMR Studio

El siguiente procedimiento explica cómo configurar Amazon EMR Studio para la propagación de identidades de confianza en consultas realizadas en grupos de trabajo de Amazon Athena o clústeres de Amazon EMR que ejecutan Apache Spark.

Requisitos previos

Antes de empezar con este tutorial, primero tendrá que configurar lo siguiente:

Para completar la configuración de la propagación de identidades de confianza desde Amazon EMR Studio, el administrador de EMR Studio debe realizar los siguientes pasos.

Paso 1. Creación del rol de IAM requerido para EMR Studio

En este paso, el administrador de Amazon EMR Studio crea un rol de servicio de IAM y un rol de usuario de IAM para EMR Studio.

  1. Cree un rol de servicio de EMR Studio: EMR Studio asume este rol de IAM para gestionar de forma segura los espacios de trabajo y los blocs de notas, conectarse a clústeres y gestionar las interacciones de datos.

    1. Navegue hasta la consola de IAM (https://console.aws.amazon.com/iam/) y cree un rol de IAM.

    2. Seleccione Servicio de AWS como entidad de confianza y, a continuación, elija Amazon EMR. Adjunte las siguientes políticas para definir los permisos y la relación de confianza del rol.

      Para usar estas políticas, sustituya italicized placeholder text la política del ejemplo por su propia información. Para obtener instrucciones adicionales, consulte Creación de una política o Edición de una política.

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Sid": "ObjectActions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::Your-S3-Bucket-For-EMR-Studio/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "Your-AWS-Account-ID" } } }, { "Sid": "BucketActions", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetEncryptionConfiguration" ], "Resource": [ "arn:aws:s3:::Your-S3-Bucket-For-EMR-Studio" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "Your-AWS-Account-ID" } } } ] }

      Para obtener una referencia de todos los permisos de rol de servicio, consulte EMR Studio service role permissions.

  2. Cree un rol de usuario de EMR Studio para la autenticación de IAM Identity Center: EMR Studio asume este rol cuando un usuario inicia sesión a través de IAM Identity Center para administrar espacios de trabajo, clústeres de EMR, trabajos y repositorios de git. Este rol se utiliza para iniciar el flujo de trabajo de propagación de identidades de confianza.

    nota

    El rol de usuario de EMR Studio no necesita incluir permisos para acceder a las ubicaciones de Amazon S3 de las tablas del catálogo. AWS Glue AWS Lake Formation los permisos y las ubicaciones de lagos registradas se utilizarán para recibir permisos temporales.

    El siguiente ejemplo de política se puede utilizar en un rol que permita a un usuario de EMR Studio utilizar los grupos de trabajo de Athena para ejecutar consultas.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "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": "AllowSecretManagerListSecrets", "Action": [ "secretsmanager:ListSecrets" ], "Resource": "*", "Effect": "Allow" }, { "Sid": "AllowSecretCreationWithEMRTagsAndEMRStudioPrefix", "Effect": "Allow", "Action": "secretsmanager:CreateSecret", "Resource": "arn:aws:secretsmanager:*:*:secret:emr-studio-*", "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowAddingTagsOnSecretsWithEMRStudioPrefix", "Effect": "Allow", "Action": "secretsmanager:TagResource", "Resource": "arn:aws:secretsmanager:*:*:secret:emr-studio-*" }, { "Sid": "AllowPassingServiceRoleForWorkspaceCreation", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::111122223333:role/service-role/AmazonEMRStudio_ServiceRole_Name" ], "Effect": "Allow" }, { "Sid": "AllowS3ListAndLocationPermissions", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::*", "Effect": "Allow" }, { "Sid": "AllowS3ReadOnlyAccessToLogs", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::aws-logs-Your-AWS-Account-ID-Region/elasticmapreduce/*" ], "Effect": "Allow" }, { "Sid": "AllowAthenaQueryExecutions", "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StopQueryExecution", "athena:ListQueryExecutions", "athena:GetQueryResultsStream", "athena:ListWorkGroups", "athena:GetWorkGroup", "athena:CreatePreparedStatement", "athena:GetPreparedStatement", "athena:DeletePreparedStatement" ], "Resource": "*" }, { "Sid": "AllowGlueSchemaManipulations", "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetDatabases", "glue:GetTable", "glue:GetTables", "glue:GetPartition", "glue:GetPartitions" ], "Resource": "*" }, { "Sid": "AllowQueryEditorToAccessWorkGroup", "Effect": "Allow", "Action": "athena:GetWorkGroup", "Resource": "arn:aws:athena:*:111122223333:workgroup*" }, { "Sid": "AllowConfigurationForWorkspaceCollaboration", "Action": [ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userId}" } } }, { "Sid": "DescribeNetwork", "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" }, { "Sid": "ListIAMRoles", "Effect": "Allow", "Action": [ "iam:ListRoles" ], "Resource": "*" }, { "Sid": "AssumeRole", "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": "*" } ] }

    La siguiente política de confianza permite que EMR Studio asuma el rol:

    nota

    Se necesitan permisos adicionales para aprovechar los espacios de trabajo de EMR Studio y los blocs de notas de EMR. Consulte Creación de políticas de permisos para los usuarios de EMR Studio para obtener más información.

Paso 2. Creación y configuración de EMR Studio

En este paso, creará un Amazon EMR Studio en la consola de EMR Studio y utilizará los roles de IAM que creó en Paso 1. Creación del rol de IAM requerido para EMR Studio.

  1. Navegue hasta la consola de EMR Studio, seleccione Crear estudio y Configuración personalizada. Puede crear un nuevo bucket de S3 o utilizar un bucket existente. Puede marcar la casilla para Cifrar los archivos del espacio de trabajo con sus propias claves de KMS. Para obtener más información, consulte AWS Key Management Service.

    Paso 1 Creación de EMR Studio en la consola de EMR.
  2. En Rol de servicio para permitir que Studio acceda a sus recursos, seleccione el rol de servicio creado en Paso 1. Creación del rol de IAM requerido para EMR Studio desde el menú.

  3. En Autenticación, elija IAM Identity Center. Seleccione el rol de usuario creado en Paso 1. Creación del rol de IAM requerido para EMR Studio.

    Paso 3 Creación de EMR Studio en la consola de EMR y selección de IAM Identity Center como método de autenticación.
  4. Marque la casilla Propagación de identidades de confianza. Seleccione Solo usuarios y grupos asignados en la sección Acceso a la aplicación, lo que le permitirá conceder el acceso a este estudio únicamente a usuarios y grupos autorizados.

  5. (Opcional): puede configurar la VPC y la subred si utiliza este estudio con clústeres de EMR.

    Paso 4 Creación de EMR Studio en la consola de EMR, seleccionando la configuración de red y seguridad.
  6. Revise todos los detalles y seleccione Crear Studio.

  7. Tras configurar un clúster de Athena WorkGroup o EMR, inicie sesión en la URL de Studio para:

    1. Ejecutar consultas de Athena con el editor de consultas.

    2. Ejecutar los trabajos de Spark en el espacio de trabajo con un bloc de notas Jupyter.