Configurar plantillas de Amazon EMR en AWS Service Catalog (para administradores) - 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 plantillas de Amazon EMR en AWS Service Catalog (para administradores)

En esta sección se proporciona información sobre cómo los administradores pueden configurar un AWS Service Catalogproducto para que los usuarios puedan autoaprovisionar clústeres de Amazon EMR de forma independiente desde las libretas SageMaker Amazon Studio Classic. Además, los administradores pueden configurar las plantillas de clústeres de Amazon EMR de forma que los usuarios finales puedan personalizar varios aspectos del clúster para adaptarlos a sus requisitos específicos. Por ejemplo, el administrador puede definir una lista de tipos de instancias permitidos entre los que los usuarios pueden elegir al crear el clúster.

En este tema se supone que está familiarizado con la creación de carteras y productos en AWS Service Catalog así como con Amazon EMR y AWS CloudFormation.

nota

Puede consultar las AWS CloudFormation plantillas del repositorio aws-samples/sagemaker-studio-emr GitHub como ejemplos de pilas CloudFormation para implementar funciones de IAM, Amazon VPC, un dominio sandbox de Studio Classic, un perfil de usuario y una plantilla para lanzar un clúster de Amazon EMR. CloudFormation Hay varias opciones disponibles en función del método de autenticación entre Studio Classic y el clúster de Amazon EMR. En estos ejemplos, una CloudFormation plantilla principal transfiere los parámetros de ID de SageMaker VPC, grupo de seguridad e ID de subred a la CloudFormation plantilla de un clúster de Amazon EMR.

Puede acceder a varios ejemplos de plantillas de CloudFormation Amazon EMR en el repositorio anidado sagemaker-studio-emr/cloudformation/emr_servicecatalog_templates y, además, elegir entre una implementación de una sola cuenta o varias cuentas.

Para obtener más información sobre los métodos de autenticación disponibles al conectarse a un clúster de Amazon EMR, consulte Utilice los clústeres de Amazon EMR de las libretas Studio Classic.

Para simplificar la creación de clústeres de Amazon EMR, los administradores pueden registrar la CloudFormation plantilla de un clúster de Amazon EMR como un producto en la cartera de. AWS Service Catalog A continuación, asocian la cartera de Service Catalog con la función de ejecución de Studio Classic para garantizar la disponibilidad de la plantilla en Studio Classic. Además, para asegurarse de que los científicos de datos puedan descubrir esas plantillas, aprovisionar clústeres de Amazon EMR y conectarse a los clústeres de Amazon EMR desde sus cuadernos Studio Classic, los administradores deben establecer los permisos de acceso adecuados.

La siguiente lista proporciona la configuración adicional que los administradores deben aplicar a una CloudFormation pila básica para permitir que Studio Classic acceda a los productos del Service Catalog y aprovisione los clústeres de Amazon EMR. Estos ajustes se deben aplicar en varios niveles:

  • En la cartera de Service Catalog

  • En el producto de Service Catalog

  • En la plantilla EMR de CloudFormation Amazon declarada como producto de Service Catalog

