Configuration des modèles CloudFormation Amazon EMR dans Service Catalog
Cette rubrique suppose que les administrateurs sont familiers d’CloudFormation, des portefeuilles et des produits dans AWS Service Catalog, ainsi que d’Amazon EMR.
Pour simplifier la création de clusters Amazon EMR depuis Studio, les administrateurs peuvent enregistrer un modèle CloudFormation Amazon EMR en tant que produit dans un portefeuille AWS Service Catalog. Pour mettre ce modèle à la disposition des scientifiques des données, les administrateurs doivent associer le portefeuille au rôle d’exécution SageMaker AI 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 clusters Amazon EMR depuis Studio ou Studio Classic, les administrateurs doivent définir les autorisations d’accès appropriées.
Les modèles CloudFormation Amazon EMR peuvent autoriser les utilisateurs finaux à personnaliser différents 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 piles CloudFormation
Note
Le référentiel GitHub aws-samples/sagemaker-studio-emr
Le référentiel sagemaker-studio-emr/cloudformation/emr_servicecatalog_templates
Consultez Connexion à un cluster Amazon EMR depuis SageMaker Studio ou Studio Classic pour plus d’informations sur les méthodes d’authentification que vous pouvez utiliser pour vous connecter à un cluster Amazon EMR.
Pour permettre aux scientifiques des données de découvrir les modèles CloudFormation Amazon EMR et de provisionner des clusters depuis Studio ou Studio Classic, procédez comme suit.
Étape 0 : Vérification de votre mise en réseau et préparation de votre pile CloudFormation
Avant de commencer :
-
Assurez-vous d’avoir passé en revue les exigences de mise en réseau et de sécurité dans Configuration de l’accès réseau pour votre cluster Amazon EMR.
-
Vous devez disposer d’une pile CloudFormation de bout en bout qui prend en charge la méthode d’authentification de votre choix. Vous trouverez des exemples de tels modèles CloudFormation dans le référentiel GitHub aws-samples/sagemaker-studio-emr
. Les étapes suivantes mettent en évidence les configurations spécifiques de votre pile de bout en bout pour permettre l’utilisation de modèles Amazon EMR dans Studio ou Studio Classic.
Étape 1 : Association de votre portefeuille Service Catalog à SageMaker AI
Dans votre portefeuille Service Catalog, associez l’identifiant de votre portefeuille au rôle d’exécution SageMaker AI accédant à votre cluster.
Pour ce faire, ajoutez la section suivante (ici au format YAML) à votre pile. Cela permet au rôle d’exécution SageMaker AI d’accéder au portefeuille Service Catalog spécifié contenant des produits tels que les modèles Amazon EMR. Il permet aux rôles assumés par SageMaker AI de lancer ces produits.
Remplacez SageMakerExecutionRole.Arn et SageMakerStudioEMRProductPortfolio.ID par leurs valeurs réelles.
SageMakerStudioEMRProductPortfolioPrincipalAssociation: Type: AWS::ServiceCatalog::PortfolioPrincipalAssociation Properties: PrincipalARN:SageMakerExecutionRole.ArnPortfolioId:SageMakerStudioEMRProductPortfolio.IDPrincipalType: IAM
Pour plus de détails sur l’ensemble d’autorisations IAM requis, consultez la section sur les autorisations.
Étape 2 : Référencement d’un modèle Amazon EMR dans un produit Service Catalog
Dans un produit Service Catalog de votre portefeuille, référencez une ressource de modèle Amazon EMR et garantissez sa visibilité dans Studio ou Studio Classic.
Pour cela, référencez la ressource du modèle Amazon EMR dans la définition du produit Service Catalog, puis ajoutez la clé de balise "sagemaker:studio-visibility:emr" suivante, définie sur la valeur "true" (voir l’exemple au format YAML).
Dans la définition du produit Service Catalog, le modèle CloudFormation du cluster est référencé via une URL. La balise supplémentaire définie sur true garantit la visibilité des modèles Amazon EMR dans Studio ou Studio Classic.
Note
Le modèle Amazon EMR référencé par l’URL fournie 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. Elle n’est pas recommandée 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.yamlTags: - Key: "sagemaker:studio-visibility:emr" Value: "true"
Étape 3 : Paramétrage du modèle CloudFormation Amazon EMR
Le modèle CloudFormation utilisé pour définir le cluster Amazon EMR dans le produit Service Catalog permet aux administrateurs de spécifier des paramètres configurables. Les administrateurs peuvent définir des valeurs Default et des plages AllowedValues pour ces paramètres dans la section Parameters du modèle. Au cours du processus de lancement du cluster, les scientifiques des données peuvent fournir des entrées personnalisées ou effectuer des sélections parmi ces options prédéfinies pour personnaliser certains aspects de leur cluster Amazon EMR.
L’exemple suivant illustre les paramètres de saisie supplémentaires que les administrateurs peuvent définir lors de la création d’un modèle 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" ] } }
Une fois que les administrateurs ont mis à disposition les modèles CloudFormation Amazon EMR dans Studio, les scientifiques des données peuvent les utiliser pour auto-provisionner des clusters Amazon EMR. La section Parameters 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 scientifiques des données peuvent entrer une valeur personnalisée dans la zone de saisie ou sélectionner l’une des options prédéfinies répertoriées dans un menu déroulant, qui correspond aux valeurs AllowedValues spécifiées dans le modèle.
L’illustration suivante montre le formulaire dynamique assemblé à partir d’un modèle Amazon EMR CloudFormation pour créer un cluster Amazon EMR dans Studio ou Studio Classic.
Consultez Lancement d’un cluster Amazon EMR depuis Studio ou Studio Classic pour découvrir comment lancer un cluster depuis Studio ou Studio Classic à l’aide de ces modèles Amazon EMR.
Étape 4 : Configuration des autorisations pour activer l’établissement d’une liste et le lancement des clusters Amazon EMR à partir de Studio
Enfin, attachez les autorisations IAM requises pour permettre de répertorier les clusters Amazon EMR en cours d’exécution existants et d’auto-provisionner de nouveaux clusters à partir de Studio ou de Studio Classic.
Le ou les rôles auxquels vous devez ajouter ces autorisations dépendent du fait que Studio ou Studio Classic et Amazon EMR sont déployés dans le même compte (choisissez Compte unique) ou dans des comptes différents (choisissez Compte croisé).
Important
Vous pouvez uniquement découvrir les clusters Amazon EMR et vous y connecter pour les applications JupyterLab et Studio Classic lancées depuis des espaces privés. Assurez-vous que les clusters Amazon EMR sont situés dans la même région AWS que votre environnement Studio.
Si vos clusters Amazon EMR et Studio ou Studio Classic sont déployés dans le même compte AWS, attachez les autorisations suivantes au rôle d’exécution SageMaker AI qui accède à votre cluster.
-
Étape 1 : extrayez l’ARN du rôle d’exécution SageMaker AI utilisé par votre espace privé.
Pour obtenir des informations sur les espaces et les rôles d’exécution dans SageMaker AI, consultez Comprendre les autorisations d’espace de domaine et les rôles d’exécution.
Pour plus d’informations sur la façon de récupérer l’ARN du rôle d’exécution de SageMaker AI, consultez Obtention de votre rôle d’exécution.
-
Étape 2 : attachez les autorisations suivantes au rôle d’exécution SageMaker AI accédant à vos clusters Amazon EMR.
-
Accédez à la Console IAM
. -
Choisissez Rôles, puis recherchez votre rôle d’exécution par son nom dans le champ Rechercher. Le nom du rôle est la dernière partie de l’ARN, après la dernière barre oblique (/).
-
Suivez le lien correspondant à votre rôle.
-
Choisissez Ajouter des autorisations, puis Créer une politique en ligne.
-
Dans l’onglet JSON, ajoutez les autorisations Amazon EMR autorisant l’accès et les opérations Amazon EMR. Pour plus de détails sur le document de politique, consultez Politiques Amazon EMR de liste dans Politiques de référence. Remplacez
regionetaccountIDpar leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle. -
Choisissez Suivant, puis fournissez un nom de politique.
-
Choisissez Créer une politique.
-
Répétez l’étape Créer une politique en ligne pour ajouter une autre politique accordant au rôle d’exécution les autorisations nécessaires pour provisionner de nouveaux clusters Amazon EMR à l’aide de modèles CloudFormation. Pour plus de détails sur le document de politique, consultez Politiques de création de clusters Amazon EMR dans Politiques de référence. Remplacez
regionetaccountIDpar leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.
-
Note
Les utilisateurs de la connectivité de contrôle d’accès en fonction du rôle (RBAC) aux clusters Amazon EMR doivent également se référer à Configuration de l’authentification du rôle d’exécution lorsque votre cluster Amazon EMR et Studio sont sur le même compte.
Avant de commencer, extrayez l’ARN du rôle d’exécution SageMaker AI utilisé par votre espace privé.
Pour obtenir des informations sur les espaces et les rôles d’exécution dans SageMaker AI, consultez Comprendre les autorisations d’espace de domaine et les rôles d’exécution.
Pour plus d’informations sur la façon de récupérer l’ARN du rôle d’exécution de SageMaker AI, consultez Obtention de votre rôle d’exécution.
Si vos clusters Amazon EMR et Studio ou Studio sont déployés dans des comptes AWS différents, vous configurez les autorisations sur les deux comptes.
Note
Les utilisateurs de la connectivité de contrôle d’accès en fonction du rôle (RBAC) aux clusters Amazon EMR doivent également se référer à Configuration de l’authentification du rôle d’exécution lorsque votre cluster et Studio sont dans des comptes différents.
Sur le compte des clusters Amazon EMR
Procédez comme suit pour créer les rôles et les politiques nécessaires sur le compte où Amazon EMR est déployé, également appelé compte d’approbation :
-
Étape 1 : extrayez l’ARN du rôle de service de votre cluster Amazon EMR.
Pour découvrir comment trouver l’ARN du rôle de service d’un cluster, consultez Configuration des rôles de service IAM pour les autorisations Amazon EMR aux services et ressources AWS.
-
Étape 2 : créez un rôle IAM personnalisé nommé
AssumableRoleavec la configuration suivante :-
Autorisations : accordez les autorisations nécessaires à
AssumableRolepour autoriser l’accès aux ressources Amazon EMR. Ce rôle est également appelé rôle d’accès dans les scénarios impliquant un accès intercompte. -
Relation de confiance : configurez la politique d’approbation pour
AssumableRoleafin d’autoriser l’endossement du rôle d’exécution (SageMakerExecutionRoledans le diagramme entre comptes) 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 dans Amazon EMR.
Pour obtenir des instructions détaillées sur la façon de créer un nouveau rôle
AssumableRoledans votre compte AWS Amazon EMR, procédez comme suit :-
Accédez à la Console IAM
. -
Dans le volet de navigation de gauche, choisissez Politique, puis Créer une politique.
-
Dans l’onglet JSON, ajoutez les autorisations Amazon EMR autorisant l’accès et les opérations Amazon EMR. Pour plus de détails sur le document de politique, consultez Politiques Amazon EMR de liste dans Politiques de référence. Remplacez
regionetaccountIDpar leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle. -
Choisissez Suivant, puis fournissez un nom de politique.
-
Choisissez Créer une politique.
-
Dans le volet de navigation de gauche, choisissez Rôles, puis Créer un rôle.
-
Sur la page Créer un rôle, choisissez Politique d’approbation personnalisée comme entité de confiance.
-
Collez le document JSON suivant dans la section Politique d’approbation personnalisée, puis choisissez Suivant.
-
Dans la page Ajouter des autorisations, ajoutez l’autorisation que vous venez de créer, puis choisissez Suivant.
-
Sur la page Vérifier, entrez un nom pour le rôle, tel que
AssumableRole, et une description facultative. -
Passez en revue les détails du rôle, puis choisissez Créer un rôle.
Pour plus d’informations sur la création d’un rôle sur un compte AWS, consultez Création d’un rôle IAM (console).
-
Sur le compte Studio
Sur le compte où Studio est déployé, également appelé compte approuvé, mettez à jour le rôle d’exécution de SageMaker AI accédant à vos clusters avec les autorisations requises pour accéder aux ressources dans le compte d’approbation.
-
Étape 1 : extrayez l’ARN du rôle d’exécution SageMaker AI utilisé par votre espace privé.
Pour obtenir des informations sur les espaces et les rôles d’exécution dans SageMaker AI, consultez Comprendre les autorisations d’espace de domaine et les rôles d’exécution.
Pour plus d’informations sur la façon de récupérer l’ARN du rôle d’exécution de SageMaker AI, consultez Obtention de votre rôle d’exécution.
-
Étape 2 : attachez les autorisations suivantes au rôle d’exécution SageMaker AI accédant à vos clusters Amazon EMR.
-
Accédez à la Console IAM
. -
Choisissez Rôles, puis recherchez votre rôle d’exécution par son nom dans le champ Rechercher. Le nom du rôle est la dernière partie de l’ARN, après la dernière barre oblique (/).
-
Suivez le lien correspondant à votre rôle.
-
Choisissez Ajouter des autorisations, puis Créer une politique en ligne.
-
Dans l’onglet JSON, ajoutez la politique en ligne accordant au rôle les autorisations nécessaires pour mettre à jour les domaines, les profils utilisateur et les espaces. Pour plus de détails sur le document de politique, consultez Politique relative aux actions de mise à jour des domaines, des profils utilisateur et des espaces dans Politiques de référence. Remplacez
regionetaccountIDpar leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle. -
Choisissez Suivant, puis fournissez un nom de politique.
-
Choisissez Créer une politique.
-
Répétez l’étape Créer une politique en ligne pour ajouter une autre politique accordant au rôle d’exécution les autorisations permettant d’assumer
AssumableRolepuis d’exécuter les actions autorisées par la stratégie d’accès du rôle. Remplacezemr-accountpar l’ID du compte Amazon EMR etAssumableRolepar le nom du rôle assumable créé dans le compte Amazon EMR. -
Répétez l’étape Créer une politique en ligne pour ajouter une autre politique accordant au rôle d’exécution les autorisations nécessaires pour provisionner de nouveaux clusters Amazon EMR à l’aide de modèles CloudFormation. Pour plus de détails sur le document de politique, consultez Politiques de création de clusters Amazon EMR dans Politiques de référence. Remplacez
regionetaccountIDpar leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle. -
(Facultatif) Pour permettre de répertorier les clusters Amazon EMR déployés dans 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 Politiques Amazon EMR de liste dans Politiques de référence.
-
-
Étape 3 : associez votre ou vos rôles assumables (rôle d’accès) à votre domaine ou à votre profil utilisateur. Les utilisateurs de JupyterLab dans Studio peuvent utiliser la console SageMaker AI ou le script fourni.
Choisissez l’onglet qui correspond à votre cas d’utilisation.