Configurar EMR CloudFormation las plantillas de Amazon en el Service Catalog - 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.

Configurar EMR CloudFormation las plantillas de Amazon en el Service Catalog

En este tema se presupone que los administradores están familiarizados con AWS CloudFormationlas carteras y los productos de Amazon AWS Service Catalog, así como con Amazon EMR.

Para simplificar la creación de EMR clústeres de Amazon desde Studio, los administradores pueden registrar una EMR CloudFormation plantilla de Amazon como producto de una AWS Service Catalogcartera. Para que la plantilla esté disponible para los científicos de datos, deben asociar la cartera con la función de SageMaker ejecución utilizada en Studio o Studio Classic. Por último, para permitir a los usuarios descubrir plantillas, aprovisionar clústeres y conectarse a EMR clústeres de Amazon desde Studio o Studio Classic, los administradores deben establecer los permisos de acceso adecuados.

EMR AWS CloudFormation Las plantillas de Amazon permiten a los usuarios finales personalizar varios aspectos del clúster. Por ejemplo, los administradores pueden definir una lista aprobada de tipos de instancias entre los que los usuarios pueden elegir al crear un clúster.

En las siguientes instrucciones, se utilizan end-to-end CloudFormation pilas para configurar un dominio de Studio o Studio Classic, un perfil de usuario, una cartera de Service Catalog y rellenar una plantilla de EMR lanzamiento de Amazon. En los siguientes pasos, se destacan los ajustes específicos que los administradores deben aplicar en su end-to-end stack para permitir que Studio o Studio Classic accedan a los productos de Service Catalog y aprovisionen EMR los clústeres de Amazon.

nota

El GitHub repositorio aws-samples/ sagemaker-studio-emr contiene end-to-end CloudFormation pilas de ejemplos que implementan las IAM funciones necesarias, las redes, el SageMaker dominio, el perfil de usuario y la cartera de Service Catalog necesarios y añaden una plantilla de lanzamiento de Amazon. EMR CloudFormation Las plantillas ofrecen diferentes opciones de autenticación entre Studio o Studio Classic y el EMR clúster de Amazon. En estas plantillas de ejemplo, la CloudFormation pila principal transfiere SageMaker VPC los parámetros del grupo de seguridad y de la subred a la plantilla de EMR clúster de Amazon.

El repositorio sagemaker-studio-emr/cloudformation/emr_servicecatalog_templates contiene varios ejemplos de plantillas de lanzamiento de Amazon EMR CloudFormation , incluidas opciones para despliegues con una o varias cuentas.

Consulta Conéctate a un EMR clúster de Amazon desde SageMaker Studio o Studio Classic los detalles sobre los métodos de autenticación que puedes usar para conectarte a un EMR clúster de Amazon.

Para permitir que los científicos de datos descubran EMR CloudFormation las plantillas de Amazon y aprovisionen los clústeres de Studio o Studio Classic, sigue estos pasos.

Paso 0: Comprueba tu red y prepara tu CloudFormation plantilla

Antes de empezar:

  • Asegúrese de haber revisado los requisitos de red y seguridad enConfigurar redes.

  • Debe tener una end-to-end CloudFormation pila existente que admita el método de autenticación que elija. Puede encontrar ejemplos de este tipo de CloudFormation plantillas en el repositorio aws-samples/ sagemaker-studio-emr GitHub . En los siguientes pasos, se destacan las configuraciones específicas de la end-to-end pila para permitir el uso de EMR plantillas de Amazon en Studio o Studio Classic.

Paso 1: Asocie su cartera de Service Catalog a SageMaker

En su cartera de Service Catalog, asocie su ID de cartera con la función de SageMaker ejecución que accede al clúster.

Para ello, añada la siguiente sección (aquí en YAML formato) a su pila. Esto otorga al rol de SageMaker ejecución acceso a la cartera de Service Catalog especificada que contiene productos como EMR las plantillas de Amazon. Permite que los roles que asuma el lanzamiento SageMaker de esos productos sean asumidos.

Reemplazar SageMakerExecutionRole.Arn y SageMakerStudioEMRProductPortfolio.ID con sus valores reales.

