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.
El siguiente procedimiento le guiará a través de la configuración de Amazon EMR. Studio para la propagación de identidades confiables en consultas realizadas en grupos de trabajo de Amazon Athena o clústeres de Amazon EMR en ejecución Apache Spark.
Requisitos previos
Antes de empezar con este tutorial, tendrá que configurar lo siguiente:
-
Habilite el Centro de identidades de IAM. Se recomienda una instancia de organización. Para obtener más información, consulte Requisitos y consideraciones previos.
-
Aprovisione los usuarios y grupos de su fuente de identidades en el Centro de identidades de IAM.
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. Cree las funciones de IAM necesarias para EMR Studio
En este paso, el Amazon EMR Studio el administrador crea un rol de servicio de IAM y un rol de usuario de IAM para EMR Studio.
Cree una función de servicio de EMR Studio: EMR Studio asume esta función de IAM para gestionar de forma segura los espacios de trabajo y las libretas, conectarse a clústeres y gestionar las interacciones de datos.
-
Navegue hasta la consola de IAM (https://console.aws.amazon.com/iam/
) y cree un rol de IAM. -
Seleccione Servicio de AWScomo 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 Crear una política o Editar una política.{ "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 Permisos de rol de servicio de EMR Studio.
-
Cree un rol de usuario de EMR Studio para la autenticación del Centro de identidad de IAM: EMR Studio asume este rol cuando un usuario inicia sesión a través del Centro de identidades de IAM para administrar espacios de trabajo, clústeres de EMR, trabajos y repositorios de git. Esta función se utiliza para iniciar el flujo de trabajo de propagación de identidades fiables.
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.
{ "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::
Your-AWS-Account-ID
: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:*:Your-AWS-Account-ID
: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 a EMR Studio asumir la función:
{ "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetContext" ] } ] }
nota
Se necesitan permisos adicionales para aprovechar EMR Studio Workspaces y EMR Notebooks. Consulte Crear políticas de permisos para los usuarios de EMR Studio para obtener más información.
Puede encontrar más información en los siguientes enlaces:
Paso 2. Cree y configure su EMR Studio
En este paso, creará un Amazon EMR Studio en la consola de EMR Studio y utilizará las funciones de IAM en las que creó. Paso 1. Cree las funciones de IAM necesarias para EMR Studio
-
Navegue hasta la consola de EMR Studio, seleccione Crear estudio y la opción Configuración personalizada. Puede crear un nuevo depósito de S3 o utilizar uno existente. Puede marcar la casilla Cifrar los archivos del espacio de trabajo con sus propias claves de KMS. Para obtener más información, consulte AWS Key Management Service.
-
En Función de servicio para permitir que Studio acceda a sus recursos, seleccione la función de servicio creada en el Paso 1. Cree las funciones de IAM necesarias para EMR Studio menú.
-
Elija IAM Identity Center en Autenticación. Seleccione el rol de usuario creado enPaso 1. Cree las funciones de IAM necesarias para EMR Studio.
-
Marque la casilla Propagación de identidad confiable. Seleccione Solo usuarios y grupos asignados en la sección Acceso a la aplicación, lo que le permitirá permitir el acceso a este estudio únicamente a usuarios y grupos autorizados.
-
(Opcional): puede configurar la VPC y la subred si utiliza este estudio con clústeres de EMR.
-
Revise todos los detalles y seleccione Create Studio.
-
Tras configurar un clúster de Athena WorkGroup o EMR, inicie sesión en la URL de Studio para:
-
Ejecute consultas de Athena con el editor de consultas.
-
Ejecute los trabajos de Spark en el espacio de trabajo mediante Jupyter cuaderno.
-