Configuración de la lista de clústeres de Amazon EMR - Amazon SageMaker AI

Configuración de la lista de clústeres de Amazon EMR

Los administradores pueden configurar los permisos para el rol de ejecución de SageMaker Studio a fin de conceder a los usuarios la posibilidad de ver la lista de clústeres de Amazon EMR a los que tienen acceso, lo que les permite conectarse a estos clústeres. Los clústeres a los que desea acceder pueden implementarse en la misma cuenta de AWS que Studio (elija Cuenta única) o en cuentas distintas (elija Entre cuentas). En la siguiente página, se describe cómo conceder los permisos para ver los clústeres de Amazon EMR desde Studio o Studio Classic.

importante

Solo puede detectar clústeres de Amazon EMR y conectarse a ellos para las aplicaciones de JupyterLab y Studio Classic que se inicializan desde espacios privados. Asegúrese de que los clústeres de Amazon EMR se encuentran en la misma región de AWS que su entorno de Studio.

Para permitir que los científicos de datos detecten clústeres de Amazon EMR y se conecten a ellos desde Studio o Studio Classic, siga estos pasos.

Si sus clústeres de Amazon EMR y Studio o Studio Classic están implementados en la misma cuenta de AWS, asocie los siguientes permisos al rol de ejecución de SageMaker AI que accede a su clúster.

  1. Paso 1: recuperación del ARN del rol de ejecución de SageMaker AI utilizado en su espacio privado.

    Para obtener más información sobre los espacios y los roles de ejecución de SageMaker AI, consulte Descripción de los permisos y roles de ejecución de espacio de dominio.

    Para obtener más información sobre cómo obtener el ARN del rol de ejecución de SageMaker AI, consulte Obtención del rol de ejecución.

  2. Paso 2: asociación de los siguientes permisos al rol de ejecución de SageMaker AI que accede a sus clústeres de Amazon EMR.

    1. Vaya a la consola de IAM.

    2. Elija Roles y, a continuación, busque su rol de ejecución por su nombre en el campo Buscar. El nombre del rol se encuentra en la última parte del ARN, después de la última barra diagonal (/).

    3. Siga el enlace a su rol.

    4. Elija Agregar permisos y, a continuación, Crear política insertada.

    5. En la pestaña JSON, añada los permisos de Amazon EMR que permiten el acceso y las operaciones de Amazon EMR. Para obtener más información sobre el documento de política, consulte List Amazon EMR policies en Políticas de referencia. Sustituya region y accountID por sus valores reales antes de copiar la lista de instrucciones a la política insertada de su rol.

    6. Elija Siguiente y, a continuación, proporcione un Nombre de política.

    7. Seleccione Crear política.

nota

Los usuarios de la conectividad del control de acceso basado en roles (RBAC) con los clústeres de Amazon EMR también deben consultar 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.

Antes de empezar, recupere el ARN del rol de ejecución de SageMaker AI que se utiliza en su espacio privado.

Para obtener más información sobre los espacios y los roles de ejecución de SageMaker AI, consulte Descripción de los permisos y roles de ejecución de espacio de dominio.

Para obtener más información sobre cómo obtener el ARN del rol de ejecución de SageMaker AI, consulte Obtención del rol de ejecución.

Si sus clústeres de Amazon EMR y Studio o Studio Classic se implementan en cuentas de AWSdiferentes, configure los permisos en ambas cuentas.

nota

Los usuarios de la conectividad del control de acceso basado en roles (RBAC) con los clústeres de Amazon EMR también deben consultar Configuración de la autenticación de roles en tiempo de ejecución cuando el clúster y Studio están en cuentas diferentes.

En la cuenta de clúster de Amazon EMR