SageMakerStudioEMRProductPortfolioPrincipalAssociation: Type: AWS::ServiceCatalog::PortfolioPrincipalAssociation Properties: PrincipalARN: SageMakerExecutionRole.Arn PortfolioId: SageMakerStudioEMRProductPortfolio.ID PrincipalType: IAM
nota

¿Qué función de ejecución debería considerar?

La interfaz de usuario de Studio determina sus permisos a partir del rol de ejecución asociado al perfil de usuario que lo lanzó. La interfaz de usuario establece estos permisos en el momento del lanzamiento. Sin embargo, los espacios que se inician JupyterLab o las aplicaciones de Studio Classic pueden tener permisos independientes.

Para un acceso uniforme a las EMR plantillas y clústeres de Amazon en todas las aplicaciones (como la interfaz de usuario de Studio y Studio Classic), concede el mismo subconjunto de permisos a todos los roles a nivel de dominio, perfil de usuario o espacio. JupyterLab Los permisos deberían permitir descubrir y aprovisionar EMR clústeres de Amazon.

Para obtener más información sobre el conjunto de IAM permisos necesario, consulta la sección de permisos.

Paso 2: Hacer referencia a una EMR plantilla de Amazon en un producto de Service Catalog

En un producto de Service Catalog de su cartera, consulte un recurso de EMR plantilla de Amazon y asegúrese de que esté visible en Studio o Studio Classic.

Para ello, haga referencia al recurso de EMR plantilla de Amazon en la definición del producto de Service Catalog y, a continuación, añada el siguiente "sagemaker:studio-visibility:emr" conjunto de claves de etiquetas al valor "true" (consulte el ejemplo en YAML formato).

En la definición del producto de Service Catalog, se hace referencia a la AWS CloudFormation plantilla del clúster medianteURL. La etiqueta adicional establecida en true garantiza la visibilidad de las EMR plantillas de Amazon en Studio o Studio Classic.

nota

La EMR plantilla de Amazon a la que se hace referencia URL en el ejemplo no exige ningún requisito de autenticación cuando se lanza. Esta opción está pensada para fines de demostración y aprendizaje. No se recomienda en un entorno de producción.

SMStudioEMRNoAuthProduct: Type: AWS::ServiceCatalog::CloudFormationProduct Properties: Owner: AWS Name: SageMaker Studio Domain No Auth EMR ProvisioningArtifactParameters: - Name: SageMaker Studio Domain No Auth EMR Description: Provisions a SageMaker domain and No Auth EMR Cluster Info: LoadTemplateFromURL: Link to your CloudFormation template. For example, https://aws-blogs-artifacts-public.s3.amazonaws.com/artifacts/astra-m4-sagemaker/end-to-end/CFN-EMR-NoStudioNoAuthTemplate-v3.yaml Tags: - Key: "sagemaker:studio-visibility:emr" Value: "true"

Paso 3: Parametrizar la plantilla de Amazon EMR CloudFormation

La CloudFormation plantilla utilizada para definir el EMR clúster de Amazon en el producto Service Catalog permite a los administradores especificar parámetros configurables. Los administradores pueden definir Default valores y AllowedValues rangos para estos parámetros en la Parameters sección de la plantilla. Durante el proceso de lanzamiento del clúster, los científicos de datos pueden proporcionar entradas personalizadas o seleccionar entre esas opciones predefinidas para personalizar determinados aspectos de su EMR clúster de Amazon.

El siguiente ejemplo ilustra los parámetros de entrada adicionales que los administradores pueden establecer al crear una EMR plantilla de Amazon.

"Parameters": { "EmrClusterName": { "Type": "String", "Description": "EMR cluster Name." }, "MasterInstanceType": { "Type": "String", "Description": "Instance type of the EMR master node.", "Default": "m5.xlarge", "AllowedValues": [ "m5.xlarge", "m5.2xlarge", "m5.4xlarge" ] }, "CoreInstanceType": { "Type": "String", "Description": "Instance type of the EMR core nodes.", "Default": "m5.xlarge", "AllowedValues": [ "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge" ] }, "CoreInstanceCount": { "Type": "String", "Description": "Number of core instances in the EMR cluster.", "Default": "2", "AllowedValues": [ "2", "5", "10" ] }, "EmrReleaseVersion": { "Type": "String", "Description": "The release version of EMR to launch.", "Default": "emr-5.33.1", "AllowedValues": [ "emr-5.33.1", "emr-6.4.0" ] } }

