Configurer les EMR CloudFormation modèles Amazon dans le Service Catalog - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configurer les EMR CloudFormation modèles Amazon dans le Service Catalog

Cette rubrique part du principe que les administrateurs connaissent bien AWS CloudFormationles portefeuilles et les produits d'Amazon AWS Service Catalog, ainsi que ceux d'Amazon EMR.

Pour simplifier la création de EMR clusters Amazon à partir de Studio, les administrateurs peuvent enregistrer un EMR CloudFormation modèle Amazon en tant que produit dans un AWS Service Catalogportefeuille. Pour mettre le modèle à la disposition des data scientists, ils doivent associer le portefeuille au rôle SageMaker d'exécution utilisé dans Studio ou Studio Classic. Enfin, pour permettre aux utilisateurs de découvrir des modèles, de provisionner des clusters et de se connecter aux EMR clusters Amazon depuis Studio ou Studio Classic, les administrateurs doivent définir les autorisations d'accès appropriées.

Les EMR AWS CloudFormation modèles Amazon peuvent permettre aux utilisateurs finaux de personnaliser divers aspects du cluster. Par exemple, les administrateurs peuvent définir une liste approuvée de types d'instances parmi lesquels les utilisateurs peuvent choisir lors de la création d'un cluster.

Les instructions suivantes utilisent des end-to-end CloudFormation piles pour configurer un domaine Studio ou Studio Classic, un profil utilisateur, un portefeuille Service Catalog et remplir un modèle de EMR lancement Amazon. Les étapes suivantes mettent en évidence les paramètres spécifiques que les administrateurs doivent appliquer dans leur end-to-end stack pour permettre à Studio ou Studio Classic d'accéder aux produits Service Catalog et de provisionner des EMR clusters Amazon.

Note

Le GitHub référentiel aws-samples/ sagemaker-studio-emr contient des exemples de end-to-end CloudFormation piles qui déploient les IAM rôles, le réseau, le SageMaker domaine, le profil utilisateur, le portefeuille Service Catalog nécessaires et ajoutent un modèle de lancement Amazon. EMR CloudFormation Les modèles proposent différentes options d'authentification entre Studio ou Studio Classic et le EMR cluster Amazon. Dans ces exemples de modèles, la CloudFormation pile parent transmet SageMaker VPC les paramètres du groupe de sécurité et du sous-réseau au modèle de EMR cluster Amazon.

Le référentiel sagemaker-studio-emr/cloudformation/emr_servicecatalog_templates contient plusieurs exemples de modèles de lancement EMR CloudFormation Amazon, y compris des options pour les déploiements à compte unique ou entre comptes.

Reportez-vous à Connectez-vous à un EMR cluster Amazon depuis SageMaker Studio ou Studio Classic pour plus de détails sur les méthodes d'authentification que vous pouvez utiliser pour vous connecter à un EMR cluster Amazon.

Pour permettre aux data scientists de découvrir les EMR CloudFormation modèles Amazon et de provisionner des clusters depuis Studio ou Studio Classic, procédez comme suit.

Étape 0 : Vérifiez votre réseau et préparez votre CloudFormation stack

Avant de commencer :

  • Assurez-vous d'avoir pris connaissance des exigences en matière de réseau et de sécurité dansConfiguration de la mise en réseau.

  • Vous devez disposer d'une end-to-end CloudFormation pile existante prenant en charge la méthode d'authentification de votre choix. Vous trouverez des exemples de tels CloudFormation modèles dans le dépôt sagemaker-studio-emr GitHub aws-samples/. Les étapes suivantes mettent en évidence les configurations spécifiques de votre end-to-end stack pour permettre l'utilisation de EMR modèles Amazon dans Studio ou Studio Classic.

Étape 1 : associez votre portefeuille Service Catalog à SageMaker

Dans votre portefeuille Service Catalog, associez votre ID de portefeuille au rôle SageMaker d'exécution accédant à votre cluster.

Pour ce faire, ajoutez la section suivante (ici au YAML format) à votre pile. Cela donne au rôle SageMaker d'exécution l'accès au portefeuille Service Catalog spécifié contenant des produits tels que des EMR modèles Amazon. Il permet aux rôles assumés par SageMaker de lancer ces produits.

Remplacez SageMakerExecutionRole.Arn and SageMakerStudioEMRProductPortfolio.ID avec leurs valeurs réelles.

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

Quel rôle d'exécution devriez-vous envisager ?

L'interface utilisateur de Studio détermine ses autorisations à partir du rôle d'exécution associé au profil utilisateur qui l'a lancé. L'interface utilisateur définit ces autorisations au moment du lancement. Toutefois, les espaces qui lancent JupyterLab les applications Studio Classic peuvent avoir des autorisations distinctes.