Siga estos pasos para crear los roles y las políticas necesarios en la cuenta en la que está implementado Amazon EMR, también conocida como cuenta de confianza:

  1. Paso 1: recuperación del ARN del rol de servicio de su clúster de Amazon EMR.

    Para aprender a buscar el ARN del rol de servicio de un clúster, consulte Configuración de los roles de servicio de IAM de los permisos de Amazon EMR para los servicios y recursos de AWS.

  2. Paso 2: creación de un rol de IAM personalizado denominado AssumableRole con la siguiente configuración:

    • Permisos: conceda los permisos necesarios a AssumableRole para permitir el acceso a los recursos de Amazon EMR. Este rol también se conoce como rol de acceso en situaciones que implican el acceso entre cuentas.

    • Relación de confianza: configure la política de confianza para AssumableRole para permitir asumir el rol de ejecución (el SageMakerExecutionRole en el diagrama Entre cuentas) desde la cuenta de Studio a la que se requiere acceso.

    Al asumir el rol, Studio o Studio Classic pueden obtener acceso temporal a los permisos que necesitan en Amazon EMR.

    Para obtener instrucciones detalladas sobre cómo crear un AssumableRole en su cuenta de AWS de Amazon EMR, siga estos pasos:

    1. Vaya a la consola de IAM.

    2. En el panel de navegación de la izquierda, seleccione Política y, a continuación, Crear política.

    3. En la pestaña JSON, añada los permisos de Amazon EMR que permiten el acceso y las operaciones de Amazon EMR. Para obtener más información sobre el documento de política, consulte List Amazon EMR policies en Políticas de referencia. Sustituya region y accountID por sus valores reales antes de copiar la lista de instrucciones a la política insertada de su rol.

    4. Elija Siguiente y, a continuación, proporcione un Nombre de política.

    5. Seleccione Crear política.

    6. En el panel de navegación izquierdo, seleccione Roles y, a continuación, Crear rol.

    7. En la página Crear rol, elija la opción Política de confianza personalizada como entidad de confianza.

    8. Pegue el siguiente documento JSON en la sección Política de confianza personalizada y, a continuación, seleccione Siguiente.

      For users of Studio and JupyterLab

      Sustituya studio-account por el ID de cuenta de Studio y AmazonSageMaker-ExecutionRole por el rol de ejecución que se utiliza en su espacio de JupyterLab.

      JSON
      JSON
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole" }, "Action": "sts:AssumeRole" } ] }
      For users of Studio Classic

      Sustituya studio-account por el ID de cuenta de Studio Classic.

      JSON
      JSON
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "sts:AssumeRole" } ] }
    9. En la página Agregar permisos, añada el permiso que acaba de crear y, a continuación, seleccione Siguiente.

    10. En la página Revisar, introduzca un nombre para el rol como AssumableRole y una descripción opcional.

    11. Revise los detalles del rol y seleccione Crear rol.

    Para obtener más información sobre cómo crear un rol en una cuenta de AWS, consulte Creación de un rol de IAM (consola).

En la cuenta de Studio