Una vez que los administradores hayan hecho que las EMR CloudFormation plantillas de Amazon estén disponibles en Studio, los científicos de datos pueden utilizarlas para aprovisionar automáticamente los EMR clústeres de Amazon. La Parameters sección definida en la plantilla se traduce en campos de entrada en el formulario de creación del clúster en Studio o Studio Classic. Para cada parámetro, los científicos de datos pueden introducir un valor personalizado en el cuadro de entrada o seleccionar una de las opciones predefinidas que aparecen en un menú desplegable, que corresponde a las AllowedValues especificadas en la plantilla.

La siguiente ilustración muestra el formulario dinámico ensamblado a partir de una EMR plantilla de CloudFormation Amazon para crear un EMR clúster de Amazon en Studio o Studio Classic.

Ilustración de un formulario dinámico ensamblado a partir de una EMR plantilla de CloudFormation Amazon para crear un EMR clúster de Amazon desde Studio o Studio Classic.

Visite Lanza un EMR clúster de Amazon desde Studio o Studio Classic para obtener información sobre cómo lanzar un clúster desde Studio o Studio Classic con esas EMR plantillas de Amazon.

Paso 4: Configura los permisos para habilitar la publicación y el lanzamiento de EMR clústeres de Amazon desde Studio

Por último, adjunta los IAM permisos necesarios para poder publicar los EMR clústeres de Amazon en ejecución existentes y autoaprovisionar nuevos clústeres desde Studio o Studio Classic.

Los roles a los que debes añadir esos permisos dependen de si Studio o Studio Classic y Amazon EMR están desplegados en la misma cuenta (elige Cuenta única) o en cuentas diferentes (elige Cuenta cruzada).

nota

Actualmente, Studio no admite el acceso a EMR los clústeres de Amazon creados en una AWS cuenta diferente a la cuenta en la que está desplegado Studio. El acceso entre cuentas solo está disponible en Studio Classic.

Para obtener más información sobre el acceso multicuenta mediante roles, consulte Acceso a recursos entre cuentas en IAM.

Si tus EMR clústeres de Amazon y Studio o Studio Classic están desplegados en la misma AWS cuenta, adjunta los siguientes permisos a la función de SageMaker ejecución que accede a tu clúster.

nota

¿Qué función de ejecución deberías tener en cuenta?

La interfaz de usuario de Studio determina sus permisos a partir del rol de ejecución asociado al perfil de usuario que lo lanzó. La interfaz de usuario establece estos permisos en el momento del lanzamiento. Sin embargo, los espacios que se inician JupyterLab o las aplicaciones de Studio Classic pueden tener permisos independientes.