Por último, los administradores deben asignar los permisos necesarios tanto a la función de ejecución de Studio Classic que accede a los clústeres como a la cuenta en la que se implementa Amazon EMR, en función de si Studio Classic y Amazon EMR están en la misma cuenta o en cuentas diferentes. AWS

  • Requisitos previos: Requisitos de red y autenticación

    Como requisito previo, asegúrese de haber revisado los requisitos de red y seguridad y de haber creado una CloudFormation pila de referencia compatible con el método de autenticación de su elección. Configurar redes (para administradores) Puede encontrar ejemplos de CloudFormation plantillas en aws-samples/sagemaker-studio-emr.

  • En su cartera de Service Catalog:

    Añada la siguiente sección a la CloudFormation plantilla de su cartera (consulte el ejemplo en formato YAML) para asociar su cartera a la función de ejecución de Studio Classic que accede a su clúster.

    SageMakerStudioEMRProductPortfolioPrincipalAssociation: Type: AWS::ServiceCatalog::PortfolioPrincipalAssociation Properties: PrincipalARN: SageMakerExecutionRole.Arn PortfolioId: SageMakerStudioEMRProductPortfolio ID PrincipalType: IAM
  • En su producto de Service Catalog:

    Añada la siguiente clave de etiqueta "sagemaker:studio-visibility:emr" y establézcala en el valor "true" (aquí en YAML) del producto Service Catalog que hace referencia al recurso de plantilla de Amazon EMR. Esto garantiza la visibilidad de la plantilla en Studio Classic.

    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-ml-blog.s3.amazonaws.com/artifacts/astra-m4-sagemaker/end-to-end/CFN-EMR-NoStudioNoAuthTemplate-v3.yaml Tags: - Key: "sagemaker:studio-visibility:emr" Value: "true"
  • En la CloudFormation plantilla del clúster de Amazon EMR de su producto de Service Catalog:

    Añada los siguientes parámetros de pila obligatorios como marcador de posición. Esta sección se completa con el nombre y el identificador del proyecto de Studio Classic que utiliza el usuario al aprovisionar un clúster desde Studio Classic.

    SageMakerProjectName: Type: String Description: Name of the project SageMakerProjectId: Type: String Description: Service generated Id of the project.

    Los administradores pueden especificar Default e AllowedValues incluir opciones en la sección de parámetros de una plantilla, lo que permite a los usuarios introducir o seleccionar valores personalizados al crear un clúster. El siguiente ejemplo ilustra los parámetros de entrada adicionales que los administradores pueden establecer al crear una plantilla de Amazon EMR.

    "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" ] } }
  • Por último, adjunte las políticas de IAM necesarias para permitir la visibilidad de las plantillas de CloudFormation Amazon EMR y el autoaprovisionamiento de los clústeres de Amazon EMR desde las libretas Studio Classic. La función a la que debe añadir esas políticas depende de si Studio Classic y Amazon EMR se implementan en la misma cuenta (cuenta única) o en cuentas diferentes (cuentas cruzadas).

    • Si su clúster de Amazon EMR está desplegado en la misma AWS cuenta que la cuenta Studio Classic, consulte la pestaña Cuenta única.

    • Si su clúster de Amazon EMR está desplegado en una AWS cuenta diferente a la cuenta de Studio Classic, consulte la pestaña Cuentas cruzadas.

    Para obtener más información sobre el acceso entre cuentas mediante roles, consulte Acceso a recursos entre cuentas en IAM o Lógica de evaluación de políticas entre cuentas.

    Single account

    Adjunte los siguientes permisos a la función de ejecución de Studio Classic para acceder a su clúster.

    En la siguiente lista se proporciona un desglose de los permisos necesarios.

    • AllowEMRTemplateDiscovery permite la detección de plantillas de Amazon EMR.

    • AllowSagemakerProjectManagementpermite la creación de SageMaker proyectos. En Studio Classic, el acceso a los AWS Service Catalog se concede a través de Projects.

    • AllowClusterDetailsDiscovery y AllowClusterDiscovery permiten la detección y la conexión a los clústeres de Amazon EMR.

    • AllowPresignedUrl permite crear URL prefirmadas para acceder a la interfaz de usuario de Spark.

    El siguiente es un JSON completo que incluye estos permisos.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "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/*" }, ] }
    Cross accounts

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

    • En la cuenta de confianza (la cuenta en la que se implementa Amazon EMR), cree un rol de IAM personalizado (denominado ASSUMABLE-ROLE en esta página) con los siguientes permisos y relación de confianza.

      Para obtener información sobre cómo crear unacuenta de AWS , consulte Creación de un rol de IAM (consola).

      1. Una política de IAM con los permisos siguientes:

        • AllowClusterDetailsDiscovery y AllowClusterDiscovery permiten la detección y la conexión a los clústeres de Amazon EMR.

        • AllowPresignedUrl para permitir la creación de URL prefirmadas para acceder a la interfaz de usuario de Spark.

        El siguiente es un JSON completo que incluye estos permisos.

        { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "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": "*" } ] }
      2. Para conceder a la cuenta de confianza (la cuenta en la que se implementa Studio Classic) el permiso para asumir un rol en la cuenta de confianza, incluya la siguiente relación de confianza.

        { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::studio-account:root" }, "Action": "sts:AssumeRole" } ] }
    • En la cuenta de confianza (la cuenta en la que se implementa Studio Classic), añada los siguientes permisos y la relación de confianza a la función de ejecución de Studio Classic.

      1. Una política de IAM con los permisos siguientes:

        • AllowSagemakerProjectManagementpara permitir la creación de SageMaker proyectos. En Studio Classic, el acceso a los AWS Service Catalog se concede a través de Projects.

        • AllowEMRTemplateDiscovery para permitir la detección de plantillas de Amazon EMR.

        El siguiente es un JSON completo que incluye estos permisos.

        { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSagemakerProjectManagement", "Effect": "Allow", "Action": [ "sagemaker:CreateProject", "sagemaker:DeleteProject" ], "Resource": "arn:aws:sagemaker:::project/*" }, { "Sid": "AllowEMRTemplateDiscovery", "Effect": "Allow", "Action": [ "servicecatalog:SearchProducts" ], "Resource": "*" } ] }
      2. Para conceder a la función de ejecución de Studio Classic el permiso para asumir ASSUMABLE-ROLE la cuenta de confianza, incluya la siguiente relación de confianza.

        { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleAssumptionForCrossAccountDiscovery", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": ["arn:aws:iam::emr-account:role/ASSUMABLE-ROLE" ] }] }
    • Por último, consulte Configuración adicional para casos de uso entre cuentas (para administradores) para obtener información sobre cómo proporcionar el ARN del ASSUMABLE-ROLE rol de ejecución de Studio Classic. El servidor Jupyter de Studio Classic carga el ARN en el momento del lanzamiento. La función de ejecución de Studio Classic asume la función multicuenta para detectar los clústeres de Amazon EMR de la cuenta de confianza y conectarse a ellos.

Una vez que las CloudFormation plantillas estén disponibles en Amazon SageMaker Studio Classic, los científicos de datos podrán utilizarlas para aprovisionar automáticamente los clústeres de Amazon EMR. Cada elemento "Parameters" especificado en la plantilla se convierte en un cuadro de entrada en el formulario de creación de clústeres de Studio Classic, y lo correspondiente "AllowedValues" aparece en un menú desplegable.

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

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

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