Pour un accès cohérent aux EMR modèles et aux clusters Amazon dans toutes les applications (telles que l'interface utilisateur de Studio et Studio Classic), accordez le même sous-ensemble d'autorisations à tous les rôles au niveau du domaine, du profil utilisateur ou de l'espace. JupyterLab Les autorisations doivent permettre de découvrir et de provisionner des EMR clusters Amazon.

Pour plus de détails sur l'ensemble d'IAMautorisations requis, consultez la section sur les autorisations.

Étape 2 : référencer un EMR modèle Amazon dans un produit Service Catalog

Dans un produit Service Catalog de votre portefeuille, référencez une ressource de EMR modèle Amazon et assurez-vous de sa visibilité dans Studio ou Studio Classic.

Pour ce faire, faites référence à la ressource du EMR modèle Amazon dans la définition du produit Service Catalog, puis ajoutez le "sagemaker:studio-visibility:emr" jeu de clés de balise suivant à la valeur "true" (voir l'exemple au YAML format).

Dans la définition du produit Service Catalog, le AWS CloudFormation modèle du cluster est référencé viaURL. La balise supplémentaire définie sur true garantit la visibilité des EMR modèles Amazon dans Studio ou Studio Classic.

Note

Le EMR modèle Amazon référencé par le modèle fourni URL dans l'exemple n'impose aucune exigence d'authentification lors de son lancement. Cette option est destinée à des fins de démonstration et d'apprentissage. Cela n'est pas recommandé dans un environnement de production.

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"

Étape 3 : paramétrer le modèle Amazon EMR CloudFormation

Le CloudFormation modèle utilisé pour définir le EMR cluster Amazon dans le produit Service Catalog permet aux administrateurs de spécifier des paramètres configurables. Les administrateurs peuvent définir Default des valeurs et des AllowedValues plages pour ces paramètres dans la Parameters section du modèle. Au cours du processus de lancement du cluster, les data scientists peuvent fournir des entrées personnalisées ou effectuer des sélections parmi ces options prédéfinies pour personnaliser certains aspects de leur EMR cluster Amazon.

L'exemple suivant illustre les paramètres d'entrée supplémentaires que les administrateurs peuvent définir lors de la création d'un EMR modèle 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" ] } }

Une fois que les administrateurs ont mis les EMR CloudFormation modèles Amazon à disposition dans Studio, les data scientists peuvent les utiliser pour auto-approvisionner des EMR clusters Amazon. La Parameters section définie dans le modèle se traduit par des champs de saisie sur le formulaire de création de cluster dans Studio ou Studio Classic. Pour chaque paramètre, les data scientists peuvent soit saisir une valeur personnalisée dans la zone de saisie, soit sélectionner l'une des options prédéfinies répertoriées dans un menu déroulant, qui correspond à celle AllowedValues spécifiée dans le modèle.

L'illustration suivante montre le formulaire dynamique assemblé à partir d'un EMR modèle CloudFormation Amazon pour créer un EMR cluster Amazon dans Studio ou Studio Classic.

Illustration d'un formulaire dynamique assemblé à partir d'un EMR modèle CloudFormation Amazon pour créer un EMR cluster Amazon à partir de Studio ou Studio Classic.

Consultez Lancer un EMR cluster Amazon depuis Studio ou Studio Classic cette page pour savoir comment lancer un cluster depuis Studio ou Studio Classic à l'aide de ces EMR modèles Amazon.

Étape 4 : configurer les autorisations pour permettre de répertorier et de lancer des EMR clusters Amazon depuis Studio

Enfin, attachez les IAM autorisations requises pour permettre de répertorier les EMR clusters Amazon en cours d'exécution existants et d'auto-provisionner de nouveaux clusters à partir de Studio ou Studio Classic.

Le ou les rôles auxquels vous devez ajouter ces autorisations varient selon que Studio ou Studio Classic et Amazon EMR sont déployés sur le même compte (choisissez Compte unique) ou sur des comptes différents (choisissez Compte croisé).

Note

Studio ne prend actuellement pas en charge l'accès aux EMR clusters Amazon créés dans un AWS compte différent de celui sur lequel Studio est déployé. L'accès entre comptes n'est disponible que dans Studio Classic.

Pour plus d'informations sur l'accès entre comptes à l'aide de rôles, voir Accès aux ressources entre comptes dans IAM.

Si vos EMR clusters Amazon et Studio ou Studio Classic sont déployés dans le même AWS compte, associez les autorisations suivantes au rôle SageMaker d'exécution accédant à votre cluster.

Note

Quel rôle d'exécution devriez-vous envisager ?

L'interface utilisateur de Studio détermine ses autorisations à partir du rôle d'exécution associé au profil utilisateur qui l'a lancé. L'interface utilisateur définit ces autorisations au moment du lancement. Toutefois, les espaces qui lancent JupyterLab les applications Studio Classic peuvent avoir des autorisations distinctes.

Pour un accès cohérent aux EMR modèles et aux clusters Amazon dans toutes les applications (telles que l'interface utilisateur de Studio et Studio Classic), accordez le même sous-ensemble d'autorisations à tous les rôles au niveau du domaine, du profil utilisateur ou de l'espace. JupyterLab Les autorisations doivent permettre de découvrir et de provisionner des EMR clusters Amazon.

  1. Trouvez le rôle d'exécution de votre domaine, de votre profil utilisateur ou de votre espace. Pour plus d'informations sur la façon de récupérer le rôle d'exécution, consultezObtenez votre rôle d'exécution.

  2. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/sagemaker/.

  3. Choisissez Rôles, puis recherchez le rôle que vous avez créé en saisissant le nom de votre rôle dans le champ de recherche.

  4. Suivez le lien vers votre rôle.

  5. Choisissez Ajouter des autorisations, puis Créer une politique en ligne.

  6. Dans l'JSONonglet, ajoutez la JSON politique suivante avec les autorisations :

    • AllowPresignedUrlpermet de générer des documents pré-signés URLs pour accéder à l'interface utilisateur de Spark depuis Studio ou Studio Classic.

    • AllowClusterDiscoveryet AllowClusterDetailsDiscovery autorisez Studio ou Studio Classic à répertorier et à décrire les EMR clusters Amazon dans le compte/la région.

    • AllowEMRTemplateDiscoverypermet de rechercher des EMR modèles Amazon dans le Service Catalog. Studio et Studio Classic l'utilisent pour afficher les modèles disponibles.

    • AllowSagemakerProjectManagementpermet de créer et de supprimer. Dans SageMaker, l'accès au AWS Service Catalog est géré viaAutomatisez MLOps avec SageMaker des projets.

    La IAM politique définie dans le document fourni JSON accorde ces autorisations. Remplacez studio-region and studio-account avec les valeurs réelles de votre région et de votre numéro de AWS compte avant de copier la liste des relevés dans la politique intégrée de votre rôle.

    { "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. Choisissez Next, puis saisissez le nom de la politique.

  8. Choisissez Create Policy (Créer une politique).

Si vos EMR clusters Amazon et Studio ou Studio Classic sont déployés dans des AWS comptes distincts, vous configurez les autorisations sur les deux comptes.

Sur le EMR compte Amazon

Sur le compte sur lequel Amazon EMR est déployé, également appelé compte de confiance, créez un IAM rôle personnalisé nommé ASSUMABLE-ROLE avec la configuration suivante :

  • Autorisations : accordez les autorisations nécessaires ASSUMABLE-ROLE pour autoriser l'accès aux EMR ressources Amazon.

  • Relation de confiance : configurez la politique de confiance ASSUMABLE-ROLE pour permettre d'assumer le rôle depuis le compte Studio qui nécessite un accès.

En assumant ce rôle, Studio ou Studio Classic peut obtenir un accès temporaire aux autorisations dont il a besoin sur AmazonEMR.

  • Créez une nouvelle politique pour le rôle.

    1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/sagemaker/.

    2. Dans le menu de gauche, choisissez Politiques, puis Créer une politique.

    3. Dans l'JSONonglet, ajoutez la JSON politique suivante avec les autorisations :

      • AllowPresignedUrlpermet de générer des documents pré-signés URLs pour accéder à l'interface utilisateur de Spark depuis Studio.

      • AllowClusterDiscoveryet AllowClusterDetailsDiscovery permet de répertorier et de décrire les EMR clusters Amazon dans le compte/la région à partir de Studio.

      Remplacez emr-region and emr-account avec les valeurs réelles de votre région et de votre numéro de AWS compte avant de les JSON copier dans votre politique.

      { "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. Donnez un nom à votre politique et choisissez Créer une politique.

  • Créez un IAM rôle personnalisé nomméASSUMABLE-ROLE, puis associez votre nouvelle politique au rôle.

    1. Dans la IAM console, choisissez Rôles dans le menu de gauche, puis Créer un rôle.

    2. Pour le type d'entité de confiance, choisissez le AWS compte, puis Next.

    3. Sélectionnez l'autorisation que vous venez de créer, puis cliquez sur Suivant.

    4. Donnez un nom à votre rôle, ASSUMABLE-ROLE puis cliquez sur le bouton Modifier à droite de l'étape 1 : Sélectionnez les entités de confiance.

    5. Pour le type d'entité de confiance, choisissez Politique de confiance personnalisée, puis collez la relation de confiance suivante. Cela donne au compte sur lequel Studio est déployé (le compte de confiance) l'autorisation d'assumer ce rôle.

      Remplacez studio-account avec son identifiant de AWS compte réel. Choisissez Suivant.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::studio-account:root" }, "Action": "sts:AssumeRole" } ] }
    6. Recherchez et sélectionnez à nouveau l'autorisation que vous venez de créer, puis cliquez sur Suivant.

    7. Votre politique de confiance doit être mise à jour avec la dernière mise à jour JSON que vous avez collée. Sélectionnez Créer un rôle.

Pour plus d'informations sur la création d'un rôle sur un AWS compte, consultez la section Création d'un IAM rôle (console).

Sur le compte Studio

Sur le compte sur lequel Studio ou Studio Classic est déployé, également appelé compte de confiance, mettez à jour le rôle SageMaker d'exécution accédant à votre cluster avec les autorisations requises pour accéder aux ressources du compte de confiance.

Note

Quel rôle d'exécution devriez-vous envisager ?

L'interface utilisateur de Studio détermine ses autorisations à partir du rôle d'exécution associé au profil utilisateur qui l'a lancé. L'interface utilisateur définit ces autorisations au moment du lancement. Toutefois, les espaces qui lancent JupyterLab les applications Studio Classic peuvent avoir des autorisations distinctes.

Pour un accès cohérent aux EMR modèles et aux clusters Amazon dans toutes les applications (telles que l'interface utilisateur de Studio et Studio Classic), accordez le même sous-ensemble d'autorisations à tous les rôles au niveau du domaine, du profil utilisateur ou de l'espace. JupyterLab Les autorisations doivent permettre de découvrir et de provisionner des EMR clusters Amazon.

  1. Trouvez le rôle d'exécution de votre domaine, de votre profil utilisateur ou de votre espace. Pour plus d'informations sur la façon de récupérer le rôle d'exécution, consultezObtenez votre rôle d'exécution.

  2. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/sagemaker/.

  3. Choisissez Rôles, puis recherchez le rôle que vous avez créé en saisissant le nom de votre rôle dans le champ de recherche.

  4. Suivez le lien vers votre rôle.

  5. Choisissez Ajouter des autorisations, puis Créer une politique en ligne.

  6. Dans l'JSONonglet, ajoutez la JSON politique suivante avec les autorisations :

    • AllowEMRTemplateDiscoverypermet de rechercher des EMR modèles Amazon dans le Service Catalog. Studio Classic l'utilise pour afficher les modèles disponibles.

    • AllowSagemakerProjectManagementpermet de créer et de supprimer. Dans SageMaker, l'accès au AWS Service Catalog est géré viaAutomatisez MLOps avec SageMaker des projets.

    La IAM politique définie dans le document fourni JSON accorde ces autorisations. Remplacez studio-region and studio-account avec les valeurs réelles de votre région et de votre numéro de AWS compte avant de copier la liste des relevés dans votre police d'assurance.

    { "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. Choisissez Next, puis saisissez le nom de la politique.

  8. Choisissez Create Policy (Créer une politique).

  9. Répétez l'étape pour ajouter une autre politique intégrée au rôle d'exécution de Studio. La politique doit permettre l'attribution de rôles entre comptes pour la découverte de ressources dans un autre compte.

    Sur la page détaillée de votre rôle d'exécution, choisissez Ajouter des autorisations, puis Créer une politique intégrée.

  10. Dans l'JSONonglet, ajoutez la JSON politique suivante. Mettez à jour le emr-account avec l'identifiant du EMR compte Amazon.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleAssumptionForCrossAccountDiscovery", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": ["arn:aws:iam::emr-account:role/ASSUMABLE-ROLE" ] }] }
  11. Choisissez Next, indiquez un nom de stratégie, puis choisissez Create policy.

  12. Pour permettre de répertorier les EMR clusters Amazon déployés sur le même compte que Studio, ajoutez une politique en ligne supplémentaire à votre rôle d'exécution Studio, tel que défini dans l'onglet Compte unique deConfigurer la liste des EMR clusters Amazon.

Transmettez les rôles ARN lors du lancement du serveur Jupyter

Enfin, consultez Configuration supplémentaire pour l'accès entre comptes pour savoir comment attribuer le rôle ARN d'exécution de ASSUMABLE-ROLE à votre Studio. Le ARN est chargé par le serveur Jupyter au lancement. Le rôle d'exécution utilisé par Studio assume ce rôle entre comptes pour découvrir et se connecter aux EMR clusters Amazon dans le compte de confiance.