Para un acceso uniforme a las EMR plantillas y clústeres de Amazon en todas las aplicaciones (como la interfaz de usuario de Studio y Studio Classic), concede el mismo subconjunto de permisos a todos los roles a nivel de dominio, perfil de usuario o espacio. JupyterLab Los permisos deberían permitir descubrir y aprovisionar EMR clústeres de Amazon.

  1. Busque la función de ejecución de su dominio, perfil de usuario o espacio. Para obtener información sobre cómo recuperar la función de ejecución, consulteConsiga su función de ejecución.

  2. Abra la consola de IAM en https://console.aws.amazon.com/sagemaker/.

  3. Elija Funciones y, a continuación, busque la función que creó escribiendo el nombre de la función en el campo de búsqueda.

  4. Sigue el enlace hasta tu función.

  5. Selecciona Añadir permisos y, a continuación, Crear política en línea.

  6. En la JSONpestaña, agrega la siguiente JSON política con los permisos:

    • AllowPresignedUrlpermite generar datos prefirmados URLs para acceder a la interfaz de usuario de Spark desde Studio o Studio Classic.

    • AllowClusterDiscoveryy AllowClusterDetailsDiscovery permite publicar y describir EMR los clústeres de Amazon en la cuenta o región de Studio o Studio Classic.

    • AllowEMRTemplateDiscoverypermite buscar EMR plantillas de Amazon en el Service Catalog. Studio y Studio Classic lo utilizan para mostrar las plantillas disponibles.

    • AllowSagemakerProjectManagementpermite crear y eliminar. En SageMaker, el acceso al AWS Service Catalog se gestiona medianteAutomatice MLOps con SageMaker proyectos.

    La IAM política definida en lo proporcionado JSON otorga esos permisos. Reemplazar studio-region y studio-account con los valores reales de su región e ID de AWS cuenta antes de copiar la lista de estados de cuenta a la política interna de su función.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource": [ "arn:aws:elasticmapreduce:studio-region:studio-account:cluster/*" ] }, { "Sid": "AllowClusterDetailsDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstances", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:DescribeSecurityConfiguration" ], "Resource": [ "arn:aws:elasticmapreduce:studio-region:studio-account:cluster/*" ] }, { "Sid": "AllowClusterDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:ListClusters" ], "Resource": "*" }, { "Sid": "AllowEMRTemplateDiscovery", "Effect": "Allow", "Action": [ "servicecatalog:SearchProducts" ], "Resource": "*" }, { "Sid": "AllowSagemakerProjectManagement", "Effect": "Allow", "Action": [ "sagemaker:CreateProject", "sagemaker:DeleteProject" ], "Resource": "arn:aws:sagemaker:studio-region:studio-account:project/*" } ] }
  7. Selecciona Siguiente y, a continuación, proporciona un nombre de política.

  8. Elija Crear política.

Si sus EMR clústeres de Amazon y Studio o Studio Classic se implementan en AWS cuentas independientes, debe configurar los permisos en ambas cuentas.

En la EMR cuenta de Amazon

En la cuenta en la que EMR está desplegado Amazon, también conocida como cuenta de confianza, crea un IAM rol personalizado ASSUMABLE-ROLE con el nombre de la siguiente configuración:

  • Permisos: concede los permisos necesarios para ASSUMABLE-ROLE permitir el acceso a EMR los recursos de Amazon.

  • Relación de confianza: configura la política de confianza ASSUMABLE-ROLE para poder asumir el rol 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 AmazonEMR.

  • Crea una nueva política para el rol.

    1. Abra la consola de IAM en https://console.aws.amazon.com/sagemaker/.

    2. En el menú de la izquierda, selecciona Políticas y, a continuación, Crear política.

    3. En la JSONpestaña, agrega la siguiente JSON política con los permisos:

      • AllowPresignedUrlpermite generar datos prefirmados URLs para acceder a la interfaz de usuario de Spark desde Studio.

      • AllowClusterDiscoveryy AllowClusterDetailsDiscovery permite enumerar y describir EMR los clústeres de Amazon en la cuenta o región de Studio.

      Reemplazar emr-region y emr-account con los valores reales de tu región e ID de AWS cuenta antes de copiarlos JSON a tu política.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource": [ "arn:aws:elasticmapreduce:emr-region:emr-account:cluster/*" ] }, { "Sid": "AllowClusterDetailsDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstances", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:DescribeSecurityConfiguration" ], "Resource": [ "arn:aws:elasticmapreduce:emr-region:emr-account:cluster/*" ] }, { "Sid": "AllowClusterDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:ListClusters" ], "Resource": "*" } ] }
    4. Asigne un nombre a su política y elija Crear política.

  • Cree un IAM rol personalizado con un nombre yASSUMABLE-ROLE, a continuación, adjunte la nueva política al rol.

    1. En la IAM consola, selecciona Funciones en el menú de la izquierda y, a continuación, Crear función.

    2. En Tipo de entidad de confianza, selecciona AWS Cuenta y, a continuación, Siguiente.

    3. Seleccione el permiso que acaba de crear y, a continuación, elija Siguiente.

    4. Asigne un nombre a su función ASSUMABLE-ROLE y, a continuación, pulse el botón Editar situado a la derecha del paso 1: Seleccionar entidades de confianza.

    5. En el tipo de entidad de confianza, elija Política de confianza personalizada y, a continuación, pegue la siguiente relación de confianza. Esto otorga a la cuenta en la que está desplegado Studio (la cuenta de confianza) el permiso para asumir esta función.

      Reemplazar studio-account con su ID de AWS cuenta real. Elija Next (Siguiente).

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::studio-account:root" }, "Action": "sts:AssumeRole" } ] }
    6. Busca y selecciona de nuevo el permiso que acabas de crear y, a continuación, selecciona Siguiente.

    7. Tu política de confianza debería actualizarse con JSON lo último que hayas pegado. Elija Crear rol.

Para obtener más información sobre la creación de un rol en una AWS cuenta, consulta Crear un IAM rol (consola).

En la cuenta de Studio

En la cuenta en la que se despliega Studio o Studio Classic, también conocida como cuenta de confianza, actualiza el rol de SageMaker ejecución para acceder al clúster con los permisos necesarios para acceder a los recursos de la cuenta de confianza.

nota

¿Qué función de ejecución debería tener en cuenta?

La interfaz de usuario de Studio determina sus permisos a partir del rol de ejecución asociado al perfil de usuario que lo lanzó. La interfaz de usuario establece estos permisos en el momento del lanzamiento. Sin embargo, los espacios que se inician JupyterLab o las aplicaciones de Studio Classic pueden tener permisos independientes.

Para un acceso uniforme a las EMR plantillas y clústeres de Amazon en todas las aplicaciones (como la interfaz de usuario de Studio y Studio Classic), concede el mismo subconjunto de permisos a todos los roles a nivel de dominio, perfil de usuario o espacio. JupyterLab Los permisos deberían permitir descubrir y aprovisionar EMR clústeres de Amazon.

  1. Busque la función de ejecución de su dominio, perfil de usuario o espacio. Para obtener información sobre cómo recuperar la función de ejecución, consulteConsiga su función de ejecución.

  2. Abra la consola de IAM en https://console.aws.amazon.com/sagemaker/.

  3. Elija Funciones y, a continuación, busque la función que creó escribiendo el nombre de la función en el campo de búsqueda.

  4. Sigue el enlace hasta tu función.

  5. Selecciona Añadir permisos y, a continuación, Crear política en línea.

  6. En la JSONpestaña, agrega la siguiente JSON política con los permisos:

    • AllowEMRTemplateDiscoverypermite buscar EMR plantillas de Amazon en el Service Catalog. Studio Classic lo usa para mostrar las plantillas disponibles.

    • AllowSagemakerProjectManagementpermite crear y eliminar. En SageMaker, el acceso al AWS Service Catalog se gestiona medianteAutomatice MLOps con SageMaker proyectos.

    La IAM política definida en lo proporcionado JSON otorga esos permisos. Reemplazar studio-region y studio-account con los valores reales de su región e ID de AWS cuenta antes de copiar la lista de estados de cuenta a su política.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowEMRTemplateDiscovery", "Effect": "Allow", "Action": [ "servicecatalog:SearchProducts" ], "Resource": "*" }, { "Sid": "AllowSagemakerProjectManagement", "Effect": "Allow", "Action": [ "sagemaker:CreateProject", "sagemaker:DeleteProject" ], "Resource": "arn:aws:sagemaker:studio-region:studio-account:project/*" } ] }
  7. Selecciona Siguiente y, a continuación, proporciona un nombre de póliza.

  8. Elija Crear política.

  9. Repita el paso para añadir otra política en línea a la función de ejecución de Studio. La política debería permitir la asunción de funciones multicuentas para descubrir recursos en otra cuenta.

    En la página de detalles de la función de ejecución, selecciona Añadir permisos y, a continuación, Crear una política integrada.

  10. En la JSONpestaña, agrega la siguiente JSON política. Actualiza el emr-account con el ID de cuenta de la EMR cuenta de Amazon.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleAssumptionForCrossAccountDiscovery", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": ["arn:aws:iam::emr-account:role/ASSUMABLE-ROLE" ] }] }
  11. Selecciona Siguiente, proporciona un nombre de política y, a continuación, selecciona Crear política.

  12. Para permitir publicar EMR los clústeres de Amazon desplegados en la misma cuenta que Studio, añade una política interna adicional a tu función de ejecución de Studio, tal y como se define en la pestaña Cuenta única deConfigurar listados de EMR clústeres de Amazon.

Aprueba las funciones en el ARN momento del lanzamiento del servidor de Jupyter

Por último, consulte Configuración adicional para el acceso entre cuentas para obtener información sobre cómo asignar la función ARN de ejecución ASSUMABLE-ROLE a su estudio. Lo carga ARN el servidor de Jupyter en el momento del lanzamiento. La función de ejecución utilizada por Studio asume esa función multicuenta para detectar los EMR clústeres de Amazon de la cuenta de confianza y conectarse a ellos.