Conéctate a un EMR clúster de Amazon desde tu portátil - Amazon SageMaker

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.

Conéctate a un EMR clúster de Amazon desde tu portátil

Si te conectas a un EMR clúster de Amazon desde tu portátil Jupyter en Studio, es posible que tengas que realizar una configuración adicional. En concreto, en el siguiente análisis se abordan dos cuestiones:

  • Pasar parámetros a tu comando de EMR conexión a Amazon. En los SparkMagic núcleos, es posible que los parámetros que pases al comando de EMR conexión a Amazon no funcionen según lo esperado debido a las diferencias en la forma en que Papermill pasa los parámetros y en la forma en que los SparkMagic recibe. La solución alternativa para resolver esta limitación consiste en pasar los parámetros como variables de entorno. Para obtener más información sobre el problema y la solución alternativa, consulte Pase los parámetros a su comando de EMR conexión.

  • Pasar las credenciales de usuario a clústeres de Amazon autenticados por Kerberos o HTTP Basic Auth. LDAP EMR En el modo interactivo, Studio solicita las credenciales en un formulario emergente en el que puede ingresar sus credenciales de inicio de sesión. En su cuaderno programado no interactivo, debe pasarlas a través de AWS Secrets Manager. Para obtener más información sobre cómo utilizarlas AWS Secrets Manager en las tareas programadas de su bloc de notas, consulte. Pase las credenciales de usuario a su clúster de Amazon autenticado por Kerberos o HTTP Basic Auth LDAP EMR

Pase los parámetros a su comando de EMR conexión

Si utilizas imágenes con los núcleos SparkMagic PySpark y Spark y quieres parametrizar tu comando de EMR conexión, introduce tus parámetros en el campo Variables de entorno en lugar de en el campo Parámetros del formulario Crear trabajo (en el menú desplegable Opciones adicionales). Asegúrese de que el comando de EMR conexión del bloc de notas de Jupyter transmita estos parámetros como variables de entorno. Por ejemplo, supongamos que pasa cluster-id como variable de entorno al crear el trabajo. El comando de EMR conexión debería tener el siguiente aspecto:

%%local import os
%sm_analytics emr connect —cluster-id {os.getenv('cluster_id')} --auth-type None

Necesita esta solución alternativa para cumplir con los requisitos de SparkMagic Papermill. En segundo plano, el SparkMagic núcleo espera que el comando %%local mágico acompañe a cualquier variable local que defina. Sin embargo, Papermill no ejecuta el comando mágico %%local con sus anulaciones. Para evitar esta limitación de Papermill, debe proporcionar sus parámetros como variables de entorno en el campo Variables de entorno.

Pase las credenciales de usuario a su clúster de Amazon autenticado por Kerberos o HTTP Basic Auth LDAP EMR

Para establecer una conexión segura con un EMR clúster de Amazon que utilice la autenticación Kerberos o HTTP Basic Auth, utilice el comando AWS Secrets Manager to pass user credentials to your connection. LDAP Para obtener información sobre cómo crear un secreto en Secrets Manager, consulte Creación de un secreto de AWS Secrets Manager. Su secreto debe contener su nombre de usuario y contraseña. El secreto se pasa con el argumento --secrets, tal como se muestra en el siguiente ejemplo:

%sm_analytics emr connect --cluster-id j_abcde12345 --auth Kerberos --secret aws_secret_id_123

El administrador puede configurar una política de acceso flexible mediante un método attribute-based-access-control (ABAC), que asigna el acceso en función de etiquetas especiales. Puede configurar un acceso flexible para crear un secreto único para todos los usuarios de la cuenta o un secreto para cada usuario. Los siguientes ejemplos de código muestran estos escenarios:

Crear un secreto único para todos los usuarios de la cuenta

{ "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : {"AWS" : "arn:aws:iam::AWS_ACCOUNT_ID:role/service-role/AmazonSageMaker-ExecutionRole-20190101T012345"}, "Action" : "secretsmanager:GetSecretValue", "Resource" : [ "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID:secret:aes123-1a2b3c", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID:secret:aes456-4d5e6f", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID:secret:aes789-7g8h9i" ] } ] }

Crear un secreto diferente para cada usuario

Puede crear un secreto diferente para cada usuario con la etiqueta PrincipleTag, como se muestra en el ejemplo siguiente:

{ "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : {"AWS" : "arn:aws:iam::AWS_ACCOUNT_ID:role/service-role/AmazonSageMaker-ExecutionRole-20190101T012345"}, "Condition" : { "StringEquals" : { "aws:ResourceTag/user-identity": "${aws:PrincipalTag/user-identity}" } }, "Action" : "secretsmanager:GetSecretValue", "Resource" : [ "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID:secret:aes123-1a2b3c", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID:secret:aes456-4d5e6f", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID:secret:aes789-7g8h9i" ] } ] }