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 roles de tiempo de ejecución de IAM para el acceso al clúster de Amazon EMR en Studio
Cuando se conecta a un clúster de Amazon EMR desde sus cuadernos de Studio o Studio Classic, puede examinar visualmente una lista de roles de IAM, conocidos como roles de tiempo de ejecución, y seleccionar uno sobre la marcha. Posteriormente, todos sus trabajos de Apache Spark, Apache Hive o Presto creados desde su cuaderno accederán únicamente a los datos y recursos permitidos por las políticas asociadas al rol de tiempo de ejecución. Además, cuando se accede a los datos desde lagos de datos gestionados con ellos AWS Lake Formation, puede imponer el acceso a nivel de tabla y columna mediante políticas asociadas a la función de tiempo de ejecución.
Con esta capacidad, usted y sus compañeros de equipo pueden conectarse al mismo clúster, cada uno con un rol de tiempo de ejecución limitado con permisos que se ajusten a su nivel individual de acceso a los datos. Sus sesiones también están aisladas unas de otras en el clúster compartido.
Para probar esta función con Studio Classic, consulte Aplicar controles de acceso a datos detallados con AWS Lake Formation Amazon EMR desde Amazon
Requisitos previos
Antes de comenzar, asegúrese de que cumplir los siguientes requisitos previos:
-
Utiliza Amazon EMR versión 6.9 o posteriores.
-
Para los usuarios de Studio Classic: utilice la JupyterLab versión 3 en la configuración de la aplicación del servidor Jupyter de Studio Classic. Esta versión admite la conexión de Studio Classic a los clústeres de Amazon EMR mediante roles de tiempo de ejecución.
Para los usuarios de Studio: utilice una versión SageMaker de imagen de distribución
1.10
o superior. -
Permita el uso de roles de tiempo de ejecución en la configuración de seguridad del clúster. Para obtener más información, consulte Roles en tiempo de ejecución para los pasos de Amazon EMR.
-
Cree un cuaderno con cualquiera de los kernels que aparecen en Imágenes y kernels compatibles para conectarse a un clúster de Amazon EMR desde Studio o Studio Classic.
-
Asegúrese de revisar las instrucciones de Configuración de Studio para usar roles de IAM en tiempo de ejecución para configurar sus roles de tiempo de ejecución.
Escenarios de conexión entre cuentas
La autenticación de roles en tiempo de ejecución admite diversos escenarios de conexión entre cuentas cuando los datos residen fuera de la cuenta de Studio. En la siguiente imagen, se muestran tres formas diferentes de asignar el clúster, los datos e incluso el rol de ejecución en tiempo de ejecución de Amazon EMR entre sus cuentas de Studio y de datos:
![Escenarios entre cuentas que admite la autenticación de roles de IAM en tiempo de ejecución.](images/studio-emr-rbac-scenarios.png)
En la opción 1, el clúster de Amazon EMR y el rol de ejecución en tiempo de ejecución de Amazon EMR se encuentran en una cuenta de datos diferente de la cuenta de Studio. Debe definir una política de permisos de rol de acceso a Amazon EMR diferente (también denominada Assumable role
) que concede permiso a el rol de ejecución de Studio o Studio Classic para que asuma el rol de acceso a Amazon EMR. A continuación, el rol de acceso a Amazon EMR llama a la API de Amazon EMR GetClusterSessionCredentials
en nombre de su rol de ejecución de Studio o Studio Classic, lo que le da acceso al clúster.
En la opción 2, el clúster de Amazon EMR y el rol de ejecución en tiempo de ejecución de Amazon EMR se encuentran en su cuenta de Studio. Su rol de ejecución de Studio tiene permiso para usar la API de Amazon EMR GetClusterSessionCredentials
para acceder a su clúster. Para acceder al bucket de Amazon S3, conceda al rol de ejecución en tiempo de ejecución de Amazon EMR permisos de acceso de varias cuentas al bucket de Amazon S3; usted concede estos permisos dentro de su política de buckets de Amazon S3.
En la opción 3, sus clústeres de Amazon EMR están en su cuenta de Studio y el rol de ejecución en tiempo de ejecución de Amazon EMR está en la cuenta de datos. Su rol de ejecución de Studio o Studio Classic tiene permiso para usar la API de Amazon EMR GetClusterSessionCredentials
para acceder a su clúster. Añada el rol de ejecución en tiempo de ejecución de Amazon EMR al JSON de configuración del rol de ejecución. Luego, puede seleccionar el rol en la interfaz de usuario al elegir su clúster. Para obtener más información sobre cómo configurar el archivo JSON de configuración del rol de ejecución, consulte Carga previa de sus roles de ejecución en Studio o Studio Classic.
Configuración de Studio para usar roles de IAM en tiempo de ejecución
Para establecer la autenticación de roles en tiempo de ejecución para sus clústeres de Amazon EMR, configure las políticas de IAM, la red y las mejoras de usabilidad necesarias. Su configuración depende de si gestiona acuerdos entre cuentas si sus clústeres de Amazon EMR, el rol de ejecución en tiempo de ejecución de Amazon EMR o ambos residen fuera de su cuenta de Studio. En la siguiente sección, verá las políticas que debe instalar, cómo configurar la red para permitir el tráfico entre cuentas y el archivo de configuración local que debe configurar para automatizar la conexión a Amazon EMR.
Configuración de la autenticación de roles en tiempo de ejecución cuando el clúster de Amazon EMR y Studio están en la misma cuenta
Si su clúster de Amazon EMR reside en su cuenta de Studio, realice los siguientes pasos para añadir los permisos necesarios a la política de ejecución de Studio:
-
Añada la política de IAM necesaria para conectarse a los clústeres de Amazon EMR. Para obtener más información, consulte Configuración de la lista de clústeres de Amazon EMR.
-
Conceda permiso para llamar a la API de Amazon EMR
GetClusterSessionCredentials
cuando pase uno o más roles de ejecución en tiempo de ejecución de Amazon EMR permitidos especificados en la política. -
(Opcional) Conceda permiso para transferir roles de IAM que sigan cualquier convención de nomenclatura definida por el usuario.
-
(Opcional) Conceda permiso para acceder a los clústeres de Amazon EMR etiquetados con cadenas específicas definidas por el usuario.
-
Cargue previamente sus roles de IAM para poder seleccionar el rol que desee utilizar cuando se conecte a su clúster de Amazon EMR. Para obtener más información acerca de cómo precargar los roles de IAM, consulte Carga previa de sus roles de ejecución en Studio o Studio Classic.
El siguiente ejemplo de política permite a los roles de ejecución en tiempo de ejecución de Amazon EMR que pertenecen a los grupos de modelado y entrenamiento llamar a GetClusterSessionCredentials
. Además, el titular de la política puede acceder a los clústeres de Amazon EMR etiquetados con las cadenas modeling
o training
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "elasticmapreduce:GetClusterSessionCredentials", "Resource": "*", "Condition": { "StringLike": { "elasticmapreduce:ExecutionRoleArn": [ "arn:aws:iam::123456780910:role/emr-execution-role-ml-modeling*", "arn:aws:iam::123456780910:role/emr-execution-role-ml-training*" ], "elasticmapreduce:ResourceTag/group": [ "*modeling*", "*training*" ] } } } ] }
Configuración de la autenticación de roles en tiempo de ejecución cuando el clúster y Studio están en cuentas diferentes
Si su clúster de Amazon EMR no está en su cuenta de Studio, permita que su función de ejecución de SageMaker IA asuma la función de acceso multicuenta a Amazon EMR para que pueda conectarse al clúster. Siga estos pasos para realizar su configuración de varias cuentas:
-
Cree su política de permisos para la función de ejecución de SageMaker IA para que la función de ejecución pueda asumir la función de acceso a Amazon EMR. A continuación, se muestra un ejemplo de política:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAssumeCrossAccountEMRAccessRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
emr_account_id
:role/emr-access-role-name
" } ] } -
Cree la política de confianza para especificar en qué cuentas de Studio IDs se confía para asumir la función de acceso a Amazon EMR. A continuación, se muestra un ejemplo de política:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountSageMakerExecutionRoleToAssumeThisRole", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
studio_account_id
:role/studio_execution_role
" }, "Action": "sts:AssumeRole" } } -
Cree la política de permisos del rol de acceso de Amazon EMR, que conceda al rol de ejecución en tiempo de ejecución de Amazon EMR los permisos necesarios para llevar a cabo las tareas previstas en el clúster. Configure la rol de acceso a Amazon EMR para llamar a la API
GetClusterSessionCredentials
con los roles de ejecución en tiempo de ejecución de Amazon EMR especificados en la política de permisos del rol de acceso. A continuación, se muestra un ejemplo de política:{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallingEmrGetClusterSessionCredentialsAPI", "Effect": "Allow", "Action": "elasticmapreduce:GetClusterSessionCredentials", "Resource": "", "Condition": { "StringLike": { "elasticmapreduce:ExecutionRoleArn": [ "arn:aws:iam::
emr_account_id
:role/emr-execution-role-name
" ] } } } ] } -
Configure la red de varias cuentas para que el tráfico pueda fluir entre sus cuentas. Para obtener instrucciones, consulte Configuración de acceso a la red para su clúster de Amazon EMRSet up the . Los pasos de esta sección le ayudarán a completar las siguientes tareas:
-
Empareje mediante VPC su cuenta de Studio y su cuenta de Amazon EMR para establecer una conexión.
-
Añada manualmente rutas a las tablas de enrutamiento de las subredes privadas en ambas cuentas. Esto permite crear y conectar clústeres de Amazon EMR desde la cuenta de Studio a la subred privada de la cuenta remota.
-
Configure el grupo de seguridad asociado a su dominio de Studio para permitir el tráfico saliente y el grupo de seguridad del nodo principal de Amazon EMR para permitir el tráfico de TCP entrante desde el grupo de seguridad de la instancia de Studio.
-
-
Cargue previamente sus roles de tiempo de ejecución de IAM para poder seleccionar el rol que desee utilizar cuando se conecte a su clúster de Amazon EMR. Para obtener más información acerca de cómo precargar los roles de IAM, consulte Carga previa de sus roles de ejecución en Studio o Studio Classic.
Configuración del acceso a Lake Formation
Al acceder a los datos de los lagos de datos gestionados por AWS Lake Formation, puede aplicar el acceso a nivel de tabla y columna mediante políticas asociadas a su función de tiempo de ejecución. Para configurar el permiso de acceso a Lake Formation, consulte Integración de Amazon EMR con AWS Lake Formation.
Carga previa de sus roles de ejecución en Studio o Studio Classic
Puede cargar previamente sus roles de tiempo de ejecución de IAM para poder seleccionar el rol que desee utilizar cuando se conecte a su clúster de Amazon EMR. Los usuarios de JupyterLab In Studio pueden usar la consola de SageMaker IA o el script proporcionado.