En la cuenta en la que está implementado Studio, también denominada cuenta de confianza, actualice el rol de ejecución de SageMaker AI accediendo a sus clústeres con los permisos necesarios para acceder a los recursos de la cuenta de confianza.

  1. Paso 1: recuperación del ARN del rol de ejecución de SageMaker AI utilizado en su espacio privado.

    Para obtener más información sobre los espacios y los roles de ejecución de SageMaker AI, consulte Descripción de los permisos y roles de ejecución de espacio de dominio.

    Para obtener más información sobre cómo obtener el ARN del rol de ejecución de SageMaker AI, consulte Obtención del rol de ejecución.

  2. Paso 2: asociación de los siguientes permisos al rol de ejecución de SageMaker AI que accede a sus clústeres de Amazon EMR.

    1. Vaya a la consola de IAM.

    2. Elija Roles y, a continuación, busque su rol de ejecución por su nombre en el campo Buscar. El nombre del rol se encuentra en la última parte del ARN, después de la última barra diagonal (/).

    3. Siga el enlace a su rol.

    4. Elija Agregar permisos y, a continuación, Crear política insertada.

    5. En la pestaña JSON, añada la política insertada que concede al rol permisos para actualizar los dominios, los perfiles de usuario y los espacios. Para obtener más información sobre el documento de política, consulte Domain, user profile, and space update actions policy en Políticas de referencia. Sustituya region y accountID por sus valores reales antes de copiar la lista de instrucciones a la política insertada de su rol.

    6. Elija Siguiente y, a continuación, proporcione un Nombre de política.

    7. Seleccione Crear política.

    8. Repita el paso Crear una política insertada para añadir otra política que conceda al rol de ejecución los permisos para asumir el AssumableRole y luego realice las acciones permitidas por la política de acceso del rol. Sustituya emr-account por el ID de cuenta Amazon EMR y AssumableRole por el nombre del rol asumible creado en la cuenta de Amazon EMR.

      JSON
      { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleAssumptionForCrossAccountDiscovery", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::111122223333:role/AssumableRole" ] } ] }
    9. (Opcional) Para poder enumerar los clústeres de Amazon EMR implementados en la misma cuenta que Studio, añada una política interna adicional a su rol de ejecución de Studio, tal y como se define en List Amazon EMR policies en Políticas de referencia.

  3. Paso 3: asociación de sus roles asumibles (rol de acceso) a su dominio o perfil de usuario. Los usuarios de JupyterLab en Studio pueden usar la consola de SageMaker AI o el script proporcionado.

    Elija la pestaña que corresponda a su caso de uso.

    Associate your assumable roles in JupyterLab using the SageMaker AI console

    Para asociar sus roles asumibles al perfil de usuario o dominio mediante la consola de SageMaker AI:

    1. Vaya a la consola de SageMaker AI en https://console.aws.amazon.com/sagemaker/.

    2. En el panel de navegación izquierdo, seleccione dominio y luego seleccione el dominio utilizando el rol de ejecución de SageMaker AI cuyos permisos ha actualizado.

      • Para añadir sus roles asumibles (rol de acceso) a su dominio: en la pestaña Configuraciones de aplicaciones de la página Detalles del dominio, vaya a la sección JupyterLab.

      • Para añadir sus roles asumibles (rol de acceso) a su perfil de usuario: en la página Detalles del dominio, elija la pestaña Perfiles de usuario y seleccione el perfil de usuario mediante el rol de ejecución de SageMaker AI cuyos permisos ha actualizado. En la pestaña Configuraciones de aplicaciones, vaya a la sección JupyterLab.

    3. Elija Editar y añada los ARN de su rol asumible (rol de acceso).

    4. Elija Enviar.

    Associate your assumable roles in JupyterLab using a Python script

    En una aplicación de JupyterLab iniciada desde un espacio con el rol de ejecución de SageMaker AI cuyos permisos ha actualizado, ejecute el siguiente comando en un terminal. Sustituya los valores domainID, user-profile-name, emr-accountID y AssumableRole (EMRServiceRole para los roles de tiempo de ejecución de RBAC) por sus valores adecuados. Este fragmento de código actualiza la configuración del perfil de usuario para un perfil de usuario (use client.update_userprofile) o una configuración de dominio (use client.update_domain) específicos dentro de un dominio de SageMaker AI. En concreto, permite que la aplicación de JupyterLab asuma un rol de IAM determinado (AssumableRole) para ejecutar clústeres de Amazon EMR dentro de la cuenta de Amazon EMR.

    import botocore.session import json sess = botocore.session.get_session() client = sess.create_client('sagemaker') client.update_userprofile( DomainId="domainID", UserProfileName="user-profile-name", DefaultUserSettings={ 'JupyterLabAppSettings': { 'EmrSettings': { 'AssumableRoleArns': ["arn:aws:iam::emr-accountID:role/AssumableRole"], 'ExecutionRoleArns': ["arn:aws:iam::emr-accountID:role/EMRServiceRole", "arn:aws:iam::emr-accountID:role/AnotherServiceRole"] } } }) resp = client.describe_user_profile(DomainId="domainID", UserProfileName=user-profile-name") resp['CreationTime'] = str(resp['CreationTime']) resp['LastModifiedTime'] = str(resp['LastModifiedTime']) print(json.dumps(resp, indent=2))
    For users of Studio Classic

    Proporcione el ARN de AssumableRole a su rol de ejecución de Studio Classic. El servidor de Jupyter carga el ARN al inicializarse. El rol de ejecución de Studio asume ese rol de varias cuentas para detectar y conectarse a los clústeres de Amazon EMR en la cuenta de confianza.

    Puede especificar esta información mediante scripts de configuración del ciclo de vida (LCC). Puede asociar la LCC a su dominio o a un perfil de usuario específico. El script LCC que utilice debe ser una configuración de JupyterServer. Para obtener más información sobre cómo crear un script de LCC, consulte Use Lifecycle Configurations with Studio Classic.

    A continuación se muestra un ejemplo de script. Para modificar el script, sustituya AssumableRole y emr-account por sus valores correspondientes. El número de cuentas cruzadas está limitado a cinco.

    # This script creates the file that informs Studio Classic that the role "arn:aws:iam::emr-account:role/AssumableRole" in remote account "emr-account" must be assumed to list and describe Amazon EMR clusters in the remote account. #!/bin/bash set -eux FILE_DIRECTORY="/home/sagemaker-user/.cross-account-configuration-DO_NOT_DELETE" FILE_NAME="emr-discovery-iam-role-arns-DO_NOT_DELETE.json" FILE="$FILE_DIRECTORY/$FILE_NAME" mkdir -p $FILE_DIRECTORY cat > "$FILE" <<- "EOF" { emr-cross-account1: "arn:aws:iam::emr-cross-account1:role/AssumableRole", emr-cross-account2: "arn:aws:iam::emr-cross-account2:role/AssumableRole" } EOF

    Una vez que se ejecuta la LCC y se escriben los archivos, el servidor lee el archivo /home/sagemaker-user/.cross-account-configuration-DO_NOT_DELETE/emr-discovery-iam-role-arns-DO_NOT_DELETE.json y almacena el ARN entre cuentas.

Consulte Enumeración de clústeres de Amazon EMR desde Studio o Studio Classic para saber cómo detectar los clústeres de Amazon EMR y conectarse a ellos desde los cuadernos de Studio o Studio Classic.