

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.

# Préparation des données à grande échelle à l’aide d’applications Amazon EMR sans serveur ou de clusters Amazon EMR dans Studio
<a name="studio-emr-data-preparation"></a>

Amazon SageMaker Studio et son ancienne version, Studio Classic, fournissent aux scientifiques des données et aux ingénieurs en apprentissage automatique (ML) des outils permettant d'analyser et de préparer des données à grande échelle. L’analyse, la transformation et la préparation de grandes quantités de données sont des étapes fondamentales de tout flux de travail de science des données et de ML. Studio et Studio Classic sont tous deux intégrés à Amazon EMR, ce qui permet aux utilisateurs de gérer des flux de travail interactifs de préparation des données et d'apprentissage automatique à grande échelle au sein de leurs JupyterLab ordinateurs portables.

[Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html) est une plateforme de mégadonnées gérée dotée de ressources pour vous aider à exécuter des tâches de traitement de données distribué à l'échelle de plusieurs pétaoctets à l'aide de frameworks d'analyse open source AWS tels qu'[Apache Spark, Apache](https://aws.amazon.com/emr/features/spark) [Hive](https://aws.amazon.com/emr/features/hive), [Presto](https://aws.amazon.com/emr/features/presto) et Flink, entre autres. HBase Grâce à l'intégration de Studio et Studio Classic à Amazon EMR, vous pouvez créer, parcourir, découvrir et vous connecter à des clusters Amazon EMR sans quitter votre bloc-notes JupyterLab ou celui de Studio Classic. Vous pouvez également surveiller et déboguer vos charges de travail Spark en accédant en un clic à l’interface utilisateur Spark depuis votre bloc-notes.

Vous devriez envisager les clusters Amazon EMR pour vos charges de travail de préparation des données si vous avez des exigences de traitement de données complexes, de longue durée ou à grande échelle, impliquant d’énormes quantités de données, si vous avez besoin d’une personnalisation et d’une intégration extensives avec d’autres services, si vous devez exécuter des applications personnalisées ou si vous envisagez d’exécuter un large éventail de cadres de traitement de données distribués au-delà d’Apache Spark. 

À l'aide [d'une image de SageMaker distribution](sagemaker-distribution.md) `1.10` ou d'une version supérieure, vous pouvez également vous connecter à des applications [EMR sans serveur](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless.html) interactives directement depuis vos JupyterLab ordinateurs portables dans AI Studio. SageMaker L’intégration de Studio avec EMR sans serveur vous permet d’exécuter des cadres d’analytique open source du big data, tels qu’[Apache Spark](https://aws.amazon.com/emr/features/spark) et [Apache Hive](https://aws.amazon.com/emr/features/hive) sans configurer, gérer ni mettre à l’échelle les clusters Amazon EMR. EMR sans serveur provisionne et gère automatiquement les ressources de calcul et de mémoire sous-jacentes en fonction des besoins de votre application EMR sans serveur. Il augmente ou réduit verticalement les ressources de manière dynamique, en vous facturant la quantité de ressources de vCPU, de mémoire et de stockage consommée par vos applications. Cette approche sans serveur vous permet d'[exécuter des charges de travail interactives de préparation des données](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/interactive-workloads.html) à partir de vos JupyterLab ordinateurs portables sans vous soucier de la gestion du cluster, tout en optimisant le taux d'utilisation des instances et en optimisant les coûts.

Vous devriez envisager EMR sans serveur pour vos charges de travail interactives de préparation des données si vos charges de travail sont de courte durée ou intermittentes et ne nécessitent pas de cluster persistant ; si vous préférez une expérience sans serveur avec provisionnement et résiliation automatiques des ressources, évitant ainsi les frais de gestion de l’infrastructure ; ou si vos tâches interactives de préparation de données tournent principalement autour d’Apache Spark. 

**Topics**
+ [Configuration de l’accès réseau pour votre cluster Amazon EMR](studio-notebooks-emr-networking.md)
+ [Préparation des données à l’aide d’EMR sans serveur](studio-notebooks-emr-serverless.md)
+ [Préparation des données à l’aide d’Amazon EMR](studio-notebooks-emr-cluster.md)

# Configuration de l’accès réseau pour votre cluster Amazon EMR
<a name="studio-notebooks-emr-networking"></a>

Avant de commencer à utiliser Amazon EMR ou EMR sans serveur pour vos tâches de préparation des données dans Studio, assurez-vous que vous ou votre administrateur avez configuré votre réseau pour autoriser la communication entre Studio et Amazon EMR. Une fois cette communication activée, vous pouvez choisir de :
+ [Préparation des données à l’aide d’EMR sans serveur](studio-notebooks-emr-serverless.md)
+ [Préparation des données à l’aide d’Amazon EMR](studio-notebooks-emr-cluster.md)

**Note**  
Pour les utilisateurs d’EMR sans serveur, la configuration la plus simple consiste à créer votre application dans l’interface utilisateur de Studio sans modifier les paramètres par défaut de l’option **Cloud privé virtuel (VPC)**. Cette approche permet de créer l'application au sein du VPC de votre SageMaker domaine, éliminant ainsi le besoin de configuration réseau supplémentaire. Si vous choisissez cette option, vous pouvez ignorer la section suivante de configuration de la mise en réseau. 

Les instructions de mise en réseau varient selon que Studio et Amazon EMR sont déployés au sein d’un réseau [cloud privé virtuel (VPC) Amazon](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) privé ou communiquent via Internet.

Par défaut, Studio ou Studio Classic s'exécutent dans un VPC AWS géré avec [accès à Internet](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html#studio-notebooks-and-internet-access-default). Lorsque vous utilisez une connexion Internet, Studio et Studio Classic accèdent à AWS des ressources, telles que les compartiments Amazon S3, via Internet. Toutefois, si vous avez des exigences de sécurité pour contrôler l’accès à vos données et à vos conteneurs de tâches, nous vous recommandons de configurer Studio ou Studio Classic et Amazon EMR afin que vos données et vos conteneurs ne soient pas accessibles via Internet. Pour contrôler l'accès à vos ressources ou exécuter Studio ou Studio Classic sans accès public à Internet, vous pouvez spécifier le type d'accès au `VPC only` réseau lorsque vous vous connectez au [domaine Amazon SageMaker AI](gs-studio-onboard.md). Dans ce scénario, Studio et Studio Classic établissent des connexions avec d'autres AWS services via des points de terminaison [VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) privés. Pour plus d'informations sur la configuration de Studio ou Studio Classic en `VPC only` mode, voir [Connecter des blocs-notes SageMaker Studio ou Studio Classic à des ressources externes dans un VPC](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html#studio-notebooks-and-internet-access-vpc-only). .

Les deux premières sections décrivent comment garantir la communication entre Studio ou Studio Classic et Amazon EMR VPCs sans accès public à Internet. La dernière section explique comment garantir la communication entre Studio ou Studio Classic et Amazon EMR à l’aide d’une connexion Internet. Avant de connecter Studio ou Studio Classic à Amazon EMR sans accès à Internet, assurez-vous d'établir des points de terminaison pour Amazon Simple Storage Service (stockage des données), Amazon (journalisation et surveillance) et Amazon SageMaker Runtime CloudWatch (contrôle d'accès détaillé basé sur les rôles (RBAC)).

Pour connecter Studio ou Studio Classic et Amazon EMR :
+ Si Studio ou Studio Classic et Amazon EMR sont connectés séparément VPCs, que ce soit sur le même AWS compte ou sur des comptes différents, consultez. [Studio et Amazon EMR sont séparés VPCs](#studio-notebooks-emr-networking-requirements-cross-vpc)
+ Si Studio ou Studio Classic et Amazon EMR sont dans le même VPC, consultez [Studio et Amazon EMR sont dans le même VPC](#studio-notebooks-emr-networking-requirements-same-vpc).
+ Si vous avez choisi de connecter Studio ou Studio Classic et Amazon EMR via le réseau Internet public, consultez [Studio et Amazon EMR communiquent via l’Internet public](#studio-notebooks-emr-networking-requirements-internet).

## Studio et Amazon EMR sont séparés VPCs
<a name="studio-notebooks-emr-networking-requirements-cross-vpc"></a>

Pour autoriser la communication entre Studio ou Studio Classic et Amazon EMR lorsqu'ils sont déployés séparément : VPCs

1. Commencez par vous connecter VPCs via une connexion d'appairage VPC.

1. Mettez à jour vos tables de routage dans chaque VPC pour router le trafic réseau entre les sous-réseaux Studio ou Studio Classic et les sous-réseaux Amazon EMR dans les deux sens.

1. Configurez vos groupes de sécurité pour autoriser le trafic entrant et sortant.

Les étapes pour connecter Studio ou Studio Classic et Amazon EMR sont les mêmes, que les ressources soient déployées sur un seul AWS compte (cas d'utilisation avec un seul compte) ou sur plusieurs AWS comptes (cas d'utilisation entre comptes).

1. 

**Appairage de VPC**

   Créez une [connexion d'appairage VPC](https://docs.aws.amazon.com/vpc/latest/peering/working-with-vpc-peering.html) pour faciliter la mise en réseau entre les deux VPCs (Studio ou Studio Classic et Amazon EMR).

   1. Depuis votre compte Studio ou Studio Classic, sur le tableau de bord VPC, choisissez **Connexions d’appairage**, puis **Créer une connexion d’appairage**.

   1. Créez votre demande pour appairer le VPC Studio ou Studio Classic avec le VPC Amazon EMR. Lorsque vous demandez le peering sur un autre AWS compte, choisissez **Another account** dans **Select another VPC to peer with**.

      Pour l’appairage entre comptes, l’administrateur doit accepter la demande émanant du compte Amazon EMR.

      Lors de l’appairage de sous-réseaux privés, vous devez activer la résolution DNS IP privée au niveau de la connexion d’appairage de VPC.

1. 

**Tables de routage**

   Envoyez le trafic réseau entre les sous-réseaux Studio ou Studio Classic et les sous-réseaux Amazon EMR dans les deux sens.

   Une fois que vous avez établi la connexion d’appairage, l’administrateur (sur chaque compte pour un accès intercompte) peut ajouter des routes aux tables de routage des sous-réseaux privés pour router le trafic entre Studio ou Studio Classic et les sous-réseaux Amazon EMR. Vous pouvez définir ces routes en accédant à la section **Tables de routage** de chaque VPC dans le tableau de bord du VPC.

   L’illustration suivante de la table de routage d’un sous-réseau de VPC Studio montre un exemple de route sortante du compte Studio vers la plage d’adresses IP du VPC Amazon EMR (ici `2.0.1.0/24`) via la connexion d’appairage.  
![\[La table de routage d’un sous-réseau de VPC Studio montre des routes sortantes entre le compte Studio et la plage d’adresses IP du VPC Amazon EMR (ici 2.0.1.0/24) via la connexion d’appairage.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-return-route.png)

   L’illustration suivante de la table de routage d’un sous-réseau de VPC Amazon EMR montre un exemple de route de retour entre le VPC Amazon EMR et la plage d’adresses IP du VPC Studio (ici `10.0.20.0/24`) via la connexion d’appairage.  
![\[Table de routage d’un sous-réseau de VPC Amazon EMR indiquant les routes de retour depuis le compte Amazon EMR vers la plage d’adresses IP du VPC Studio (ici 10.0.20.0/24) via la connexion d’appairage\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-outbound-route.png)

1. 

**Groupes de sécurité**

   Enfin, le groupe de sécurité de votre domaine Studio ou Studio Classic doit autoriser le trafic sortant, et le groupe de sécurité du nœud primaire Amazon EMR doit autoriser le trafic entrant sur les ports TCP *Apache Livy*, *Hive* ou *Presto* (respectivement `8998`, `10000` et `8889`) depuis le groupe de sécurité d’instance Studio ou Studio Classic. [Apache Livy](https://livy.apache.org/) est un service qui permet d’interagir avec Amazon EMR via une interface REST.

Le schéma suivant montre un exemple de configuration Amazon VPC qui permet aux JupyterLab blocs-notes Studio Classic de provisionner des clusters Amazon EMR à partir de modèles figurant dans CloudFormation le Service Catalog, puis de se connecter à un cluster Amazon EMR au sein du même compte. AWS Le schéma fournit une illustration supplémentaire des points de terminaison requis pour une connexion directe à divers AWS services, tels qu'Amazon S3 ou Amazon CloudWatch, lorsqu'ils n' VPCs ont pas accès à Internet. Une [passerelle NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-working-with) doit également être utilisée pour permettre aux instances situées dans des sous-réseaux privés de plusieurs de VPCs partager une seule adresse IP publique fournie par la [passerelle Internet](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html) lors de l'accès à Internet.

![\[Schéma architectural illustrant un exemple de configuration Amazon VPC simple qui permet aux blocs-notes Studio ou Studio Classic de provisionner des clusters Amazon EMR à partir de modèles figurant CloudFormation dans le Service Catalog, puis de se connecter à un cluster Amazon EMR au sein du même compte. AWS Le schéma fournit une illustration supplémentaire des points de terminaison requis pour une connexion directe à divers AWS services, tels qu'Amazon S3 ou Amazon CloudWatch, lorsqu'ils n' VPCs ont pas accès à Internet. Une passerelle NAT doit également être utilisée pour permettre aux instances situées dans des sous-réseaux privés de plusieurs de VPCs partager une seule adresse IP publique fournie par la passerelle Internet lors de l'accès à Internet.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-architecture-singleaccount-vpcendpoints.png)


## Studio et Amazon EMR sont dans le même VPC
<a name="studio-notebooks-emr-networking-requirements-same-vpc"></a>

Si Studio ou Studio Classic et Amazon EMR se trouvent dans des sous-réseaux différents, ajoutez des routes à la table de routage de chaque sous-réseau privé pour router le trafic entre Studio ou Studio Classic et les sous-réseaux Amazon EMR. Vous pouvez définir ces routes en accédant à la section **Tables de routage** de chaque VPC dans le tableau de bord du VPC. Si vous avez déployé Studio ou Studio Classic et Amazon EMR dans le même VPC et le même sous-réseau, vous n’avez pas besoin de router le trafic entre Studio et Amazon EMR.

Que vous deviez ou non mettre à jour vos tables de routage, le groupe de sécurité de votre domaine Studio ou Studio Classic doit autoriser le trafic sortant et le groupe de sécurité du nœud primaire Amazon EMR doit autoriser le trafic entrant sur les ports TCP *Apache Livy*, *Hive* ou *Presto* (respectivement `8998`, `10000` et `8889`) depuis le groupe de sécurité d’instance Studio ou Studio Classic. [Apache Livy](https://livy.apache.org/) est un service qui permet d’interagir avec Amazon EMR via une interface REST.

## Studio et Amazon EMR communiquent via l’Internet public
<a name="studio-notebooks-emr-networking-requirements-internet"></a>

Par défaut, Studio et Studio Classic fournissent une interface réseau qui permet de communiquer avec Internet via une passerelle Internet dans le VPC associé au SageMaker domaine. Si vous choisissez de vous connecter à Amazon EMR via le réseau Internet public, Amazon EMR doit accepter le trafic entrant sur les ports TCP *Apache Livy*, *Hive* ou *Presto* (respectivement `8998`, `10000` et `8889`) depuis sa passerelle Internet. [Apache Livy](https://livy.apache.org/) est un service qui permet d’interagir avec Amazon EMR via une interface REST.

Gardez à l’esprit que tout port sur lequel vous autorisez le trafic entrant représente une vulnérabilité de sécurité potentielle. Vérifiez attentivement les groupes de sécurité personnalisés pour vous assurer de réduire les failles de sécurité. Pour plus d'informations, consultez [Contrôle du trafic réseau avec des groupes de sécurité](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-groups.html).

Vous pouvez également consulter [Blogs et livres blancs](studio-notebooks-emr-resources.md) pour une présentation détaillée expliquant comment activer [Kerberos sur Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html), configurer le cluster dans un sous-réseau privé et accéder au cluster à l’aide d’un [Network Load Balancer (NLB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) afin d’exposer uniquement des ports spécifiques, dont l’accès est contrôlé par des groupes de sécurité.

**Note**  
Lorsque vous vous connectez à votre point de terminaison Apache Livy via le réseau Internet public, nous vous recommandons de sécuriser les communications entre Studio ou Studio Classic et votre cluster Amazon EMR à l’aide du protocole TLS.  
Pour en savoir plus sur la configuration du protocole HTTPS avec Apache Livy, consultez [Activation du protocole HTTPS avec Apache Livy](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/enabling-https.html). Pour en savoir plus sur la configuration d’un cluster Amazon EMR avec le chiffrement en transit activé, consultez [Fourniture de certificats pour le chiffrement des données en transit avec le chiffrement Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-encryption-enable.html#emr-encryption-certificates). En outre, vous devez configurer Studio ou Studio Classic pour accéder à votre clé de certificat comme indiqué dans [Connexion à un cluster Amazon EMR via HTTPS](connect-emr-clusters.md#connect-emr-clusters-ssl).

# Préparation des données à l’aide d’EMR sans serveur
<a name="studio-notebooks-emr-serverless"></a>

À partir de [SageMaker la version d'image de distribution](sagemaker-distribution.md)`1.10`, Amazon SageMaker Studio s'intègre à EMR Serverless. Dans les JupyterLab ordinateurs portables de SageMaker Studio, les data scientists et les ingénieurs de données peuvent découvrir des applications EMR Serverless et s'y connecter, puis explorer, visualiser et préparer de manière interactive des charges de travail Apache Spark ou Apache Hive à grande échelle. Cette intégration permet d’effectuer un prétraitement interactif des données à grande échelle en préparation de l’entraînement et du déploiement du modèle ML.

Plus précisément, la version mise à jour de la version d'image de [distribution intégrée [https://pypi.org/project/sagemaker-studio-analytics-extension/](https://pypi.org/project/sagemaker-studio-analytics-extension/)à l'SageMaker IA](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v1) `1.10` tire parti de l'intégration entre Apache Livy et EMR Serverless, permettant la connexion à un point de terminaison Apache Livy via des ordinateurs portables. JupyterLab Cette section suppose une connaissance préalable des [applications interactives EMR sans serveur](https://docs.aws.amazon.com/EMR-Serverless-UserGuide/interactive-workloads.html).

**Important**  
Lorsque vous utilisez Studio, vous pouvez uniquement découvrir et vous connecter aux applications EMR Serverless pour les JupyterLab applications lancées depuis des espaces privés. Assurez-vous que les applications EMR Serverless sont situées dans la même AWS région que votre environnement Studio.

## Conditions préalables
<a name="studio-set-up-emr-serverless-prerequisites"></a>

Avant de commencer à exécuter des charges de travail interactives avec EMR Serverless depuis JupyterLab vos ordinateurs portables, assurez-vous de remplir les conditions préalables suivantes :

1. Votre JupyterLab espace doit utiliser une version image de SageMaker distribution `1.10` ou supérieure.

1. Créez une application interactive EMR sans serveur avec Amazon EMR version `6.14.0` ou supérieure. Vous pouvez créer une application EMR sans serveur à partir de l’interface utilisateur de Studio en suivant les étapes décrites dans [Création d’applications EMR sans serveur depuis Studio](create-emr-serverless-application.md).
**Note**  
Pour simplifier la configuration, vous pouvez créer votre application EMR sans serveur dans l’interface utilisateur de Studio sans modifier les paramètres par défaut de l’option **Cloud privé virtuel (VPC)**. Cela permet de créer l’application au sein de votre VPC de domaine sans nécessiter de configuration réseau. Dans ce cas, vous pouvez ignorer l’étape de configuration de mise en réseau suivante.

1. Passez 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](studio-notebooks-emr-networking.md). En particulier, vérifiez que vous :
   + Établissez une connexion d’appairage de VPC entre votre compte Studio et votre compte EMR sans serveur.
   + Ajoutez des routes aux tables de routage des sous-réseaux privés dans les deux comptes. 
   + Configurez le groupe de sécurité attaché à votre domaine Studio pour autoriser le trafic sortant et configurez le groupe de sécurité du VPC où vous envisagez d’exécuter les applications EMR sans serveur pour autoriser le trafic TCP entrant depuis le groupe de sécurité de l’instance Studio.

1. Pour accéder à vos applications interactives sur EMR Serverless et exécuter des charges de travail soumises depuis vos JupyterLab blocs-notes dans SageMaker Studio, vous devez attribuer des autorisations et des rôles spécifiques. Reportez-vous à la section [Configurez les autorisations pour activer la mise en vente et le lancement des applications Amazon EMR depuis Studio SageMaker](studio-emr-serverless-permissions.md) pour obtenir des détails sur les rôles et autorisations nécessaires.

**Topics**
+ [Conditions préalables](#studio-set-up-emr-serverless-prerequisites)
+ [Configurez les autorisations pour activer la mise en vente et le lancement des applications Amazon EMR depuis Studio SageMaker](studio-emr-serverless-permissions.md)
+ [Création d’applications EMR sans serveur depuis Studio](create-emr-serverless-application.md)
+ [Connexion à une application EMR sans serveur depuis Studio](connect-emr-serverless-application.md)
+ [Arrêt ou suppression d’une application EMR sans serveur depuis l’interface utilisateur de Studio](terminate-emr-serverless-application.md)

# Configurez les autorisations pour activer la mise en vente et le lancement des applications Amazon EMR depuis Studio SageMaker
<a name="studio-emr-serverless-permissions"></a>

Dans cette section, nous détaillons les rôles et les autorisations nécessaires pour répertorier et se connecter aux applications EMR Serverless depuis SageMaker Studio, en prenant en compte les scénarios dans lesquels Studio et les applications EMR Serverless sont déployés dans le même AWS compte ou sur différents comptes.

Les rôles auxquels vous devez ajouter les autorisations nécessaires varient selon que Studio et vos applications EMR Serverless résident sur le même AWS compte (*compte unique*) ou sur des comptes distincts (comptes *croisés*). Deux types de rôles sont concernés :
+ Rôle d’exécution :
  + Rôles [d'exécution d'exécution (rôles](https://docs.aws.amazon.com/http://emr/latest/EMR-Serverless-UserGuide/jobs-spark.html#spark-defaults-executionRoleArn) de contrôle d'accès basés sur les rôles) utilisés par EMR Serverless : il s'agit des rôles IAM utilisés par les environnements d'exécution de tâches EMR Serverless pour accéder à d'autres AWS services et ressources nécessaires pendant l'exécution, tels qu'Amazon S3 pour l'accès aux données, pour la journalisation, l'accès au catalogue de données ou à d'autres services en fonction de AWS Glue vos exigences en matière de charge de travail. CloudWatch Nous vous recommandons de créer ces rôles dans le compte sur lequel les applications EMR sans serveur sont exécutées.

    Pour en savoir plus sur les rôles d’exécution, consultez [Rôles d’exécution des tâches](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html) dans le *Guide de l’utilisateur EMR sans serveur*.
**Note**  
Vous pouvez définir plusieurs rôles RBAC pour votre application EMR sans serveur. Ces rôles peuvent être basés sur les responsabilités et les niveaux d’accès requis par les différents utilisateurs ou groupes au sein de votre organisation. Pour plus d’informations sur les autorisations RBAC, consultez [Bonnes pratiques de sécurité pour Amazon EMR sans serveur](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-best-practices.html#security-practice-rbac).
  + SageMaker Rôle d'exécution de l'IA : rôle d'exécution permettant à l' SageMaker IA d'effectuer certaines tâches, telles que la lecture de données à partir de compartiments Amazon S3, l'écriture de journaux et l'accès à CloudWatch d'autres AWS services dont votre flux de travail pourrait avoir besoin. Le rôle d'exécution SageMaker AI dispose également de l'autorisation spéciale appelée `iam:PassRole` qui permet à l' SageMaker IA de transmettre des rôles d'exécution temporaires aux applications EMR Serverless. Ces rôles confèrent aux applications EMR Serverless les autorisations dont elles ont besoin pour interagir avec d'autres AWS ressources pendant leur exécution.
+ Rôles assumables (également appelés *rôles d’accès aux services*) :
  + Il s'agit des rôles IAM que le rôle d'exécution de l' SageMaker IA peut assumer pour effectuer des opérations liées à la gestion des applications EMR sans serveur. Ces rôles définissent les autorisations et les stratégies d’accès requises lors de l’établissement de la liste, de la connexion ou de la gestion des applications EMR sans serveur. Ils sont généralement utilisés dans des scénarios entre comptes, dans lesquels les applications EMR Serverless sont situées dans un compte AWS différent de celui SageMaker du domaine AI. Le fait de disposer d'un rôle IAM dédié pour vos applications EMR sans serveur permet de respecter le principe du moindre privilège et de garantir qu'Amazon EMR dispose uniquement des autorisations requises pour exécuter vos tâches tout en protégeant les autres ressources de votre compte. AWS 

En comprenant et en configurant correctement ces rôles, vous pouvez vous assurer que SageMaker Studio dispose des autorisations nécessaires pour interagir avec les applications EMR Serverless, qu'elles soient déployées dans le même compte ou sur différents comptes.

## Compte unique
<a name="studio-set-up-emr-serverless-permissions-singleaccount"></a>

Les diagrammes suivants illustrent les rôles et les autorisations nécessaires pour répertorier et se connecter aux applications EMR Serverless depuis Studio lorsque Studio et les applications sont déployés dans le même compte. AWS 

![\[Le diagramme montre les rôles et les autorisations nécessaires pour répertorier et connecter les applications EMR Serverless depuis Studio lorsque Studio et les applications se trouvent dans le même compte. AWS\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-serverless-permissions-setup-singleaccount.png)


Si vos applications Amazon EMR et Studio sont déployés sur le même AWS compte, procédez comme suit :

1. **Étape 1** : extrayez l’ARN du compartiment Amazon S3 que vous utilisez pour les sources de données et le stockage des données de sortie dans la [console Amazon S3](https://console.aws.amazon.com/S3).

   Pour savoir comment trouver un compartiment par son nom, consultez [Accès à un compartiment Amazon S3 et établissement de la liste des compartiments](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-bucket-intro.html). Pour obtenir des informations sur la création d’un compartiment Amazon S3, consultez [Création d’un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). 

1. **Étape 2** : créez au moins un rôle d’exécution de tâches pour votre application EMR sans serveur dans votre compte (`EMRServerlessRuntimeExecutionRoleA` dans le schéma du cas d’utilisation *Compte unique* ci-dessus). Choisissez **Politique d’approbation personnalisée** comme entité de confiance. Ajoutez les autorisations requises par votre tâche. Au minimum, vous avez besoin d'un accès complet à un compartiment Amazon S3, ainsi que d'un accès en création et en lecture au catalogue de AWS Glue données.

   Pour obtenir des instructions détaillées sur la façon de créer un nouveau rôle d’exécution à l’exécution pour vos applications EMR sans serveur, procédez comme suit :

   1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

   1. Dans le volet de navigation de gauche, choisissez **Politique**, puis **Créer une politique**.

   1. Ajoutez les autorisations requises par votre rôle d’exécution, nommez la politique, puis choisissez **Créer une politique**.

      Vous pouvez consulter [Rôles d’exécution des tâches pour EMR sans serveur](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html) pour trouver des exemples de politiques d’exécution pour un rôle d’exécution EMR sans serveur.

   1. Dans le volet de navigation de gauche, choisissez **Rôles**, puis **Créer un rôle**.

   1. Sur la page **Créer un rôle**, choisissez **Politique d’approbation personnalisée** comme entité de confiance.

   1. Collez le document JSON suivant dans la section **Politique d’approbation personnalisée**, puis choisissez **Suivant**.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "emr-serverless.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. Dans la page **Ajouter des autorisations**, ajoutez la politique que vous avez créée, puis choisissez **Suivant**.

   1. Sur la page **Vérifier**, entrez un nom pour le rôle, tel que `EMRServerlessAppRuntimeRoleA`, et une description facultative.

   1. Passez en revue les détails du rôle, puis choisissez **Créer un rôle**.

   Grâce à ces rôles, vous et vos collègues pouvez vous connecter à la même application, chacun utilisant un rôle d’exécution assorti d’autorisations correspondant à votre niveau individuel d’accès aux données.
**Note**  
Les sessions Spark fonctionnent différemment. Les sessions Spark sont isolées en fonction du rôle d’exécution utilisé depuis Studio, de sorte que les utilisateurs ayant des rôles d’exécution différents auront des sessions Spark distinctes et isolées. En outre, si vous avez activé l’identité source pour votre domaine, les sessions Spark sont davantage isolées entre les différentes identités sources.

1. **Étape 3** : Récupérez l'ARN du rôle d'exécution SageMaker AI utilisé par votre espace privé.

   Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultez[Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md).

   Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).
**Note**  
 Les utilisateurs novices en SageMaker IA peuvent également simplifier leur processus de configuration en créant automatiquement un nouveau rôle d'exécution de l' SageMaker IA avec les autorisations appropriées. Dans ce cas, passez aux étapes 3 et 4. À la place, les utilisateurs peuvent :  
Choisissez l'option **Configurer pour les organisations** lors de la création d'un nouveau domaine dans le menu **Domaine** dans le menu de navigation de gauche de la [console SageMaker AI](https://console.aws.amazon.com/sagemaker).
créer un nouveau rôle d’exécution à partir du menu **Gestionnaire de rôles** de la console, puis associer le rôle à un domaine ou à un profil utilisateur existant.
Lors de la création du rôle, choisissez l’option **Exécuter les applications EMR sans serveur de Studio** dans **Quelles activités ML les utilisateurs effectueront-ils ?** Indiquez ensuite le nom de votre compartiment Amazon S3 et le rôle d’exécution des tâches que vous souhaitez que votre application EMR sans serveur utilise (étape 2).  
Le gestionnaire de rôles ajoute automatiquement au nouveau SageMaker rôle d'exécution les autorisations nécessaires à l'exécution et à la connexion aux applications EMR sans serveur au nouveau [SageMaker rôle d'exécution. À l'aide du gestionnaire]() de rôles, vous ne pouvez attribuer qu'un seul rôle d'exécution à votre application EMR sans serveur, et l'application doit s'exécuter sur le même compte où Studio est déployé, à l'aide d'un rôle d'exécution créé dans ce même compte.

1. **Étape 4** : Attachez les autorisations suivantes au rôle d'exécution SageMaker AI accédant à votre application EMR Serverless.

   1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. 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 (/).

   1. Suivez le lien correspondant à votre rôle.

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

   1. Dans l’onglet **JSON**, ajoutez les autorisations Amazon EMR sans serveur permettant l’accès et les opérations EMR sans serveur. Pour plus de détails sur le document de politique, consultez *Politiques EMR sans serveur* dans [Politiques de référence](#studio-set-up-emr-serverless-permissions-reference). Remplacez *region*, *accountID* et le ou les éléments *EMRServerlessAppRuntimeRole* transmis par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle. 
**Note**  
Vous pouvez inclure autant de chaînes ARN de rôles d’exécution que nécessaire dans l’autorisation, en les séparant par des virgules.

   1. Choisissez **Suivant**, puis fournissez un **nom de politique**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. Répétez l’étape **Créer une politique en ligne** pour ajouter une autre 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 `SageMakerUpdateResourcesPolicy`, consultez *Politique relative aux actions de mise à jour des domaines, des profils utilisateur et des espaces* dans [Politiques de référence](#studio-set-up-emr-serverless-permissions-reference). Remplacez *region* et *accountID* par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

1. **Étape 5** :

   Associez la liste des rôles d'exécution à votre profil utilisateur ou à votre domaine afin de pouvoir parcourir visuellement la liste des rôles et sélectionner celui à utiliser lors de la [connexion à une application EMR Serverless depuis](connect-emr-serverless-application.md). JupyterLab Vous pouvez utiliser la console SageMaker AI ou le script suivant. Par la suite, toutes vos tâches Apache Spark ou Apache Hive créées à partir de votre bloc-notes accéderont uniquement aux données et aux ressources autorisées par les politiques attachées au rôle d’exécution sélectionné.
**Important**  
Si vous n'effectuez pas cette étape, vous ne pourrez pas connecter un JupyterLab bloc-notes à une application EMR Serverless.

------
#### [ SageMaker AI console ]

   Pour associer vos rôles d'exécution à votre profil utilisateur ou à votre domaine à l'aide de la console SageMaker AI :

   1. Accédez à la console SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. Dans le volet de navigation de gauche, choisissez le **domaine**, puis sélectionnez le domaine à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations.

   1. 
      + Pour ajouter vos rôles d'exécution à votre domaine : dans l'onglet **Configurations des applications** de la page des **détails du domaine**, accédez à la **JupyterLab**section.
      + Pour ajouter vos rôles d'exécution à votre profil utilisateur : sur la page des **détails du domaine**, choisissez l'onglet **Profils utilisateur**, sélectionnez le profil utilisateur à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations. Dans l'onglet **Configurations de l'application**, accédez à la **JupyterLab**section.

   1. Choisissez **Modifier** et ajoutez les rôles d'exécution ARNs de votre EMR Serverless Runtime.

   1. Sélectionnez **Soumettre**.

   Lors de votre prochaine connexion à une application EMR Serverless via JupyterLab, les rôles d'exécution devraient apparaître dans un menu déroulant pour être sélectionnés.

------
#### [ Python script ]

   Dans une JupyterLab application démarrée depuis un espace privé à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations, exécutez la commande suivante dans un terminal. Remplacez `domainID`, `user-profile-name`, `studio-accountID` et `EMRServerlessRuntimeExecutionRole` par leurs valeurs appropriées. Cet extrait de code met à jour les paramètres du profil utilisateur pour un profil utilisateur (`client.update_user_profile`) ou des paramètres de domaine (`client.update_domain`) spécifiques, en associant spécifiquement les rôles d’exécution EMR sans serveur à l’exécution que vous avez créés précédemment.

   ```
   import botocore.session
   import json
   sess = botocore.session.get_session()
   client = sess.create_client('sagemaker')
   
   client.update_user_profile(
   DomainId="domainID", 
   UserProfileName="user-profile-name",
   DefaultUserSettings={
       'JupyterLabAppSettings': {
           'EmrSettings': {
               'ExecutionRoleArns': ["arn:aws:iam::studio-accountID:role/EMRServerlessRuntimeExecutionRoleA", 
                                "arn:aws:iam::studio-accountID:role/EMRServerlessRuntimeExecutionRoleAA"]
           }
           
       }
   })
   resp = client.describe_domain(DomainId="domainID")
   
   resp['CreationTime'] = str(resp['CreationTime'])
   resp['LastModifiedTime'] = str(resp['LastModifiedTime'])
   print(json.dumps(resp, indent=2))
   ```

------

## Compte croisé
<a name="studio-set-up-emr-serverless-permissions-crossaccount"></a>

Les diagrammes suivants illustrent les rôles et les autorisations nécessaires pour répertorier et se connecter aux applications EMR Serverless depuis Studio lorsque Studio et les applications sont déployés dans différents comptes. AWS 

![\[Le diagramme montre les rôles et les autorisations nécessaires pour répertorier et connecter les applications EMR Serverless depuis Studio lorsque Studio et les applications se trouvent dans des comptes différents. AWS\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-serverless-permissions-setup-crossaccount.png)


Pour plus d'informations sur la création d'un rôle sur un AWS compte, consultez [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) Création d'un rôle IAM (console).

Avant de commencer : 
+ Récupérez l'ARN du rôle d'exécution SageMaker AI utilisé par votre espace privé. Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultez[Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md). Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).
+ Extrayez l’ARN du compartiment Amazon S3 que vous utiliserez pour les sources de données et le stockage des données de sortie dans la [console Amazon S3](https://console.aws.amazon.com/S3).

  Pour obtenir des informations sur la création d’un compartiment Amazon S3, consultez [Création d’un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). Pour savoir comment trouver un compartiment par son nom, consultez [Accès à un compartiment Amazon S3 et établissement de la liste des compartiments](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-bucket-intro.html).

Si Studio et vos applications EMR sans serveur sont déployés dans des comptes AWS distincts, vous configurez les autorisations sur les deux comptes. 

### Sur le compte EMR sans serveur
<a name="studio-set-up-emr-serverless-permissions-crossaccount-emraccount"></a>

Procédez comme suit pour créer les rôles et les politiques nécessaires sur le compte où votre application EMR sans serveur s’exécute, également appelé *compte d’approbation* :

1. **Étape 1** : créez au moins un rôle d’exécution de tâches pour votre application EMR sans serveur dans votre compte (`EMRServerlessRuntimeExecutionRoleB` dans le diagramme *Compte croisé* ci-dessus). Choisissez **Politique d’approbation personnalisée** comme entité de confiance. Ajoutez les autorisations requises par votre tâche. Au minimum, vous avez besoin d'un accès complet à un compartiment Amazon S3, ainsi que d'un accès en création et en lecture au catalogue de AWS Glue données.

   Pour obtenir des instructions détaillées sur la façon de créer un nouveau rôle d’exécution à l’exécution pour vos applications EMR sans serveur, procédez comme suit :

   1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

   1. Dans le volet de navigation de gauche, choisissez **Politique**, puis **Créer une politique**.

   1. Ajoutez les autorisations requises par votre rôle d’exécution, nommez la politique, puis choisissez **Créer une politique**.

      Pour des exemples de politiques d’exécution d’un rôle d’exécution EMR sans serveur, consultez [Rôles d’exécution de tâches pour Amazon EMR sans serveur](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html).

   1. Dans le volet de navigation de gauche, choisissez **Rôles**, puis **Créer un rôle**.

   1. Sur la page **Créer un rôle**, choisissez **Politique d’approbation personnalisée** comme entité de confiance.

   1. Collez le document JSON suivant dans la section **Politique d’approbation personnalisée**, puis choisissez **Suivant**.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "emr-serverless.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. Dans la page **Ajouter des autorisations**, ajoutez la politique que vous avez créée, puis choisissez **Suivant**.

   1. Sur la page **Vérifier**, entrez un nom pour le rôle, tel que `EMRServerlessAppRuntimeRoleB`, et une description facultative.

   1. Passez en revue les détails du rôle, puis choisissez **Créer un rôle**.

   Grâce à ces rôles, vous et vos collègues pouvez vous connecter à la même application, chacun utilisant un rôle d’exécution assorti d’autorisations correspondant à votre niveau individuel d’accès aux données.
**Note**  
Les sessions Spark fonctionnent différemment. Les sessions Spark sont isolées en fonction du rôle d’exécution utilisé depuis Studio, de sorte que les utilisateurs ayant des rôles d’exécution différents auront des sessions Spark distinctes et isolées. En outre, si vous avez activé l’identité source pour votre domaine, les sessions Spark sont davantage isolées entre les différentes identités sources.

1. **Étape 2** : créez un rôle IAM personnalisé nommé `AssumableRole` avec la configuration suivante :
   + Autorisations : accordez les autorisations nécessaires (politiques Amazon EMR sans serveur) à `AssumableRole` pour autoriser l’accès aux ressources EMR sans serveur. Ce rôle est également connu en tant que *rôle d’accès*.
   + Relation de confiance : configurez la politique d’approbation pour `AssumableRole` afin de permettre d’assumer le rôle d’exécution (`SageMakerExecutionRole` dans le diagramme entre comptes) depuis le compte Studio qui nécessite un accès.

   En assumant ce rôle, Studio peut obtenir un accès temporaire aux autorisations dont il a besoin dans le compte EMR sans serveur.

   Pour obtenir des instructions détaillées sur la façon de créer un nouveau compte `AssumableRole` dans votre AWS compte EMR Serverless, procédez comme suit :

   1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

   1. Dans le volet de navigation de gauche, choisissez **Politique**, puis **Créer une politique**.

   1. Dans l’onglet **JSON**, ajoutez les autorisations Amazon EMR sans serveur permettant l’accès et les opérations EMR sans serveur. Pour plus de détails sur le document de politique, consultez *Politiques EMR sans serveur* dans [Politiques de référence](#studio-set-up-emr-serverless-permissions-reference). Remplacez `region`, `accountID` et le ou les éléments `EMRServerlessAppRuntimeRole` transmis par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.
**Note**  
L’élément `EMRServerlessAppRuntimeRole` ici est le rôle d’exécution de tâches créé à l’étape 1 (`EMRServerlessAppRuntimeRoleB` dans le diagramme *Compte croisé* ci-dessus). Vous pouvez inclure autant de chaînes ARN de rôles d’exécution que nécessaire dans l’autorisation, en les séparant par des virgules. 

   1. Choisissez **Suivant**, puis fournissez un **nom de politique**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. Dans le volet de navigation de gauche, choisissez **Rôles**, puis **Créer un rôle**.

   1. Sur la page **Créer un rôle**, choisissez **Politique d’approbation personnalisée** comme entité de confiance.

   1. Collez le document JSON suivant dans la section **Politique d’approbation personnalisée**, puis choisissez **Suivant**.

      `studio-account`Remplacez-le par l'ID du compte Studio et `AmazonSageMaker-ExecutionRole` par le rôle d'exécution utilisé par votre JupyterLab espace. 

------
#### [ JSON ]

****  

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

------

   1. Dans la page **Ajouter des autorisations**, ajoutez l’autorisation `EMRServerlessAppRuntimeRoleB` que vous avez créée à l’étape 2, puis choisissez **Suivant**.

   1. Sur la page **Vérifier**, entrez un nom pour le rôle, tel que `AssumableRole`, et une description facultative.

   1. 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 AWS compte, consultez [Création d'un rôle IAM (console).](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)

### Sur le compte Studio
<a name="studio-set-up-emr-serverless-permissions-crossaccount-studioaccount"></a>

Sur le compte sur lequel Studio est déployé, également appelé *compte sécurisé*, mettez à jour le rôle d'exécution SageMaker AI accédant à vos applications EMR Serverless avec les autorisations requises pour accéder aux ressources du compte de confiance.

1. **Étape 1** : Récupérez l'ARN du rôle d'exécution SageMaker AI utilisé par votre espace.

   Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultez[Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md).

   Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).

1. **Étape 2** : Attachez les autorisations suivantes au rôle d'exécution SageMaker AI accédant à votre application EMR Serverless.

   1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. 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 (/). 

   1. Suivez le lien correspondant à votre rôle.

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

   1. 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 `SageMakerUpdateResourcesPolicy`, consultez *Politique relative aux actions de mise à jour des domaines, des profils utilisateur et des espaces* dans [Politiques de référence](#studio-set-up-emr-serverless-permissions-reference). Remplacez `region` et `accountID` par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

   1. Choisissez **Suivant**, puis fournissez un **nom de politique**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. 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 `AssumableRole` puis d’exécuter les actions autorisées par la stratégie d’accès du rôle.

      Remplacez `emr-account` par l’ID du compte Amazon EMR sans serveur et `AssumableRole` par le nom du rôle assumable créé dans le compte Amazon EMR sans serveur.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": {
              "Sid": "AllowSTSToAssumeAssumableRole",
              "Effect": "Allow",
              "Action": "sts:AssumeRole",
              "Resource": "arn:aws:iam::111122223333:role/AssumableRole"
          }
      }
      ```

------

1. **Étape 3** :

   Associez la liste des rôles d'exécution à votre domaine ou à votre profil utilisateur afin de pouvoir parcourir visuellement la liste des rôles et sélectionner celui à utiliser lors de la [connexion à une application EMR Serverless depuis](connect-emr-serverless-application.md). JupyterLab Vous pouvez utiliser la console SageMaker AI ou le script suivant. Par la suite, toutes vos tâches Apache Spark ou Apache Hive créées à partir de votre bloc-notes accéderont uniquement aux données et aux ressources autorisées par les politiques attachées au rôle d’exécution sélectionné.
**Important**  
Si vous n'effectuez pas cette étape, vous ne pourrez pas connecter un JupyterLab bloc-notes à une application EMR Serverless.

------
#### [ SageMaker AI console ]

   Pour associer vos rôles d'exécution à votre profil utilisateur ou à votre domaine à l'aide de la console SageMaker AI :

   1. Accédez à la console SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. Dans le volet de navigation de gauche, choisissez le **domaine**, puis sélectionnez le domaine à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations.

   1. 
      + Pour ajouter vos rôles d'exécution à votre domaine : dans l'onglet **Configurations des applications** de la page des **détails du domaine**, accédez à la **JupyterLab**section.
      + Pour ajouter vos rôles d'exécution à votre profil utilisateur : sur la page des **détails du domaine**, choisissez l'onglet **Profils utilisateur**, sélectionnez le profil utilisateur à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations. Dans l'onglet **Configurations de l'application**, accédez à la **JupyterLab**section.

   1. Choisissez **Modifier** et ajoutez le ARNs rôle que vous assumez et les rôles d'exécution d'exécution EMR Serverless.

   1. Sélectionnez **Soumettre**.

   Lors de votre prochaine connexion à une application EMR Serverless via JupyterLab, les rôles d'exécution devraient apparaître dans un menu déroulant pour être sélectionnés.

------
#### [ Python script ]

    Dans une JupyterLab application démarrée depuis un espace privé à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations, exécutez la commande suivante dans un terminal. Remplacez `domainID`, `user-profile-name`, `studio-accountID` et `EMRServerlessRuntimeExecutionRole` par leurs valeurs appropriées. Cet extrait de code met à jour les paramètres de profil utilisateur pour un profil utilisateur (`client.update_user_profile`) ou des paramètres de domaine () spécifiques au sein d'un domaine SageMaker AI. `client.update_domain` Plus précisément, il définit les rôles d’exécution à l’exécution pour Amazon EMR sans serveur, que vous avez créés précédemment. Cela permet également à l' JupyterLab application d'assumer un rôle IAM particulier (`AssumableRole`) pour exécuter des applications EMR sans serveur au sein du compte Amazon EMR.

   ```
   import botocore.session
   import json
   sess = botocore.session.get_session()
   client = sess.create_client('sagemaker')
   
   client.update_user_profile(
   DomainId="domainID", 
   UserProfileName="user-profile-name",
   DefaultUserSettings={
       'JupyterLabAppSettings': {
           'EmrSettings': {
               'AssumableRoleArns': ["arn:aws:iam::emr-accountID:role/AssumableRole"],
               'ExecutionRoleArns': ["arn:aws:iam::emr-accountID:role/EMRServerlessRuntimeExecutionRoleA", 
                                "arn:aws:iam::emr-accountID:role/AnotherRuntimeExecutionRole"]
           }
           
       }
   })
   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))
   ```

------

## Politiques de référence
<a name="studio-set-up-emr-serverless-permissions-reference"></a>
+ **Politiques EMR sans serveur** : cette politique permet de gérer les applications EMR sans serveur, notamment de les répertorier, de les créer (avec les balises SageMaker AI requises), de les démarrer, de les arrêter, d'obtenir des informations, de les supprimer, d'accéder aux points de terminaison Livy et de créer des tableaux de bord d'exécution des tâches. Cela permet également de transmettre le rôle d’exécution d’application EMR sans serveur requis au service.
  + `EMRServerlessListApplications`: autorise l' ListApplications action sur toutes les ressources EMR Serverless de la région et du compte spécifiés. AWS 
  + `EMRServerlessPassRole`: Permet de transmettre le ou les rôles d'exécution spécifiés dans le AWS compte fourni, mais uniquement lorsque le rôle est transmis au`emr-serverless.amazonaws.com service`. 
  + `EMRServerlessCreateApplicationAction`: autorise les TagResource actions CreateApplication et sur les ressources EMR sans serveur dans la région et le compte spécifiés. AWS Toutefois, cela nécessite que les ressources créées ou balisées aient des clés de balise spécifiques (`sagemaker:domain-arn`, `sagemaker:user-profile-arn` et `sagemaker:space-arn`) présentes avec des valeurs non null.
  + `EMRServerlessDenyTaggingAction`: les UntagResource actions TagResource et sur les ressources EMR Serverless dans la région et le AWS compte spécifiés si aucune des clés de balise spécifiées (`sagemaker:domain-arn`,`sagemaker:user-profile-arn`, et`sagemaker:space-arn`) n'est définie pour les ressources.
  + `EMRServerlessActions` : autorise diverses actions (`StartApplication`, `StopApplication`, `GetApplication`, `DeleteApplication`, `AccessLivyEndpoints` et `GetDashboardForJobRun`) sur les ressources EMR sans serveur, mais uniquement si les clés de balise spécifiées (`sagemaker:domain-arn`, `sagemaker:user-profile-arn` et `sagemaker:space-arn`) des ressources sont définies avec des valeurs non null.

  La politique IAM définie dans le document JSON fourni accorde ces autorisations, mais limite cet accès à la présence de balises SageMaker AI spécifiques sur les applications EMR Serverless afin de garantir que seules les ressources Amazon EMR Serverless associées à un domaine AI, un profil utilisateur et un espace SageMaker particuliers peuvent être gérées. 

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "EMRServerlessListApplications",
              "Effect": "Allow",
              "Action": [
                  "emr-serverless:ListApplications"
              ],
              "Resource": "arn:aws:emr-serverless:us-east-1:111122223333:/*"
          },
          {
              "Sid": "EMRServerlessPassRole",
              "Effect": "Allow",
              "Action": "iam:PassRole",
              "Resource": "arn:aws:iam::111122223333:role/EMRServerlessAppRuntimeRole",
              "Condition": {
                  "StringLike": {
                      "iam:PassedToService": "emr-serverless.amazonaws.com"
                  }
              }
          },
          {
              "Sid": "EMRServerlessCreateApplicationAction",
              "Effect": "Allow",
              "Action": [
                  "emr-serverless:CreateApplication",
                  "emr-serverless:TagResource"
              ],
              "Resource": "arn:aws:emr-serverless:us-east-1:111122223333:/*",
              "Condition": {
                  "ForAllValues:StringEquals": {
                      "aws:TagKeys": [
                          "sagemaker:domain-arn",
                          "sagemaker:user-profile-arn",
                          "sagemaker:space-arn"
                      ]
                  },
                  "Null": {
                      "aws:RequestTag/sagemaker:domain-arn": "false",
                      "aws:RequestTag/sagemaker:user-profile-arn": "false",
                      "aws:RequestTag/sagemaker:space-arn": "false"
                  }
              }
          },
          {
              "Sid": "EMRServerlessDenyTaggingAction",
              "Effect": "Deny",
              "Action": [
                  "emr-serverless:TagResource",
                  "emr-serverless:UntagResource"
              ],
              "Resource": "arn:aws:emr-serverless:us-east-1:111122223333:/*",
              "Condition": {
                  "Null": {
                      "aws:ResourceTag/sagemaker:domain-arn": "true",
                      "aws:ResourceTag/sagemaker:user-profile-arn": "true",
                      "aws:ResourceTag/sagemaker:space-arn": "true"
                  }
              }
          },
          {
              "Sid": "EMRServerlessActions",
              "Effect": "Allow",
              "Action": [
                  "emr-serverless:StartApplication",
                  "emr-serverless:StopApplication",
                  "emr-serverless:GetApplication",
                  "emr-serverless:DeleteApplication",
                  "emr-serverless:AccessLivyEndpoints",
                  "emr-serverless:GetDashboardForJobRun"
              ],
              "Resource": "arn:aws:emr-serverless:us-east-1:111122223333:/applications/*",
              "Condition": {
                  "Null": {
                      "aws:ResourceTag/sagemaker:domain-arn": "false",
                      "aws:ResourceTag/sagemaker:user-profile-arn": "false",
                      "aws:ResourceTag/sagemaker:space-arn": "false"
                  }
              }
          }
      ]
  }
  ```

------
+ **Politique relative aux actions de mise à jour du domaine, du profil utilisateur et de l'espace** : La politique suivante autorise la mise à jour des domaines SageMaker AI, des profils utilisateur et des espaces dans la région et le AWS compte spécifiés.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "SageMakerUpdateResourcesPolicy",
              "Effect": "Allow",
              "Action": [
                  "sagemaker:UpdateDomain",
                  "sagemaker:UpdateUserprofile",
                  "sagemaker:UpdateSpace"
              ],
              "Resource": [
                  "arn:aws:sagemaker:us-east-1:111122223333:domain/*",
                  "arn:aws:sagemaker:us-east-1:111122223333:user-profile/*"
              ]
          }
      ]
  }
  ```

------

# Création d’applications EMR sans serveur depuis Studio
<a name="create-emr-serverless-application"></a>

Les scientifiques des données et les ingénieurs de données peuvent créer des applications EMR sans serveur directement depuis l’interface utilisateur de Studio. Avant de commencer, assurez-vous d’avoir configuré les autorisations nécessaires, comme décrit dans la section [Configurez les autorisations pour activer la mise en vente et le lancement des applications Amazon EMR depuis Studio SageMaker](studio-emr-serverless-permissions.md). Ces autorisations permettent à Studio de créer, de démarrer, de visualiser et de résilier les applications, ainsi que d’y accéder.

Pour créer une application EMR sans serveur depuis Studio :

1. Dans l’interface utilisateur de Studio, accédez au panneau de gauche et sélectionnez le nœud **Données** dans le menu de navigation de gauche. Ensuite, faites défiler la page et choisissez l’option **Applications et clusters Amazon EMR**. Cela ouvre une page qui affiche les applications Amazon EMR auxquelles vous pouvez accéder depuis l’environnement Studio, sous l’onglet **Applications sans serveur**.

1. Choisissez le bouton **Créer une application sans serveur** dans le coin supérieur droit. Cela ouvre une page **Créer une application** semblable à celle que vous pouvez voir dans la [console EMR sans serveur](https://console.aws.amazon.com/emrserverless) lorsque vous choisissez **Utilisez des paramètres personnalisés** dans les **options de configuration de l’application**.

1. Fournissez les informations nécessaires pour votre application, y compris un nom et les paramètres configurables spécifiques que vous souhaitez définir, puis choisissez **Créer une application**.  
![\[Formulaire de création d’une application EMR sans serveur depuis Studio.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-serverless-create-app.png)

   Tous les paramètres de configuration ont des valeurs par défaut et leur modification est facultative. Pour obtenir des informations détaillées sur chaque paramètre disponible, consultez [Configuration d’une application](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/application-capacity.html) dans le Guide de l’utilisateur EMR sans serveur.
**Note**  
Au cours du processus de création de l’application dans l’interface utilisateur de Studio, vous pouvez **créer une application** ou **créer et démarrer une application**. En fonction de votre choix, l’application présentera l’état `Creating` ou `Starting` respectivement.  
Si vous choisissez de créer l’application sans la démarrer immédiatement, assurez-vous que l’option **Démarrer automatiquement l’application lors de la soumission de la tâche** reste sélectionnée. Cela garantira que l’application passera automatiquement à l’état `Starting` lorsque vous soumettrez ultérieurement une tâche à exécuter dessus. 
Pour la configuration la plus simple, nous vous recommandons de laisser l’option **Cloud privé virtuel (VPC)** définie sur sa valeur par défaut, à savoir **Aucune connectivité réseau aux ressources de votre VPC**, dans la section **Connexions réseau**. Cela permet de créer l’application au sein de votre VPC de domaine sans nécessiter de configuration réseau supplémentaire.  
 Dans tous les autres cas, veillez à effectuer les étapes suivantes :   
Regardez votre VPCs.
Ajoutez des routes dans les tables de routage de vos sous-réseaux privés.
Configurez vos groupes de sécurité comme indiqué dans [Configuration de l’accès réseau pour votre cluster Amazon EMR](studio-notebooks-emr-networking.md).
Cela garantit la configuration de mise en réseau appropriée pour votre application, au-delà de l’option **Aucune connectivité réseau** par défaut.
Pour les applications créées à partir de l’interface utilisateur de Studio Classic, la configuration suivante est automatiquement appliquée :  
Un point de terminaison Apache Livy activé.
L’application est balisée avec les éléments suivants :  
sagemaker : user-profile-arn
sagemaker:domain-arn
sagemaker:space-arn
Si vous créez une application en dehors de Studio, veillez à activer manuellement le point de terminaison Apache Livy et à appliquer le même ensemble de balises à l’application.

Une fois l’application créée, l’interface utilisateur de Studio Classic affiche un message *L’application a été créée avec succès* et la nouvelle application apparaît dans la liste des **applications sans serveur**.

Pour vous connecter à votre application EMR sans serveur, consultez [Connexion à une application EMR sans serveur depuis Studio](connect-emr-serverless-application.md).

# Connexion à une application EMR sans serveur depuis Studio
<a name="connect-emr-serverless-application"></a>

Les scientifiques des données et les ingénieurs de données peuvent découvrir une application EMR sans serveur et s’y connecter directement depuis l’interface utilisateur de Studio. Avant de commencer, assurez-vous d’avoir créé une application EMR sans serveur en suivant les instructions fournies dans [Création d’applications EMR sans serveur depuis Studio](create-emr-serverless-application.md).

Vous pouvez connecter une application EMR Serverless à un nouveau JupyterLab bloc-notes directement depuis l'interface utilisateur de Studio, ou choisir d'établir la connexion dans le bloc-notes d'une application en cours d'exécution. JupyterLab 

**Important**  
Lorsque vous utilisez Studio, vous pouvez uniquement découvrir et vous connecter aux applications EMR Serverless pour les JupyterLab applications lancées depuis des espaces privés. Assurez-vous que les applications EMR Serverless sont situées dans la même AWS région que votre environnement Studio. Votre JupyterLab espace doit utiliser une version image de SageMaker distribution `1.10` ou supérieure.

**Pour connecter une application EMR Serverless à un nouveau JupyterLab bloc-notes depuis l'interface utilisateur de Studio :**

1. Dans l’interface utilisateur de Studio, accédez au panneau de gauche et sélectionnez le nœud **Données** dans le menu de navigation de gauche. Ensuite, faites défiler la page et choisissez l’option **Applications et clusters Amazon EMR**. Cela ouvre une page qui affiche les applications Amazon EMR auxquelles vous pouvez accéder depuis l’environnement Studio, sous l’onglet **Applications sans serveur**.
**Note**  
Si vous ou votre administrateur avez configuré les autorisations pour autoriser l’accès intercompte aux applications EMR sans serveur, vous pouvez visualiser une liste consolidée des applications pour tous les comptes auxquels vous avez accordé l’accès à Studio.

1. Sélectionnez une application EMR sans serveur que vous souhaitez connecter à un nouveau bloc-notes, puis choisissez **Attacher à un bloc-notes**. Cela ouvre une fenêtre modale affichant la liste de vos JupyterLab espaces.

1. 
   + Sélectionnez l'espace privé à partir duquel vous souhaitez lancer une JupyterLab application, puis choisissez **Ouvrir un bloc-notes**. Cela lance une JupyterLab application depuis l'espace que vous avez choisi et ouvre un nouveau bloc-notes.
   + Vous pouvez également créer un nouvel espace privé en choisissant le bouton **Créer un nouvel espace** en haut de la fenêtre modale. Entrez un nom pour votre espace, puis choisissez **Créer l’espace et ouvrir le bloc-notes**. Cela crée un espace privé avec le type d'instance par défaut et SageMaker la dernière image de distribution disponible, lance une JupyterLab application et ouvre un nouveau bloc-notes.

1. Choisissez le nom du rôle d’exécution IAM à l’exécution que votre application EMR sans serveur peut assumer pour l’exécution de la tâche. Après cette sélection, une commande de connexion remplit la première cellule de votre bloc-notes et initie la connexion avec l’application EMR sans serveur.
**Important**  
Pour connecter correctement un JupyterLab bloc-notes à une application EMR Serverless, vous devez d'abord associer la liste des rôles d'exécution à votre domaine ou à votre profil utilisateur, comme indiqué dans. [Configurez les autorisations pour activer la mise en vente et le lancement des applications Amazon EMR depuis Studio SageMaker](studio-emr-serverless-permissions.md) Si vous n’effectuez pas cette étape, vous ne pourrez pas établir la connexion. 

   Une fois la connexion établie, un message confirme la connexion, démarre votre application EMR sans serveur et lance votre session Spark.
**Note**  
Lorsque vous vous connectez à une application EMR sans serveur, son statut passe de `Stopped` ou `Created` à `Started`.

**Vous pouvez également vous connecter à un cluster à partir d'un JupyterLab bloc-notes.**

1. Choisissez le bouton **Cluster** en haut à droite de votre bloc-notes. Cela ouvre une fenêtre modale répertoriant les applications EMR sans serveur auxquelles vous pouvez accéder. Vous pouvez voir les applications dans l’onglet **Applications sans serveur**.

1. Sélectionnez l’application à laquelle vous souhaitez vous connecter, puis choisissez **Connecter**.

1. EMR sans serveur prend en charge les rôles IAM d’exécution qui ont été préchargés lors de la définition des autorisations requises, comme indiqué dans [Configurez les autorisations pour activer la mise en vente et le lancement des applications Amazon EMR depuis Studio SageMaker](studio-emr-serverless-permissions.md). Si vous n’effectuez pas cette étape, vous ne pourrez pas établir la connexion. 

   Vous pouvez sélectionner votre rôle dans le menu déroulant du **rôle d’exécution Amazon EMR**. Lorsque vous vous connectez à EMR sans serveur, Studio ajoute un bloc de code à une cellule active de votre bloc-notes pour établir la connexion.

1. Une cellule active se remplit et s’exécute. Cette cellule contient la commande magique de connexion permettant de connecter votre bloc-notes à votre application.

   Une fois la connexion établie, un message confirme la connexion et le démarrage de l’application Spark. Vous pouvez commencer à soumettre vos tâches de traitement des données à votre application EMR sans serveur.

# Arrêt ou suppression d’une application EMR sans serveur depuis l’interface utilisateur de Studio
<a name="terminate-emr-serverless-application"></a>

Vous pouvez arrêter (passer à l’état `Stopped`) ou supprimer (passer à l’état `Deleted`) une application EMR sans serveur de la liste des applications de l’interface utilisateur de Studio. 

**Pour arrêter ou supprimer une application, accédez à la liste des applications EMR sans serveur disponibles.**

1. Dans l’interface utilisateur de Studio, accédez au panneau de gauche et sélectionnez le nœud **Données** dans le menu de navigation de gauche. Ensuite, faites défiler la page et choisissez l’option **Applications et clusters Amazon EMR**. Cela ouvre une page qui affiche les applications Amazon EMR auxquelles vous pouvez accéder depuis l’environnement Studio, sous l’onglet **Applications sans serveur**.

1. Sélectionnez le nom de l’application que vous souhaitez arrêter ou supprimer, puis choisissez le bouton **Arrêter** ou **Supprimer** correspondant.

1. Un message de confirmation vous informe que toute tâche en attente sera définitivement perdue. 

# Préparation des données à l’aide d’Amazon EMR
<a name="studio-notebooks-emr-cluster"></a>

**Important**  
Amazon SageMaker Studio et Amazon SageMaker Studio Classic sont deux des environnements d'apprentissage automatique que vous pouvez utiliser pour interagir avec l' SageMaker IA.  
Si votre domaine a été créé après le 30 novembre 2023, Studio est votre expérience par défaut.  
Si votre domaine a été créé avant le 30 novembre 2023, Amazon SageMaker Studio Classic est votre expérience par défaut. Pour utiliser Studio si Amazon SageMaker Studio Classic est votre expérience par défaut, consultez[Migration depuis Amazon SageMaker Studio Classic](studio-updated-migrate.md).  
Lorsque vous migrez d'Amazon SageMaker Studio Classic vers Amazon SageMaker Studio, il n'y a aucune perte de disponibilité des fonctionnalités. Studio Classic existe également sous forme d'application au sein d'Amazon SageMaker Studio pour vous aider à exécuter vos anciens flux de travail d'apprentissage automatique.

Amazon SageMaker Studio et Studio Classic sont intégrés à [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html). [Dans les blocs-notes JupyterLab et Studio Classic, les data scientists et les ingénieurs de données peuvent découvrir et se connecter aux clusters Amazon EMR existants, puis explorer, visualiser et préparer de manière interactive des données à grande échelle pour le machine learning à l'[aide d'Apache Spark, Apache](https://aws.amazon.com/emr/features/spark)[Hive ou Presto](https://aws.amazon.com/emr/features/hive).](https://aws.amazon.com/emr/features/presto) En un seul clic, ils peuvent accéder à l’interface utilisateur de Spark pour surveiller le statut et les métriques de leurs tâches Spark sans quitter leur bloc-notes.

Les administrateurs peuvent créer des [modèles CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) qui définissent les clusters Amazon EMR. Ils peuvent ensuite mettre ces modèles de cluster à disposition des utilisateurs de Studio et de Studio Classic dans [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/userguide/end-user-console.html) pour qu’ils puissent les lancer. Les scientifiques des données peuvent ensuite choisir un modèle prédéfini pour auto-provisionner un cluster Amazon EMR directement depuis leur environnement Studio. Les administrateurs peuvent paramétrer davantage les modèles pour permettre aux utilisateurs de choisir les aspects du cluster dans le cadre de valeurs prédéfinies. Par exemple, les utilisateurs peuvent souhaiter spécifier le nombre de nœuds principaux ou sélectionner le type d’instance d’un nœud dans un menu déroulant.

Les administrateurs peuvent ainsi contrôler l'organisation, la sécurité et la configuration réseau des clusters Amazon EMR. CloudFormation Les scientifiques des données et les ingénieurs de données peuvent ensuite personnaliser ces modèles pour leurs charges de travail afin de créer des clusters Amazon EMR à la demande directement depuis Studio et Studio Classic sans configurer de configurations complexes. Les utilisateurs peuvent résilier les clusters Amazon EMR après utilisation.
+ **Si vous êtes administrateur** :

  Assurez-vous d’avoir activé la communication entre Studio ou Studio Classic et les clusters Amazon EMR. Pour obtenir des instructions, consultez la section [Configuration de l’accès réseau pour votre cluster Amazon EMR](studio-notebooks-emr-networking.md). Une fois cette communication activée, vous pouvez :
  + [Configuration des CloudFormation modèles Amazon EMR dans le Service Catalog](studio-notebooks-set-up-emr-templates.md)
  + [Configuration de la liste des clusters Amazon EMR](studio-notebooks-configure-discoverability-emr-cluster.md)
+ **Si vous êtes un scientifique des données ou un ingénieur de données**, vous pouvez :
  + [Lancement d’un cluster Amazon EMR depuis Studio ou Studio Classic](studio-notebooks-launch-emr-cluster-from-template.md)
  + [Établissement de la liste des clusters Amazon EMR depuis Studio ou Studio Classic](discover-emr-clusters.md)
  + [Connectez-vous à un cluster Amazon EMR depuis SageMaker Studio ou Studio Classic](connect-emr-clusters.md)
  + [Résiliation d’un cluster Amazon EMR depuis Studio ou Studio Classic](terminate-emr-clusters.md)
  + [Accès à l’interface utilisateur de Spark depuis Studio ou Studio Classic](studio-notebooks-access-spark-ui.md)

**Topics**
+ [Démarrage rapide : création d'un domaine sandbox SageMaker AI pour lancer des clusters Amazon EMR dans Studio](studio-notebooks-emr-cluster-quickstart.md)
+ [Guide de l’administrateur](studio-emr-admin-guide.md)
+ [Guide de l’utilisateur](studio-emr-user-guide.md)
+ [Blogs et livres blancs](studio-notebooks-emr-resources.md)
+ [Résolution des problèmes](studio-notebooks-emr-troubleshooting.md)

# Démarrage rapide : création d'un domaine sandbox SageMaker AI pour lancer des clusters Amazon EMR dans Studio
<a name="studio-notebooks-emr-cluster-quickstart"></a>

Cette section explique comment configurer rapidement un environnement de test complet dans Amazon SageMaker Studio. Vous allez créer un nouveau domaine Studio qui permettra aux utilisateurs de lancer de nouveaux clusters Amazon EMR directement depuis Studio. Cette procédure fournit un exemple de bloc-notes que vous pouvez connecter à un cluster Amazon EMR pour commencer à exécuter des charges de travail Spark. À l'aide de ce bloc-notes, vous allez créer un système de génération augmentée (RAG) à l'aide du traitement distribué Amazon EMR Spark et de la base de données vectorielle. OpenSearch 

**Note**  
Pour commencer, connectez-vous à la console de AWS gestion à l'aide d'un compte utilisateur Gestion des identités et des accès AWS (IAM) doté d'autorisations d'administrateur. Pour en savoir plus sur la façon de s’inscrire à un compte AWS et de créer un utilisateur doté d’un accès administratif, consultez [Compléter les prérequis SageMaker relatifs à Amazon AI](gs-set-up.md).

**Pour configurer votre environnement de test Studio et commencer à exécuter des tâches Spark :**
+ [Étape 1 : créer un domaine SageMaker AI pour lancer des clusters Amazon EMR dans Studio](#studio-notebooks-emr-cluster-quickstart-setup)
+ [Étape 2 : Lancement d’un nouveau cluster Amazon EMR depuis l’interface utilisateur de Studio](#studio-notebooks-emr-cluster-quickstart-launch)
+ [Étape 3 : Connecter un JupyterLab bloc-notes au cluster Amazon EMR](#studio-notebooks-emr-cluster-quickstart-connect)
+ [Étape 4 : Nettoyez votre CloudFormation pile](#studio-notebooks-emr-cluster-quickstart-clean-stack)

## Étape 1 : créer un domaine SageMaker AI pour lancer des clusters Amazon EMR dans Studio
<a name="studio-notebooks-emr-cluster-quickstart-setup"></a>

Dans les étapes suivantes, vous appliquez une CloudFormation pile pour créer automatiquement un nouveau domaine d' SageMaker IA. La pile crée également un profil utilisateur et configure l’environnement et les autorisations nécessaires. Le domaine SageMaker AI est configuré pour vous permettre de lancer directement des clusters Amazon EMR depuis Studio. Dans cet exemple, les clusters Amazon EMR sont créés dans le même AWS compte que SageMaker AI sans authentification. [Vous pouvez trouver des CloudFormation piles supplémentaires prenant en charge diverses méthodes d'authentification telles que Kerberos dans le référentiel getting\$1started.](https://github.com/aws-samples/sagemaker-studio-emr/tree/main/cloudformation/getting_started) GitHub 

**Note**  
SageMaker L'IA autorise 5 domaines Studio par AWS compte et Région AWS par défaut. Avant de créer votre pile, assurez-vous que votre compte ne comporte pas plus de 4 domaines dans votre région.

**Suivez ces étapes pour configurer un domaine SageMaker AI afin de lancer des clusters Amazon EMR depuis Studio.**

1. Téléchargez le fichier brut de ce [CloudFormation modèle](https://github.com/aws-samples/sagemaker-studio-foundation-models/blob/main/workshop-artifacts/cfn/workshop-cfn.yaml) depuis le `sagemaker-studio-emr` GitHub référentiel.

1. Accédez à la CloudFormation console : [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)

1. Choisissez **Créer une pile** et sélectionnez **Avec de nouvelles ressources (standard)** dans le menu déroulant.

1. À l’**Étape 1** :

   1. Dans la section **Préparer le modèle**, sélectionnez **Choisir un modèle existant**.

   1. Dans la section **Spécifier un modèle**, sélectionnez **Charger un modèle de fichier**.

   1. Téléchargez le CloudFormation modèle téléchargé et choisissez **Next**.

1. À **l'étape 2**, entrez un **nom de pile **SageMakerDomainName****, puis choisissez **Next**.

1. À l’**Étape 3**, conservez toutes les valeurs par défaut et choisissez **Suivant**.

1. À l’**Étape 4**, cochez la case pour accuser réception de la création de ressources et choisissez **Créer une pile**. Cela crée un domaine Studio dans votre compte et dans votre région.

## Étape 2 : Lancement d’un nouveau cluster Amazon EMR depuis l’interface utilisateur de Studio
<a name="studio-notebooks-emr-cluster-quickstart-launch"></a>

Dans les étapes suivantes, vous allez créer un nouveau cluster Amazon EMR à partir de l’interface utilisateur de Studio.

1. Accédez à la console SageMaker AI [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)et choisissez **Domaines** dans le menu de gauche.

1. Cliquez sur votre nom de domaine **Generative AIDomain** pour ouvrir la page des **détails du domaine**.

1. Lancez Studio depuis le profil utilisateur `genai-user`.

1. Dans le volet de navigation de gauche, accédez à **Données** puis à **Clusters Amazon EMR**.

1. Sur la page Clusters Amazon EMR, choisissez **Créer**. **Sélectionnez le modèle **SageMaker Studio Domain No Auth EMR** créé par CloudFormation la pile, puis choisissez Next.**

1. Entrez un nom pour le nouveau cluster Amazon EMR. Mettez éventuellement à jour d’autres paramètres tels que le type d’instance des nœuds principaux, le délai d’inactivité ou le nombre de nœuds principaux.

1. Choisissez **Créer une ressource** pour lancer le nouveau cluster Amazon EMR. 

   Après avoir créé le cluster Amazon EMR, suivez le statut sur la page **Clusters EMR**. Lorsque le statut passe à `Running/Waiting`, votre cluster Amazon EMR est prêt à être utilisé dans Studio.

## Étape 3 : Connecter un JupyterLab bloc-notes au cluster Amazon EMR
<a name="studio-notebooks-emr-cluster-quickstart-connect"></a>

Dans les étapes suivantes, vous allez connecter un bloc-notes JupyterLab à votre cluster Amazon EMR en cours d'exécution. Dans cet exemple, vous importez un bloc-notes vous permettant de créer un système RAG (Retrieval Augmented Generation) à l'aide du traitement distribué Amazon EMR Spark et de la base de données vectorielle. OpenSearch 

1. 

**Lancement JupyterLab**

   Depuis Studio, lancez l' JupyterLab application.

1. 

**Création d’un espace privé**

   Si vous n'avez pas créé d'espace pour votre JupyterLab application, choisissez **Créer un JupyterLab espace**. Entrez un nom pour cet espace et conservez l’espace comme **Privé**. Laissez tous les autres paramètres à leurs valeurs par défaut, puis choisissez **Créer un espace**. 

   Sinon, exécutez votre JupyterLab espace pour lancer une JupyterLab application.

1. 

**Déploiement de votre LLM et de vos modèles de vectorisation à des fins d’inférence**
   + Dans le menu supérieur, choisissez **Fichier**, **Nouveau**, puis **Terminal**.
   + Dans le terminal, exécutez la commande suivante.

     ```
     wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-00-setup/Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb
     mkdir AWSGuides
     cd AWSGuides
     wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/AWSGuides/AmazonSageMakerDeveloperGuide.pdf
     wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/AWSGuides/EC2DeveloperGuide.pdf
     wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/AWSGuides/S3DeveloperGuide.pdf
     ```

     Cela permet d’extraire le bloc-notes `Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb` dans votre répertoire local et de télécharger trois fichiers PDF dans un dossier `AWSGuides` local.
   + Ouvrez `lab-00-setup/Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb`, conservez le noyau `Python 3 (ipykernel)` et exécutez chaque cellule.
**Avertissement**  
Dans la section **Contrat de licence Llama 2**, veillez à accepter le CLUF Llama2 avant de continuer.  
Le bloc-notes déploie deux modèles, `Llama 2` et `all-MiniLM-L6-v2 Models`, sur `ml.g5.2xlarge` pour inférence.

     Le déploiement des modèles et la création des points de terminaison peuvent prendre un certain temps.

1. 

**Ouverture de votre bloc-notes principal**

   Dans JupyterLab, ouvrez votre terminal et exécutez la commande suivante.

   ```
   cd ..
   wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb
   ```

   Vous devriez voir le `Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb` bloc-notes supplémentaire dans le panneau de gauche de JupyterLab.

1. 

**Choix d’un noyau `PySpark`**

   Ouvrez votre bloc-notes `Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb` et assurez-vous d’utiliser le noyau `SparkMagic PySpark`. Vous pouvez changer de noyau en haut à droite de votre bloc-notes. Choisissez le nom actuel du noyau pour ouvrir une fenêtre modale de sélection de noyau, puis choisissez `SparkMagic PySpark`.

1. 

**Connexion de votre bloc-notes au cluster**

   1. En haut à droite de votre bloc-notes, choisissez **Cluster**. Cette action ouvre une fenêtre modale qui répertorie tous les clusters en cours d’exécution auxquels vous avez l’autorisation d’accéder. 

   1. Sélectionnez votre cluster, puis choisissez **Se connecter**. Une nouvelle fenêtre modale de sélection du type d’informations d’identification s’ouvre.

   1. Choisissez **Aucune information d’identification**, puis **Se connecter**.  
![\[Modal montrant la sélection des informations d'identification Amazon EMR pour les JupyterLab ordinateurs portables.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-credential-selection.png)

   1. Une cellule de bloc-notes est remplie et exécutée automatiquement. La cellule de bloc-notes charge l’extension `sagemaker_studio_analytics_extension.magics`, qui fournit des fonctionnalités permettant de se connecter au cluster Amazon EMR. Elle utilise ensuite la commande magique `%sm_analytics` pour établir la connexion à votre cluster Amazon EMR et à l’application Spark.
**Note**  
Assurez-vous que le type d’authentification de la chaîne de connexion à votre cluster Amazon EMR est défini sur `None`. Ceci est illustré par la valeur `--auth-type None` dans l’exemple suivant. Vous pouvez modifier le champ, si nécessaire.  

      ```
      %load_ext sagemaker_studio_analytics_extension.magics
      %sm_analytics emr connect --verify-certificate False --cluster-id your-cluster-id --auth-type None --language python
      ```

   1. Une fois que vous avez établi la connexion, le message de sortie de votre cellule de connexion devrait afficher vos informations `SparkSession`, notamment l’identifiant de votre cluster, l’identifiant de l’application `YARN` et un lien vers l’interface utilisateur Spark pour surveiller vos tâches Spark.

Vous êtes prêt à utiliser le bloc-notes `Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb`. Cet exemple de bloc-notes exécute des PySpark charges de travail distribuées pour créer un système RAG à l'aide LangChain de et. OpenSearch

## Étape 4 : Nettoyez votre CloudFormation pile
<a name="studio-notebooks-emr-cluster-quickstart-clean-stack"></a>

Une fois que vous avez terminé, assurez-vous de résilier vos deux points de terminaison et de supprimer votre pile CloudFormation pour éviter des frais ultérieurs. La suppression de la pile nettoie toutes les ressources provisionnées par la pile.

**Pour supprimer votre CloudFormation pile lorsque vous en avez terminé**

1. Accédez à la CloudFormation console : [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)

1. Sélectionnez la pile que vous voulez supprimer. Vous pouvez la rechercher par son nom ou la trouver dans la liste des piles.

1. Cliquez sur le bouton **Supprimer** pour finaliser la suppression de la pile, puis sur **Supprimer** à nouveau pour confirmer que toutes les ressources créées par la pile seront supprimées.

   Attendez que la suppression de la pile se termine. Cela peut prendre quelques minutes. CloudFormation nettoie automatiquement toutes les ressources définies dans le modèle de pile.

1. Vérifiez que toutes les ressources créées par la pile ont été supprimées. Par exemple, vérifiez s’il n’y a pas de cluster Amazon EMR restant.

**Pour supprimer les points de terminaison d’API d’un modèle**

1. Accédez à la console SageMaker AI : [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Dans le volet de navigation, choisissez **Inférence**, puis **Points de terminaison**.

1. Sélectionnez le point de terminaison `hf-allminil6v2-embedding-ep`, puis choisissez **Supprimer** dans la liste déroulante **Actions**. Répétez l’étape pour le point de terminaison `meta-llama2-7b-chat-tg-ep`.

# Guide de l’administrateur
<a name="studio-emr-admin-guide"></a>

Cette section fournit les conditions préalables et les instructions de mise en réseau pour autoriser la communication entre Studio ou Studio Classic et les clusters Amazon EMR. Il couvre différents scénarios de déploiement : lorsque Studio et Amazon EMR sont fournis au sein d'Amazon privé VPCs sans accès public à Internet, ou lorsqu'ils doivent communiquer via Internet.

Il explique comment les administrateurs peuvent utiliser les modèles pour mettre des CloudFormation modèles AWS Service Catalog à la disposition de Studio, permettant ainsi aux data scientists de découvrir et de provisionner eux-mêmes les clusters Amazon EMR directement depuis Studio. Cela implique de créer un portefeuille Service Catalog, d’accorder les autorisations requises, de référencer les modèles Amazon EMR et de les paramétrer pour permettre des personnalisations lors de la création du cluster.

Enfin, elle fournit des conseils sur la configuration de la découvrabilité des clusters Amazon EMR en cours d’exécution existants à partir de Studio et de Studio Classic, couvrant les scénarios d’accès à un seul compte et intercompte, ainsi que les autorisations IAM nécessaires.

**Topics**
+ [Configuration des CloudFormation modèles Amazon EMR dans le Service Catalog](studio-notebooks-set-up-emr-templates.md)
+ [Configuration de la liste des clusters Amazon EMR](studio-notebooks-configure-discoverability-emr-cluster.md)
+ [Configuration des rôles d’exécution IAM pour l’accès aux clusters Amazon EMR dans Studio](studio-notebooks-emr-cluster-rbac.md)
+ [Politiques de référence](studio-set-up-emr-permissions-reference.md)

# Configuration des CloudFormation modèles Amazon EMR dans le Service Catalog
<a name="studio-notebooks-set-up-emr-templates"></a>

Cette rubrique part du principe que les administrateurs connaissent bien [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)les [portefeuilles et les produits](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-portfolio.html) qu' AWS Service Catalog il contient, ainsi qu'[Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-gs.html).

Pour simplifier la création de clusters Amazon EMR à partir de Studio, les administrateurs peuvent enregistrer un [ CloudFormation modèle Amazon EMR](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html) en tant que produit dans un portefeuille. [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html) Pour mettre le modèle à la disposition des data scientists, ils doivent associer le portefeuille au rôle d'exécution de l' SageMaker IA 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 CloudFormation modèles Amazon EMR peuvent permettre aux utilisateurs finaux de 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 end-to-end [CloudFormation piles](https://github.com/aws-samples/sagemaker-studio-emr/tree/main/cloudformation/getting_started) pour configurer un domaine Studio ou Studio Classic, un profil utilisateur, un portefeuille Service Catalog et remplir un modèle de lancement Amazon EMR. Les étapes suivantes mettent en évidence les paramètres spécifiques que les administrateurs doivent appliquer à leur end-to-end stack pour permettre à Studio ou Studio Classic d'accéder aux produits Service Catalog et de provisionner des clusters Amazon EMR.

**Note**  
Le GitHub référentiel [aws-samples/ sagemaker-studio-emr](https://github.com/aws-samples/sagemaker-studio-emr/tree/main/cloudformation/getting_started) contient des exemples de end-to-end CloudFormation piles qui déploient les rôles IAM, le réseau, le domaine, le profil SageMaker 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 cluster Amazon EMR. Dans ces exemples de modèles, la CloudFormation pile parent transmet les paramètres du VPC SageMaker AI, du groupe de sécurité et du sous-réseau au modèle de cluster Amazon EMR.  
Le référentiel [sagemaker-studio-emr/cloudformation/emr\$1servicecatalog\$1templates](https://github.com/aws-samples/sagemaker-studio-emr/tree/main/cloudformation/emr_servicecatalog_templates) contient plusieurs exemples de modèles de lancement Amazon CloudFormation EMR, notamment des options pour les déploiements à compte unique et multicompte.  
Consultez [Connectez-vous à un cluster Amazon EMR depuis SageMaker Studio ou Studio Classic](connect-emr-clusters.md) pour plus d’informations sur les méthodes d’authentification que vous pouvez utiliser pour vous connecter à un cluster Amazon EMR.

Pour permettre aux data scientists de découvrir les CloudFormation modèles Amazon EMR 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
<a name="studio-set-up-emr-prereq"></a>

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](studio-notebooks-emr-networking.md).
+ 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/](https://github.com/aws-samples/sagemaker-studio-emr/tree/main/cloudformation/getting_started). Les étapes suivantes mettent en évidence les configurations spécifiques de votre end-to-end stack pour permettre l'utilisation de modèles Amazon EMR dans Studio ou Studio Classic. 

## Étape 1 : associez votre portefeuille Service Catalog à l' SageMaker IA
<a name="studio-set-up-emr-service-catalog-portfolio"></a>

**Dans votre portefeuille Service Catalog**, associez votre ID de 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 de Service Catalog spécifié contenant des produits tels que les modèles Amazon EMR. Cela permet aux rôles assumés par l' SageMaker IA de lancer ces produits.

 Remplacez *SageMakerExecutionRole.Arn* et *SageMakerStudioEMRProductPortfolio.ID* par leurs valeurs réelles.

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

Pour plus de détails sur l’ensemble d’autorisations IAM requis, consultez la section sur les [autorisations](#studio-emr-permissions).

## Étape 2 : Référencement d’un modèle Amazon EMR dans un produit Service Catalog
<a name="studio-set-up-emr-service-catalog-product"></a>

**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 CloudFormation modèle 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.yaml
      Tags:
        - Key: "sagemaker:studio-visibility:emr"
          Value: "true"
```

## Étape 3 : paramétrer le modèle Amazon EMR CloudFormation
<a name="studio-set-up-emr-cfn-template"></a>

**Le CloudFormation modèle 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 les CloudFormation modèles Amazon EMR à disposition dans Studio, les data scientists 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 CloudFormation Amazon EMR pour créer un cluster Amazon EMR dans Studio ou Studio Classic.

![\[Illustration d'un formulaire dynamique assemblé à partir d'un modèle CloudFormation Amazon EMR pour créer un cluster Amazon EMR à partir de Studio ou Studio Classic.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-cluster-creation.png)


Consultez [Lancement d’un cluster Amazon EMR depuis Studio ou Studio Classic](studio-notebooks-launch-emr-cluster-from-template.md) 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
<a name="studio-emr-permissions"></a>

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 et vous connecter aux clusters Amazon EMR JupyterLab et aux applications Studio Classic lancées depuis des espaces privés. Assurez-vous que les clusters Amazon EMR sont situés dans la même AWS région que votre environnement Studio.

### Compte unique
<a name="studio-set-up-emr-permissions-singleaccount"></a>

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

1. **Étape 1** : Récupérez l'ARN du rôle d'exécution SageMaker AI utilisé par votre espace privé.

   Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultez[Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md).

   Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).

1. **Étape 2** : Attachez les autorisations suivantes au rôle d'exécution SageMaker AI accédant à vos clusters Amazon EMR.

   1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

   1. 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 (/). 

   1. Suivez le lien correspondant à votre rôle.

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

   1. 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](studio-set-up-emr-permissions-reference.md). Remplacez `region` et `accountID` par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

   1. Choisissez **Suivant**, puis fournissez un **nom de politique**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. 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 *Create Amazon EMRclusters policies* dans[Politiques de référence](studio-set-up-emr-permissions-reference.md). Remplacez `region` et `accountID` par 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](studio-notebooks-emr-cluster-rbac.md#studio-notebooks-emr-cluster-iam-same). 

### Compte croisé
<a name="studio-set-up-emr-permissions-crossaccount"></a>

Avant de commencer, récupérez l'ARN du rôle d'exécution de l' SageMaker IA utilisé par votre espace privé.

Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultez[Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md).

Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).

Si vos clusters Amazon EMR et Studio ou Studio Classic sont déployés dans des AWS comptes distincts, 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](studio-notebooks-emr-cluster-rbac.md#studio-notebooks-emr-cluster-iam-diff). 

#### Sur le compte des clusters Amazon EMR
<a name="studio-set-up-emr-permissions-crossaccount-emraccount"></a>

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* :

1. **Étape 1** : extrayez l’ARN du [rôle de service de votre cluster Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role.html). 

   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](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles.html#emr-iam-role-landing).

1. **Étape 2** : créez un rôle IAM personnalisé nommé `AssumableRole` avec la configuration suivante :
   + Autorisations : accordez les autorisations nécessaires à `AssumableRole` pour 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 `AssumableRole` afin d’autoriser l’endossement du rôle d’exécution (`SageMakerExecutionRole` dans 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 `AssumableRole` compte sur votre AWS compte Amazon EMR, procédez comme suit :

   1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

   1. Dans le volet de navigation de gauche, choisissez **Politique**, puis **Créer une politique**.

   1. 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](studio-set-up-emr-permissions-reference.md). Remplacez `region` et `accountID` par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

   1. Choisissez **Suivant**, puis fournissez un **nom de politique**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. Dans le volet de navigation de gauche, choisissez **Rôles**, puis **Créer un rôle**.

   1. Sur la page **Créer un rôle**, choisissez **Politique d’approbation personnalisée** comme entité de confiance.

   1. Collez le document JSON suivant dans la section **Politique d’approbation personnalisée**, puis choisissez **Suivant**.

------
#### [ For users of Studio and JupyterLab ]

      `studio-account`Remplacez-le par l'ID du compte Studio et `AmazonSageMaker-ExecutionRole` par le rôle d'exécution utilisé par votre JupyterLab espace.

------
#### [ 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 ]

      Remplacez `studio-account` par l’ID de compte Studio Classic.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:root"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

------

   1. Dans la page **Ajouter des autorisations**, ajoutez l’autorisation que vous venez de créer, puis choisissez **Suivant**.

   1. Sur la page **Vérifier**, entrez un nom pour le rôle, tel que `AssumableRole`, et une description facultative.

   1. 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)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html).

#### Sur le compte Studio
<a name="studio-set-up-emr-permissions-crossaccount-studioaccount"></a>

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

1. **Étape 1** : Récupérez l'ARN du rôle d'exécution SageMaker AI utilisé par votre espace privé.

   Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultez[Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md).

   Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).

1. **Étape 2** : Attachez les autorisations suivantes au rôle d'exécution SageMaker AI accédant à vos clusters Amazon EMR.

   1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

   1. 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 (/). 

   1. Suivez le lien correspondant à votre rôle.

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

   1. 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](studio-set-up-emr-permissions-reference.md). Remplacez `region` et `accountID` par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

   1. Choisissez **Suivant**, puis fournissez un **nom de politique**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. 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 `AssumableRole` puis d’exécuter les actions autorisées par la stratégie d’accès du rôle. Remplacez `emr-account` par l’ID du compte Amazon EMR et `AssumableRole` par le nom du rôle assumable créé dans le compte Amazon EMR.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "AllowRoleAssumptionForCrossAccountDiscovery",
                  "Effect": "Allow",
                  "Action": "sts:AssumeRole",
                  "Resource": [
                      "arn:aws:iam::111122223333:role/AssumableRole"
                  ]
              }
          ]
      }
      ```

------

   1. 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 *Create Amazon EMRclusters policies* dans[Politiques de référence](studio-set-up-emr-permissions-reference.md). Remplacez `region` et `accountID` par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

   1. (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](studio-set-up-emr-permissions-reference.md). 

1. **Étape 3** : associez vos rôles supposables (rôle d'accès) à votre domaine ou à votre profil utilisateur. JupyterLab les utilisateurs de Studio peuvent utiliser la console SageMaker AI ou le script fourni.

    Choisissez l’onglet qui correspond à votre cas d’utilisation.

------
#### [ Associate your assumable roles in JupyterLab using the SageMaker AI console ]

   Pour associer vos rôles supposés à votre profil utilisateur ou à votre domaine à l'aide de la console SageMaker AI :

   1. Accédez à la console SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. Dans le volet de navigation de gauche, choisissez le **domaine**, puis sélectionnez le domaine à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations.

   1. 
      + Pour ajouter vos rôles supposés (rôle d'accès) à votre domaine : dans l'onglet **Configurations de l'application** de la page des **détails du domaine**, accédez à la **JupyterLab**section.
      + Pour ajouter vos rôles supposés (rôle d'accès) à votre profil utilisateur : sur la page des **détails du domaine**, choisissez l'onglet **Profils utilisateurs, sélectionnez le profil utilisateur** à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations. Dans l'onglet **Configurations de l'application**, accédez à la **JupyterLab**section.

   1. Choisissez **Modifier** et ajoutez le ARNs rôle que vous assumez (rôle d'accès).

   1. Sélectionnez **Soumettre**.

------
#### [ Associate your assumable roles in JupyterLab using a Python script ]

    Dans une JupyterLab application démarrée depuis un espace utilisant le rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations, exécutez la commande suivante dans un terminal. Remplacez les valeurs `domainID`, `user-profile-name`, `emr-accountID` et `AssumableRole` (`EMRServiceRole` pour les [rôles d’exécution RBAC]()) par leurs valeurs appropriées. Cet extrait de code met à jour les paramètres du profil utilisateur pour un profil utilisateur (utilisation`client.update_userprofile`) ou des paramètres de domaine (utilisation`client.update_domain`) spécifiques au sein d'un domaine SageMaker AI. Plus précisément, cela permet à l' JupyterLab application d'assumer un rôle IAM particulier (`AssumableRole`) pour exécuter des clusters Amazon EMR au sein du compte 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 ]

   Fournissez l’ARN de `AssumableRole` à votre rôle d’exécution Studio Classic. L’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 clusters Amazon EMR dans le *compte d’approbation*.

   Vous pouvez spécifier ces informations à l’aide de scripts de configuration du cycle de vie (LCC). Vous pouvez attacher la configuration LCC à votre domaine ou à un profil utilisateur spécifique. Le script LCC que vous utilisez doit être une JupyterServer configuration. Pour plus d’informations sur la façon de créer un script LCC, consultez [Utilisation de configurations de cycle de vie avec Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lcc.html). 

   Voici un exemple de script LCC. Pour modifier le script, remplacez `AssumableRole` et `emr-account` par leurs valeurs respectives. Le nombre de comptes croisés est limité à cinq.

   ```
   # 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
   ```

    Une fois le LCC exécuté et les fichiers écrits, le serveur lit le fichier `/home/sagemaker-user/.cross-account-configuration-DO_NOT_DELETE/emr-discovery-iam-role-arns-DO_NOT_DELETE.json` et stocke l’ARN entre comptes.

------

# Configuration de la liste des clusters Amazon EMR
<a name="studio-notebooks-configure-discoverability-emr-cluster"></a>

Les administrateurs peuvent configurer des autorisations pour le rôle d'exécution de SageMaker Studio afin de permettre aux utilisateurs de consulter la liste des clusters Amazon EMR auxquels ils ont accès, leur permettant ainsi de se connecter à ces clusters. Les clusters auxquels vous souhaitez accéder peuvent être déployés dans le même AWS compte que Studio (choisissez *Compte unique*) ou dans des comptes distincts (choisissez *Compte croisé*). La page suivante explique comment accorder les autorisations permettant de visualiser les clusters Amazon EMR depuis Studio ou Studio Classic.

**Important**  
Vous pouvez uniquement découvrir et vous connecter aux clusters Amazon EMR JupyterLab et aux applications Studio Classic lancées depuis des espaces privés. Assurez-vous que les clusters Amazon EMR sont situés dans la même AWS région que votre environnement Studio.

Pour permettre aux data scientists de découvrir Amazon puis de s'y connecter EMRclusters depuis Studio ou Studio Classic, procédez comme suit.

## Compte unique
<a name="studio-set-up-emr-permissions-singleaccount-list-clusters"></a>

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

1. **Étape 1** : Récupérez l'ARN du rôle d'exécution SageMaker AI utilisé par votre espace privé.

   Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultez[Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md).

   Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).

1. **Étape 2** : Attachez les autorisations suivantes au rôle d'exécution SageMaker AI accédant à vos clusters Amazon EMR.

   1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

   1. 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 (/). 

   1. Suivez le lien correspondant à votre rôle.

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

   1. 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](studio-set-up-emr-permissions-reference.md). Remplacez `region` et `accountID` par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

   1. Choisissez **Suivant**, puis fournissez un **nom de politique**.

   1. Choisissez **Create Policy** (Créer une politique).

**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](studio-notebooks-emr-cluster-rbac.md#studio-notebooks-emr-cluster-iam-same). 

## Compte croisé
<a name="studio-set-up-emr-permissions-crossaccount-list-clusters"></a>

Avant de commencer, récupérez l'ARN du rôle d'exécution de l' SageMaker IA utilisé par votre espace privé.

Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultez[Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md).

Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).

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](studio-notebooks-emr-cluster-rbac.md#studio-notebooks-emr-cluster-iam-diff). 

**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* :

1. **Étape 1** : extrayez l’ARN du [rôle de service de votre cluster Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role.html). 

   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](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles.html#emr-iam-role-landing).

1. **Étape 2** : créez un rôle IAM personnalisé nommé `AssumableRole` avec la configuration suivante :
   + Autorisations : accordez les autorisations nécessaires à `AssumableRole` pour 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 `AssumableRole` afin d’autoriser l’endossement du rôle d’exécution (`SageMakerExecutionRole` dans 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 `AssumableRole` compte sur votre AWS compte Amazon EMR, procédez comme suit :

   1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

   1. Dans le volet de navigation de gauche, choisissez **Politique**, puis **Créer une politique**.

   1. 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](studio-set-up-emr-permissions-reference.md). Remplacez `region` et `accountID` par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

   1. Choisissez **Suivant**, puis fournissez un **nom de politique**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. Dans le volet de navigation de gauche, choisissez **Rôles**, puis **Créer un rôle**.

   1. Sur la page **Créer un rôle**, choisissez **Politique d’approbation personnalisée** comme entité de confiance.

   1. Collez le document JSON suivant dans la section **Politique d’approbation personnalisée**, puis choisissez **Suivant**.

------
#### [ For users of Studio and JupyterLab ]

      `studio-account`Remplacez-le par l'ID du compte Studio et `AmazonSageMaker-ExecutionRole` par le rôle d'exécution utilisé par votre JupyterLab espace.

------
#### [ 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 ]

      Remplacez `studio-account` par l’ID de compte Studio Classic.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:root"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

------

   1. Dans la page **Ajouter des autorisations**, ajoutez l’autorisation que vous venez de créer, puis choisissez **Suivant**.

   1. Sur la page **Vérifier**, entrez un nom pour le rôle, tel que `AssumableRole`, et une description facultative.

   1. 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 AWS compte, consultez [Création d'un rôle IAM (console).](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)

**Sur le compte Studio**

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

1. **Étape 1** : Récupérez l'ARN du rôle d'exécution SageMaker AI utilisé par votre espace privé.

   Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultez[Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md).

   Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).

1. **Étape 2** : Attachez les autorisations suivantes au rôle d'exécution SageMaker AI accédant à vos clusters Amazon EMR.

   1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

   1. 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 (/). 

   1. Suivez le lien correspondant à votre rôle.

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

   1. 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](studio-set-up-emr-permissions-reference.md). Remplacez `region` et `accountID` par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

   1. Choisissez **Suivant**, puis fournissez un **nom de politique**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. 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 `AssumableRole` puis d’exécuter les actions autorisées par la stratégie d’accès du rôle. Remplacez `emr-account` par l’ID du compte Amazon EMR et `AssumableRole` par le nom du rôle assumable créé dans le compte Amazon EMR.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "AllowRoleAssumptionForCrossAccountDiscovery",
                  "Effect": "Allow",
                  "Action": "sts:AssumeRole",
                  "Resource": [
                      "arn:aws:iam::111122223333:role/AssumableRole"
                  ]
              }
          ]
      }
      ```

------

   1. (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](studio-set-up-emr-permissions-reference.md). 

1. **Étape 3** : associez vos rôles supposables (rôle d'accès) à votre domaine ou à votre profil utilisateur. JupyterLables utilisateurs de Studio peuvent utiliser la console SageMaker AI ou le script fourni.

    Choisissez l’onglet qui correspond à votre cas d’utilisation.

------
#### [ Associate your assumable roles in JupyterLab using the SageMaker AI console ]

   Pour associer vos rôles supposés à votre profil utilisateur ou à votre domaine à l'aide de la console SageMaker AI :

   1. Accédez à la console SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. Dans le volet de navigation de gauche, choisissez le **domaine**, puis sélectionnez le domaine à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations.

   1. 
      + Pour ajouter vos rôles supposés (rôle d'accès) à votre domaine : dans l'onglet **Configurations de l'application** de la page des **détails du domaine**, accédez à la **JupyterLab**section.
      + Pour ajouter vos rôles supposés (rôle d'accès) à votre profil utilisateur : sur la page des **détails du domaine**, choisissez l'onglet **Profils utilisateurs, sélectionnez le profil utilisateur** à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations. Dans l'onglet **Configurations de l'application**, accédez à la **JupyterLab**section.

   1. Choisissez **Modifier** et ajoutez le ARNs rôle que vous assumez (rôle d'accès).

   1. Sélectionnez **Soumettre**.

------
#### [ Associate your assumable roles in JupyterLab using a Python script ]

    Dans une JupyterLab application démarrée depuis un espace utilisant le rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations, exécutez la commande suivante dans un terminal. Remplacez les valeurs `domainID`, `user-profile-name`, `emr-accountID` et `AssumableRole` (`EMRServiceRole` pour les [rôles d’exécution RBAC]()) par leurs valeurs appropriées. Cet extrait de code met à jour les paramètres du profil utilisateur pour un profil utilisateur (utilisation`client.update_userprofile`) ou des paramètres de domaine (utilisation`client.update_domain`) spécifiques au sein d'un domaine SageMaker AI. Plus précisément, cela permet à l' JupyterLabapplication d'assumer un rôle IAM particulier (`AssumableRole`) pour exécuter des clusters Amazon EMR au sein du compte 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 ]

   Fournissez l’ARN de `AssumableRole` à votre rôle d’exécution Studio Classic. L’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 clusters Amazon EMR dans le *compte d’approbation*.

   Vous pouvez spécifier ces informations à l’aide de scripts de configuration du cycle de vie (LCC). Vous pouvez attacher la configuration LCC à votre domaine ou à un profil utilisateur spécifique. Le script LCC que vous utilisez doit être une JupyterServer configuration. Pour plus d’informations sur la façon de créer un script LCC, consultez [Utilisation de configurations de cycle de vie avec Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lcc.html). 

   Voici un exemple de script LCC. Pour modifier le script, remplacez `AssumableRole` et `emr-account` par leurs valeurs respectives. Le nombre de comptes croisés est limité à cinq.

   ```
   # 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
   ```

    Une fois le LCC exécuté et les fichiers écrits, le serveur lit le fichier `/home/sagemaker-user/.cross-account-configuration-DO_NOT_DELETE/emr-discovery-iam-role-arns-DO_NOT_DELETE.json` et stocke l’ARN entre comptes.

------

Consultez [Établissement de la liste des clusters Amazon EMR depuis Studio ou Studio Classic](discover-emr-clusters.md) pour savoir comment découvrir des clusters Amazon EMR et vous y connecter depuis des blocs-notes Studio ou Studio Classic.

# Configuration des rôles d’exécution IAM pour l’accès aux clusters Amazon EMR dans Studio
<a name="studio-notebooks-emr-cluster-rbac"></a>

Lorsque vous vous connectez à un cluster Amazon EMR depuis vos blocs-notes Studio ou Studio Classic, vous pouvez parcourir visuellement une liste de rôles IAM, appelés rôles d’exécution et en sélectionner un à la volée. Par la suite, toutes vos tâches Apache Spark, Apache Hive ou Presto créées à partir de votre bloc-notes accèdent uniquement aux données et aux ressources autorisées par les politiques attachées au rôle d’exécution. En outre, lorsque les données sont accessibles à partir de lacs de données gérés avec AWS Lake Formation, vous pouvez appliquer l'accès au niveau des tables et des colonnes à l'aide de politiques associées au rôle d'exécution.

Grâce à cette fonctionnalité, vous et vos collègues pouvez vous connecter au même cluster, chacun utilisant un rôle d'exécution assorti d'autorisations correspondant à votre niveau individuel d'accès aux données. Vos sessions sont également isolées les unes des autres sur le cluster partagé. 

Pour tester cette fonctionnalité à l'aide de Studio Classic, consultez [Appliquer des contrôles d'accès aux données précis avec AWS Lake Formation Amazon EMR depuis Amazon SageMaker ](https://aws.amazon.com/blogs/machine-learning/apply-fine-grained-data-access-controls-with-aws-lake-formation-and-amazon-emr-from-amazon-sagemaker-studio/) Studio Classic. Ce billet de blog vous aide à configurer un environnement de démonstration dans lequel vous pouvez essayer d’utiliser des rôles d’exécution préconfigurés pour vous connecter aux clusters Amazon EMR.

## Conditions préalables
<a name="studio-notebooks-emr-cluster-rbac-prereq"></a>

Avant de démarrer, assurez-vous de répondre aux conditions préalables suivantes :
+ Utilisez Amazon EMR version 6.9 ou ultérieure.
+ **Pour les utilisateurs de Studio Classic** : utilisez JupyterLab la version 3 dans la configuration de l'application serveur Jupyter Studio Classic. Cette version prend en charge la connexion de Studio Classic aux clusters Amazon EMR à l’aide de rôles d’exécution.

  **Pour les utilisateurs de Studio** : utilisez une version [d'image de SageMaker distribution](sagemaker-distribution.md) `1.10` ou supérieure.
+ Autorisez l’utilisation de rôles d’exécution dans la configuration de sécurité de votre cluster. Pour plus d’informations, consultez [Rôles d’exécution pour les étapes d’Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-steps-runtime-roles.html).
+ Créez un bloc-notes avec l’un des noyaux répertoriés dans [Images et noyaux pris en charge pour se connecter à un cluster Amazon EMR depuis Studio ou Studio Classic](studio-emr-user-guide.md#studio-notebooks-emr-cluster-connect-kernels).
+ Veillez à passer en revue les instructions fournies dans [Configuration de Studio pour utiliser les rôles IAM d'exécution](#studio-notebooks-emr-cluster-iam) pour configurer vos rôles d’exécution.

## Scénarios de connexion entre comptes
<a name="studio-notebooks-emr-cluster-rbac-scen"></a>

L’authentification des rôles d’exécution prend en charge divers scénarios de connexion entre comptes lorsque vos données se trouvent en dehors de votre compte Studio. L’image suivante montre trois manières différentes d’attribuer votre cluster Amazon EMR, vos données et même votre rôle d’exécution Amazon EMR à l’exécution entre vos comptes Studio et de données : 

![\[Scénarios entre comptes pris en charge par l’authentification du rôle IAM d’exécution.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio-emr-rbac-scenarios.png)


Dans l’option 1, votre cluster Amazon EMR et votre rôle d’exécution Amazon EMR à l’exécution se trouvent dans un compte de données distinct du compte Studio. Vous définissez une politique d’autorisation distincte pour le rôle d’accès Amazon EMR (également appelée `Assumable role`) qui autorise le rôle d’exécution Studio ou Studio Classic à assumer le rôle d’accès Amazon EMR. Le rôle d’accès Amazon EMR appelle ensuite l’API Amazon EMR `GetClusterSessionCredentials` au nom de votre rôle d’exécution Studio ou Studio Classic, vous donnant ainsi accès au cluster.

Dans l’option 2, votre cluster Amazon EMR et votre rôle d’exécution Amazon EMR à l’exécution se trouvent dans votre compte Studio. Votre rôle d’exécution Studio est autorisé à utiliser l’API Amazon EMR `GetClusterSessionCredentials` pour accéder à votre cluster. Pour accéder au compartiment Amazon S3, accordez au rôle d’exécution Amazon EMR à l’exécution des autorisations d’accès intercompte au compartiment Amazon S3. Vous accordez ces autorisations au sein de votre stratégie de compartiment Amazon S3.

Dans l’option 3, vos clusters Amazon EMR sont dans votre compte Studio et le rôle d’exécution Amazon EMR à l’exécution se trouve dans le compte de données. Votre rôle d’exécution Studio ou Studio Classic est autorisé à utiliser l’API Amazon EMR `GetClusterSessionCredentials` pour accéder à votre cluster. Ajoutez le rôle d’exécution Amazon EMR à l’exécution dans le fichier JSON de configuration de rôle d’exécution. Vous pouvez ensuite sélectionner le rôle dans l’interface utilisateur lorsque vous choisissez votre cluster. Pour plus de détails sur la configuration du fichier JSON de configuration du rôle d'exécution, consultez [Préchargement de vos rôles d’exécution dans Studio ou Studio Classic](#studio-notebooks-emr-cluster-iam-preload).

## Configuration de Studio pour utiliser les rôles IAM d'exécution
<a name="studio-notebooks-emr-cluster-iam"></a>

Pour établir l’authentification des rôles d’exécution pour vos clusters Amazon EMR, configurez les politiques IAM, le réseau et les améliorations de la facilité d’utilisation requises. Votre configuration dépend de votre capacité à gérer des accords entre comptes si vos clusters Amazon EMR, votre rôle d’exécution Amazon EMR à l’exécution, ou les deux, se trouvent en dehors de votre compte Studio. La section suivante explique les politiques à installer, comment configurer le réseau pour autoriser le trafic entre comptes croisés et le fichier de configuration local à configurer pour automatiser votre connexion Amazon EMR.

### Configuration de l’authentification du rôle d’exécution lorsque votre cluster Amazon EMR et Studio sont sur le même compte
<a name="studio-notebooks-emr-cluster-iam-same"></a>

Si votre cluster Amazon EMR réside dans votre compte Studio, procédez comme suit pour ajouter les autorisations nécessaires à votre politique d’exécution Studio :

1. Ajoutez la politique IAM requise pour vous connecter aux clusters Amazon EMR. Pour en savoir plus, consultez [Configuration de la liste des clusters Amazon EMR](studio-notebooks-configure-discoverability-emr-cluster.md).

1. Accordez l’autorisation d’appeler l’API Amazon EMR `GetClusterSessionCredentials` lorsque vous transmettez un ou plusieurs rôles d’exécution Amazon EMR à l’exécution autorisés, spécifiés dans la politique.

1. (Facultatif) Accordez l’autorisation de transmettre des rôles IAM conformes aux conventions de dénomination définies par l’utilisateur.

1. (Facultatif) Accordez l’autorisation d’accéder aux clusters Amazon EMR balisés avec des chaînes spécifiques définies par l’utilisateur.

1. Préchargez vos rôles IAM afin de pouvoir sélectionner le rôle à utiliser lorsque vous vous connectez à votre cluster Amazon EMR. Pour plus d’informations sur le préchargement de vos rôles IAM, consultez [Préchargement de vos rôles d’exécution dans Studio ou Studio Classic](#studio-notebooks-emr-cluster-iam-preload).

L’exemple de politique suivant autorise les rôles d’exécution Amazon EMR à l’exécution appartenant aux groupes de modélisation et d’entraînement à appeler `GetClusterSessionCredentials`. En outre, le titulaire de la politique peut accéder aux clusters Amazon EMR étiquetés avec les chaînes `modeling` ou `training`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "elasticmapreduce:GetClusterSessionCredentials",
            "Resource": "*",
            "Condition": {
                "ArnLike": {
                    "elasticmapreduce:ExecutionRoleArn": [
                        "arn:aws:iam::111122223333:role/emr-execution-role-ml-modeling*",
                        "arn:aws:iam::111122223333:role/emr-execution-role-ml-training*"
			]},
		"StringLike":{
                    "elasticmapreduce:ResourceTag/group": [
                        "*modeling*",
                        "*training*"
                    ]
                }
            }
        }
    ]
}
```

------

### Configuration de l’authentification du rôle d’exécution lorsque votre cluster et Studio sont dans des comptes différents
<a name="studio-notebooks-emr-cluster-iam-diff"></a>

Si votre cluster Amazon EMR ne figure pas dans votre compte Studio, autorisez votre rôle d'exécution SageMaker AI à assumer le rôle d'accès Amazon EMR entre comptes afin de pouvoir vous connecter au cluster. Procédez comme suit pour configurer votre configuration entre comptes :

1. Créez votre politique d'autorisation pour le rôle d'exécution SageMaker AI afin que le rôle d'exécution puisse assumer le rôle d'accès Amazon EMR. Voici un exemple de politique :

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowAssumeCrossAccountEMRAccessRole",
               "Effect": "Allow",
               "Action": "sts:AssumeRole",
               "Resource": "arn:aws:iam::111122223333:role/emr-access-role-name"
           }
       ]
   }
   ```

------

1. Créez la politique de confiance pour spécifier quels comptes Studio IDs sont autorisés à assumer le rôle d'accès Amazon EMR. Voici un exemple de politique :

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
           "Sid": "AllowCrossAccountSageMakerExecutionRoleToAssumeThisRole",
           "Effect": "Allow",
           "Principal": {
             "AWS": "arn:aws:iam::111122223333:role/studio_execution_role"
           },
           "Action": "sts:AssumeRole"
         }
       ]
   }
   ```

------

1. Créez la politique d’autorisation du rôle d’accès Amazon EMR, qui accorde au rôle d’exécution Amazon EMR à l’exécution les autorisations nécessaires pour réaliser les tâches prévues sur le cluster. Configurez le rôle d’accès Amazon EMR pour appeler l’API `GetClusterSessionCredentials` avec les rôles d’exécution Amazon EMR à l’exécution spécifiés dans la politique d’autorisation du rôle d’accès. Voici un exemple de politique :

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowCallingEmrGetClusterSessionCredentialsAPI",
               "Effect": "Allow",
               "Action": "elasticmapreduce:GetClusterSessionCredentials",
               "Resource": "arn:aws:elasticmapreduce:us-east-1:111122223333:cluster/cluster-id",
               "Condition": {
                   "StringLike": {
                       "elasticmapreduce:ExecutionRoleArn": [
                           "arn:aws:iam::111122223333:role/emr-execution-role-name"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. Configurez le réseau entre comptes afin que le trafic puisse circuler entre vos comptes. Pour obtenir des instructions détaillées, consultez *[Configuration de l’accès réseau pour votre cluster Amazon EMR](studio-notebooks-emr-networking.md)*. Les étapes de cette section vous aident à effectuer les tâches suivantes :

   1. Appairez en VPC votre compte Studio et votre compte Amazon EMR pour établir une connexion.

   1. Ajoutez manuellement des routes aux tables de routage du sous-réseau privé dans les deux comptes. Cela permet de créer et de connecter des clusters Amazon EMR du compte Studio au sous-réseau privé du compte distant.

   1. Configurez le groupe de sécurité attaché à votre domaine Studio pour autoriser le trafic sortant et le groupe de sécurité du nœud primaire Amazon EMR pour autoriser le trafic TCP entrant depuis le groupe de sécurité de l’instance Studio.

1. Préchargez vos rôles IAM d’exécution afin de pouvoir sélectionner le rôle à utiliser lorsque vous vous connectez à votre cluster Amazon EMR. Pour plus d’informations sur le préchargement de vos rôles IAM, consultez [Préchargement de vos rôles d’exécution dans Studio ou Studio Classic](#studio-notebooks-emr-cluster-iam-preload).

### Configuration de l'accès à Lake Formation
<a name="studio-notebooks-emr-cluster-iam-lf"></a>

Lorsque vous accédez à des données à partir de lacs de données gérés par AWS Lake Formation, vous pouvez appliquer l'accès au niveau des tables et des colonnes à l'aide des politiques associées à votre rôle d'exécution. Pour configurer l’autorisation d’accès à Lake Formation, consultez [Intégration d’Amazon EMR avec AWS Lake Formation](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-lake-formation.html).

### Préchargement de vos rôles d’exécution dans Studio ou Studio Classic
<a name="studio-notebooks-emr-cluster-iam-preload"></a>

Vous pouvez précharger vos rôles IAM d’exécution afin de pouvoir sélectionner le rôle à utiliser lorsque vous vous connectez à votre cluster Amazon EMR. Les utilisateurs d' JupyterLab in Studio peuvent utiliser la console SageMaker AI ou le script fourni.

------
#### [ Preload runtime roles in JupyterLab using the SageMaker AI console ]

Pour associer vos rôles d'exécution à votre profil utilisateur ou à votre domaine à l'aide de la console SageMaker AI :

1. Accédez à la console SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Dans le volet de navigation de gauche, choisissez le **domaine**, puis sélectionnez le domaine à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations.

1. 
   + Pour ajouter votre environnement d'exécution (et vos rôles d'accès pour les cas d'utilisation entre comptes) à votre domaine : dans l'onglet **Configurations des applications** de la page des **détails du domaine**, accédez à la **JupyterLab**section.
   + Pour ajouter votre environnement d'exécution (et vos rôles d'accès pour les cas d'utilisation entre comptes) à votre profil utilisateur : sur la page **Détails du domaine**, choisissez l'onglet **Profils utilisateur**, sélectionnez le profil utilisateur à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations. Dans l'onglet **Configurations de l'application**, accédez à la **JupyterLab**section.

1. Choisissez **Modifier** et ajoutez les rôles ARNs d'exécution de votre rôle d'accès (rôle assumé) et EMR Serverless Runtime.

1. Sélectionnez **Soumettre**.

Lors de votre prochaine connexion à un serveur Amazon EMR, les rôles d’exécution devraient apparaître pour sélection dans un menu déroulant.

------
#### [ Preload runtime roles in JupyterLab using a Python script ]

Dans une JupyterLab application démarrée depuis un espace utilisant le rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations, exécutez la commande suivante dans un terminal. Remplacez `domainID`, `user-profile-name`, `emr-accountID` et `EMRServiceRole` par leurs valeurs appropriées. Cet extrait de code met à jour les paramètres d'un profil utilisateur (`client.update_user_profile`) au sein d'un domaine SageMaker AI dans un cas d'utilisation entre comptes. Plus précisément, il définit les rôles de service pour Amazon EMR. Cela permet également à l' JupyterLab application d'assumer un rôle IAM particulier (`AssumableRole`ou`AccessRole`) pour exécuter Amazon EMR au sein du compte Amazon EMR.

Vous pouvez également utiliser `client.update_domain` pour mettre à jour les paramètres du domaine si votre espace utilise un rôle d’exécution défini au niveau du domaine.

```
import botocore.session
import json
sess = botocore.session.get_session()
client = sess.create_client('sagemaker')

client.update_user_profile(
DomainId="domainID", 
UserProfileName="user-profile-name",
UserSettings={
    '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))
```

------
#### [ Preload runtime roles in Studio Classic ]

Fournissez l'ARN de `AccessRole` (`AssumableRole`) à votre rôle d'exécution SageMaker AI. L’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 clusters Amazon EMR dans le *compte d’approbation*.

Vous pouvez spécifier ces informations à l’aide de scripts de configuration du cycle de vie (LCC). Vous pouvez attacher la configuration LCC à votre domaine ou à un profil utilisateur spécifique. Le script LCC que vous utilisez doit être une JupyterServer configuration. Pour plus d’informations sur la façon de créer un script LCC, consultez [Utilisation de configurations de cycle de vie avec Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lcc.html). 

Voici un exemple de script LCC. Pour modifier le script, remplacez `AssumableRole` et `emr-account` par leurs valeurs respectives. Le nombre de comptes croisés est limité à cinq.

L’extrait suivant est un exemple de script bash LCC que vous pouvez appliquer si votre application Studio Classic et votre cluster se trouvent dans le même compte :

```
#!/bin/bash

set -eux

FILE_DIRECTORY="/home/sagemaker-user/.sagemaker-analytics-configuration-DO_NOT_DELETE"
FILE_NAME="emr-configurations-DO_NOT_DELETE.json"
FILE="$FILE_DIRECTORY/$FILE_NAME"

mkdir -p $FILE_DIRECTORY

cat << 'EOF' > "$FILE"
{
    "emr-execution-role-arns":
    {
      "123456789012": [
          "arn:aws:iam::123456789012:role/emr-execution-role-1",
          "arn:aws:iam::123456789012:role/emr-execution-role-2"
      ]
    }
}
EOF
```

Si votre application Studio Classic et vos clusters se trouvent dans des comptes différents, spécifiez les rôles d’accès Amazon EMR qui peuvent utiliser le cluster. Dans l'exemple de politique suivant, *123456789012* est l'ID du compte du cluster Amazon EMR, *et 212121212121 et* *434343434343* correspondent aux rôles d'accès Amazon EMR autorisés. ARNs 

```
#!/bin/bash

set -eux

FILE_DIRECTORY="/home/sagemaker-user/.sagemaker-analytics-configuration-DO_NOT_DELETE"
FILE_NAME="emr-configurations-DO_NOT_DELETE.json"
FILE="$FILE_DIRECTORY/$FILE_NAME"

mkdir -p $FILE_DIRECTORY

cat << 'EOF' > "$FILE"
{
    "emr-execution-role-arns":
    {
      "123456789012": [
          "arn:aws:iam::212121212121:role/emr-execution-role-1",
          "arn:aws:iam::434343434343:role/emr-execution-role-2"
      ]
    }
}
EOF

# add your cross-account EMR access role
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 << 'EOF' > "$FILE"
{
    "123456789012": "arn:aws:iam::123456789012:role/cross-account-emr-access-role"
}
EOF
```

------

# Politiques de référence
<a name="studio-set-up-emr-permissions-reference"></a>
+ **Politiques Amazon EMR de liste** : cette politique permet d’effectuer les actions suivantes :
  + `AllowPresignedUrl`permet de générer des documents pré-signés URLs pour accéder à l'interface utilisateur de Spark depuis Studio.
  + `AllowClusterDiscovery` et `AllowClusterDetailsDiscovery` permettent de répertorier et de décrire les clusters Amazon EMR dans la région et le compte fournis.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "AllowPresignedUrl",
              "Effect": "Allow",
              "Action": [
                  "elasticmapreduce:CreatePersistentAppUI",
                  "elasticmapreduce:DescribePersistentAppUI",
                  "elasticmapreduce:GetPersistentAppUIPresignedURL",
                  "elasticmapreduce:GetOnClusterAppUIPresignedURL"
              ],
              "Resource": [
                  "arn:aws:elasticmapreduce:us-east-1:111122223333:cluster/*"
              ]
          },
          {
              "Sid": "AllowClusterDetailsDiscovery",
              "Effect": "Allow",
              "Action": [
                  "elasticmapreduce:DescribeCluster",
                  "elasticmapreduce:ListInstances",
                  "elasticmapreduce:ListInstanceGroups",
                  "elasticmapreduce:DescribeSecurityConfiguration"
              ],
              "Resource": [
                  "arn:aws:elasticmapreduce:us-east-1:111122223333:cluster/*"
              ]
          },
          {
              "Sid": "AllowClusterDiscovery",
              "Effect": "Allow",
              "Action": [
                  "elasticmapreduce:ListClusters"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
+ **Politiques de création de clusters Amazon EMR** : cette politique permet d’effectuer les actions suivantes :
  + `AllowEMRTemplateDiscovery` permet de rechercher des modèles Amazon EMR dans Service Catalog. Studio et Studio Classic l’utilisent pour montrer les modèles disponibles.
  + `AllowSagemakerProjectManagement` permet la création de [Qu'est-ce qu'un projet d' SageMaker IA ?](sagemaker-projects-whatis.md). Dans Studio ou Studio Classic, l'accès au AWS Service Catalog est géré via[Qu'est-ce qu'un projet d' SageMaker IA ?](sagemaker-projects-whatis.md).

  La politique IAM définie dans le code JSON fourni accorde ces autorisations. Remplacez *region* et *accountID* par 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.

------
#### [ JSON ]

****  

  ```
  {
      "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:us-east-1:111122223333:project/*"
          }
      ]
  }
  ```

------
+ **Politique relative aux actions de mise à jour du domaine, du profil utilisateur et de l'espace** : La politique suivante autorise la mise à jour des domaines SageMaker AI, des profils utilisateur et des espaces dans la région et le AWS compte spécifiés.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "SageMakerUpdateResourcesPolicy",
              "Effect": "Allow",
              "Action": [
                  "sagemaker:UpdateDomain",
                  "sagemaker:UpdateUserprofile",
                  "sagemaker:UpdateSpace"
              ],
              "Resource": [
                  "arn:aws:sagemaker:us-east-1:111122223333:domain/*",
                  "arn:aws:sagemaker:us-east-1:111122223333:user-profile/*"
              ]
          }
      ]
  }
  ```

------

# Guide de l’utilisateur
<a name="studio-emr-user-guide"></a>

Cette section explique comment les scientifiques des données et les ingénieurs de données peuvent lancer, découvrir, résilier un cluster Amazon EMR et s’y connecter depuis Studio ou Studio Classic.

Avant que les utilisateurs puissent répertorier ou lancer les clusters, les administrateurs doivent avoir configuré les paramètres nécessaires dans l’environnement Studio. Pour obtenir des informations sur la manière dont les administrateurs peuvent configurer un environnement Studio afin de permettre le provisionnement automatique et l’établissement de la liste des clusters Amazon EMR, consultez [Guide de l’administrateur](studio-emr-admin-guide.md).

**Topics**
+ [Images et noyaux pris en charge pour se connecter à un cluster Amazon EMR depuis Studio ou Studio Classic](#studio-notebooks-emr-cluster-connect-kernels)
+ [Apporter votre propre image](#studio-notebooks-emr-byoi)
+ [Lancement d’un cluster Amazon EMR depuis Studio ou Studio Classic](studio-notebooks-launch-emr-cluster-from-template.md)
+ [Établissement de la liste des clusters Amazon EMR depuis Studio ou Studio Classic](discover-emr-clusters.md)
+ [Connectez-vous à un cluster Amazon EMR depuis SageMaker Studio ou Studio Classic](connect-emr-clusters.md)
+ [Résiliation d’un cluster Amazon EMR depuis Studio ou Studio Classic](terminate-emr-clusters.md)
+ [Accès à l’interface utilisateur de Spark depuis Studio ou Studio Classic](studio-notebooks-access-spark-ui.md)

## Images et noyaux pris en charge pour se connecter à un cluster Amazon EMR depuis Studio ou Studio Classic
<a name="studio-notebooks-emr-cluster-connect-kernels"></a>

Les images et noyaux suivants sont fournis avec [sagemaker-studio-analytics-extension](https://pypi.org/project/sagemaker-studio-analytics-extension/)l' JupyterLab extension qui se connecte à un cluster Spark (Amazon EMR) distant via la bibliothèque à [SparkMagic](https://github.com/jupyter-incubator/sparkmagic)l'[aide](https://livy.apache.org/) d'Apache Livy.
+ **Pour les utilisateurs de Studio :** SageMaker Distribution est un environnement Docker pour la science des données utilisé comme image par défaut des instances de JupyterLab bloc-notes. Toutes les versions d'[SageMaker AI Distribution](https://github.com/aws/sagemaker-distribution) sont `sagemaker-studio-analytics-extension` préinstallées.
+ **Pour les utilisateurs de Studio Classic :** les images suivantes sont fournies avec `sagemaker-studio-analytics-extension` préinstallé :
  + DataScience — Noyau Python 3
  + DataScience 2.0 — Noyau Python 3
  + DataScience 3.0 — Noyau Python 3
  + SparkAnalytics 1.0 — SparkMagic et PySpark noyaux
  + SparkAnalytics 2.0 — SparkMagic et PySpark noyaux
  + SparkMagic — SparkMagic et PySpark cerneaux
  + PyTorch 1.8 — Noyaux Python 3
  + TensorFlow 2.6 — Noyau Python 3
  + TensorFlow 2.11 — Noyau Python 3

Pour vous connecter à des clusters Amazon EMR à l’aide d’une autre image intégrée ou de votre propre image, suivez les instructions fournies dans [Apporter votre propre image](#studio-notebooks-emr-byoi).

## Apporter votre propre image
<a name="studio-notebooks-emr-byoi"></a>

Pour importer votre propre image dans Studio ou Studio Classic et permettre à vos ordinateurs portables de se connecter aux clusters Amazon EMR, installez l'extension [sagemaker-studio-analytics-extension](https://pypi.org/project/sagemaker-studio-analytics-extension/)suivante sur votre noyau. Il permet de connecter les blocs-notes SageMaker Studio ou Studio Classic aux clusters Spark (Amazon EMR) via [SparkMagic](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-magics.html)la bibliothèque.

```
pip install sparkmagic
pip install sagemaker-studio-sparkmagic-lib
pip install sagemaker-studio-analytics-extension
```

En outre, pour vous connecter à Amazon EMR avec l’authentification [Kerberos](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html), vous devez installer le client kinit. Selon votre système d’exploitation, la commande d’installation du client kinit peut varier. Pour apporter une image Ubuntu (basée sur Debian), utilisez la commande `apt-get install -y -qq krb5-user`.

Pour plus d'informations sur l'importation de votre propre image dans SageMaker Studio ou Studio Classic, voir [Apporter votre propre SageMaker image](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html).

# Lancement d’un cluster Amazon EMR depuis Studio ou Studio Classic
<a name="studio-notebooks-launch-emr-cluster-from-template"></a>

Les data scientists et les ingénieurs de données peuvent provisionner eux-mêmes les clusters Amazon EMR depuis Studio ou Studio Classic à CloudFormation l'aide de modèles définis par leurs administrateurs. Avant que les utilisateurs puissent lancer un cluster, les administrateurs doivent avoir configuré les paramètres nécessaires dans l’environnement Studio. Pour obtenir des informations sur la manière dont les administrateurs peuvent configurer un environnement Studio afin de permettre le provisionnement automatique des clusters Amazon EMR, consultez [Configuration des CloudFormation modèles Amazon EMR dans le Service Catalog](studio-notebooks-set-up-emr-templates.md).

Pour provisionner un nouveau cluster Amazon EMR depuis Studio ou Studio Classic :

1. Dans le panneau de gauche de l’interface utilisateur de Studio ou de Studio Classic, sélectionnez le nœud **Données** dans le menu de navigation de gauche. Accédez à **Clusters Amazon EMR**. Une page s’ouvre répertoriant les clusters Amazon EMR auxquels vous pouvez accéder depuis Studio ou Studio Classic.

1. Choisissez le bouton **Créer** dans le coin supérieur droit. Une nouvelle fenêtre modale s’ouvre, répertoriant les modèles de cluster à votre disposition.

1. Sélectionnez un modèle de cluster en choisissant un nom de modèle, puis choisissez **Suivant**.

1. Entrez les détails du cluster, tels que le nom du cluster et tout paramètre configurable spécifique défini par votre administrateur, puis choisissez **Créer un cluster**. La création du cluster peut prendre quelques minutes.  
![\[Formulaire de création d’un cluster Amazon EMR depuis Studio ou Studio Classic.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-cluster-creation.png)

Une fois le cluster provisionné, l’interface utilisateur de Studio ou Studio Classic affiche un message *Le cluster a été créé*.

Pour vous connecter à votre cluster, consultez [Connectez-vous à un cluster Amazon EMR depuis SageMaker Studio ou Studio Classic](connect-emr-clusters.md).

# Établissement de la liste des clusters Amazon EMR depuis Studio ou Studio Classic
<a name="discover-emr-clusters"></a>

Les scientifiques des données et les ingénieurs de données peuvent découvrir les clusters Amazon EMR, puis s’y connecter depuis Studio. Les clusters Amazon EMR peuvent se trouver sur le même AWS compte que Studio ou sur un autre AWS compte.

Avant que les utilisateurs puissent répertorier les clusters ou s’y connecter, les administrateurs doivent avoir configuré les paramètres nécessaires dans l’environnement Studio. Pour obtenir des informations sur la manière dont les administrateurs peuvent configurer un environnement Studio afin de permettre la découverte des clusters Amazon EMR en cours d’exécution, consultez [Guide de l’administrateur](studio-emr-admin-guide.md). Si votre administrateur a effectué la [configuration de la découverte entre comptes des clusters Amazon EMR](studio-notebooks-configure-discoverability-emr-cluster.md), vous pouvez visualiser une liste consolidée des clusters. La liste inclut les clusters provenant du AWS compte utilisé par Studio ainsi que les clusters provenant de comptes distants auxquels vous avez obtenu l'accès.

Pour afficher la liste des clusters Amazon EMR disponibles dans Studio :

1. Dans le menu de navigation de gauche de l’interface utilisateur de Studio, faites défiler l’écran vers le bas jusqu’à **Clusters EMR**. Une page s’ouvre répertoriant les clusters Amazon EMR auxquels vous pouvez accéder.

   La liste affiche les clusters dans les phases suivantes : **Amorçage**, **Démarrage en cours**, **En cours d’exécution**, **En attente**. Vous pouvez réduire le nombre de clusters affichés en fonction de leur statut actuel à l’aide de l’icône de filtre. 

1. Choisissez un cluster **En cours d’exécution** particulier auquel vous souhaitez vous connecter, puis référez-vous à [Connectez-vous à un cluster Amazon EMR depuis SageMaker Studio ou Studio Classic](connect-emr-clusters.md).

# Connectez-vous à un cluster Amazon EMR depuis SageMaker Studio ou Studio Classic
<a name="connect-emr-clusters"></a>

Les scientifiques des données et les ingénieurs de données peuvent découvrir un cluster Amazon EMR et s’y connecter directement depuis l’interface utilisateur de Studio. Avant de commencer, assurez-vous d’avoir configuré les autorisations nécessaires, comme décrit dans la section [Étape 4 : Configuration des autorisations pour activer l’établissement d’une liste et le lancement des clusters Amazon EMR à partir de Studio](studio-notebooks-set-up-emr-templates.md#studio-emr-permissions). Ces autorisations permettent à Studio de créer, démarrer, afficher et résilier les clusters, ainsi que d’y accéder.

Vous pouvez connecter un cluster Amazon EMR à un nouveau JupyterLab bloc-notes directement depuis l'interface utilisateur de Studio, ou choisir d'établir la connexion dans le bloc-notes d'une application en cours d'exécution JupyterLab .

**Important**  
Vous pouvez uniquement découvrir et vous connecter aux clusters Amazon EMR JupyterLab et aux applications Studio Classic lancées depuis des espaces privés. Assurez-vous que les clusters Amazon EMR sont situés dans la même AWS région que votre environnement Studio. Votre JupyterLab espace doit utiliser une version image de SageMaker distribution `1.10` ou supérieure.

## Connexion à un cluster Amazon EMR à l’aide de l’interface utilisateur de Studio
<a name="connect-emr-clusters-ui-options"></a>

Pour vous connecter à votre cluster à l'aide de l'interface utilisateur de Studio ou de Studio Classic, vous pouvez établir une connexion à partir de la liste des clusters auxquels vous accédez ou à partir d'un bloc-notes dans SageMaker Studio ou Studio Classic. [Établissement de la liste des clusters Amazon EMR depuis Studio ou Studio Classic](discover-emr-clusters.md)

**Pour connecter un cluster Amazon EMR à un nouveau JupyterLab bloc-notes depuis l'interface utilisateur de Studio :**

1. Dans le panneau de gauche de l’interface utilisateur de Studio, sélectionnez le nœud **Données** dans le menu de navigation de gauche. Accédez à **Applications et clusters Amazon EMR**. Une page s’ouvre répertoriant les clusters Amazon EMR auxquels vous pouvez accéder depuis Studio dans l’onglet **Clusters Amazon EMR**.
**Note**  
Si vous ou votre administrateur avez configuré les autorisations pour autoriser l’accès intercompte aux clusters Amazon EMR, vous pouvez visualiser une liste consolidée des clusters pour tous les comptes auxquels vous avez accordé l’accès à Studio.

1. Sélectionnez un cluster Amazon EMR que vous souhaitez connecter à un nouveau bloc-notes, puis choisissez **Attacher à un bloc-notes**. Cela ouvre une fenêtre modale affichant la liste de vos JupyterLab espaces.

1. 
   + Sélectionnez l'espace à partir duquel vous souhaitez lancer une JupyterLab application, puis choisissez **Ouvrir le bloc-notes**. Cela lance une JupyterLab application depuis l'espace que vous avez choisi et ouvre un nouveau bloc-notes.
**Note**  
Les utilisateurs de Studio Classic doivent sélectionner une image et un noyau. Pour obtenir la liste des images prises en charge, consultez [Images et noyaux pris en charge pour se connecter à un cluster Amazon EMR depuis Studio ou Studio Classic](studio-emr-user-guide.md#studio-notebooks-emr-cluster-connect-kernels) ou référez-vous à [Apporter votre propre image](studio-emr-user-guide.md#studio-notebooks-emr-byoi).
   + Vous pouvez également créer un nouvel espace privé en choisissant le bouton **Créer un nouvel espace** en haut de la fenêtre modale. Entrez un nom pour votre espace, puis choisissez **Créer l’espace et ouvrir le bloc-notes**. Cela crée un espace privé avec le type d'instance par défaut et SageMaker la dernière image de distribution disponible, lance une JupyterLab application et ouvre un nouveau bloc-notes.

1. Si le cluster que vous sélectionnez n’utilise pas Kerberos, LDAP ou l’authentification par [rôle d’exécution](), Studio vous invite à sélectionner le type d’informations d’identification. Choisissez entre **Authentification de base HTTP** ou **Aucune information d’identification**, puis entrez vos informations d’identification, le cas échéant.

   Si le cluster que vous sélectionnez prend en charge les rôles d’exécution, choisissez le nom du rôle IAM que votre cluster Amazon EMR peut assumer pour l’exécution de la tâche. 
**Important**  
Pour connecter correctement un JupyterLab bloc-notes à un cluster Amazon EMR prenant en charge les rôles d'exécution, vous devez d'abord associer la liste des rôles d'exécution à votre domaine ou à votre profil utilisateur, comme indiqué dans. [Configuration des rôles d’exécution IAM pour l’accès aux clusters Amazon EMR dans Studio](studio-notebooks-emr-cluster-rbac.md) Si vous n’effectuez pas cette étape, vous ne pourrez pas établir la connexion. 

   Après sélection, une commande de connexion remplit la première cellule de votre bloc-notes et initie la connexion avec le cluster Amazon EMR.

   Une fois la connexion établie, un message confirme la connexion et le démarrage de l’application Spark.

**Vous pouvez également vous connecter à un cluster à partir d'un bloc-notes JupyterLab ou d'un bloc-notes Studio Classic.**

1. Choisissez le bouton **Cluster** en haut de votre bloc-notes. Une fenêtre modale s’ouvre répertoriant les clusters Amazon EMR dans un état `Running` auquel vous pouvez accéder. Vous pouvez voir les clusters Amazon EMR `Running` dans l’onglet **Clusters Amazon EMR**.
**Note**  
Pour les utilisateurs de Studio Classic, **Cluster** n’est visible que lorsque vous utilisez un noyau depuis [Images et noyaux pris en charge pour se connecter à un cluster Amazon EMR depuis Studio ou Studio Classic](studio-emr-user-guide.md#studio-notebooks-emr-cluster-connect-kernels) ou [Apporter votre propre image](studio-emr-user-guide.md#studio-notebooks-emr-byoi). Si vous ne voyez pas **Cluster** en haut de votre bloc-notes, assurez-vous que votre administrateur a [configuré la découvrabilité de vos clusters](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-configure-discoverability-emr-cluster.html) et passez à un noyau compatible.

1. Sélectionnez le cluster auquel vous souhaitez vous connecter, puis choisissez **Connecter**.

1. Si vous avez configuré vos clusters Amazon EMR pour prendre en charge les [rôles IAM d’exécution](studio-notebooks-emr-cluster-rbac.md), vous pouvez sélectionner votre rôle dans le menu déroulant **Rôle d’exécution Amazon EMR**. 
**Important**  
Pour connecter correctement un JupyterLab bloc-notes à un cluster Amazon EMR prenant en charge les rôles d'exécution, vous devez d'abord associer la liste des rôles d'exécution à votre domaine ou à votre profil utilisateur, comme indiqué dans. [Configuration des rôles d’exécution IAM pour l’accès aux clusters Amazon EMR dans Studio](studio-notebooks-emr-cluster-rbac.md) Si vous n’effectuez pas cette étape, vous ne pourrez pas établir la connexion. 

   Sinon, si le cluster que vous choisissez n’utilise pas Kerberos, LDAP ou l’authentification par rôle d’exécution, Studio ou Studio Classic vous invite à sélectionner le type d’informations d’identification. Vous pouvez sélectionner **Authentification de base HTTP** ou **Pas d’informations d’identification**.

1. Studio ajoute puis exécute un bloc de code dans une cellule active pour établir la connexion. Cette cellule contient la commande magique de connexion permettant de connecter votre bloc-notes à votre application en fonction de votre type d’authentification.

   Une fois la connexion établie, un message confirme la connexion et le démarrage de l’application Spark.

## Connexion à un cluster Amazon EMR à l’aide d’une commande de connexion
<a name="connect-emr-clusters-manually"></a>

Pour établir une connexion à un cluster Amazon EMR, vous pouvez exécuter des commandes de connexion dans une cellule de bloc-notes.

Lorsque vous établissez la connexion, vous pouvez vous authentifier à l’aide de [Kerberos](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html), du protocole [LDAP (Lightweight Directory Access Protocol)](https://docs.aws.amazon.com/) ou d’une authentification par [rôle IAM à l’exécution](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-emr-cluster-rbac.html). La méthode d’authentification que vous choisissez dépend de la configuration de votre cluster. 

Vous pouvez vous référer à cet exemple [Access Apache Livy using a Network Load Balancer on a Kerberos-enabled Amazon EMR cluster](https://aws.amazon.com/blogs/big-data/access-apache-livy-using-a-network-load-balancer-on-a-kerberos-enabled-amazon-emr-cluster/) pour configurer un cluster Amazon EMR qui utilise l’authentification Kerberos. [Vous pouvez également explorer les CloudFormation exemples de modèles utilisant l'authentification Kerberos ou LDAP dans le référentiel aws-samples/. sagemaker-studio-emr](https://github.com/aws-samples/sagemaker-studio-emr/tree/main/cloudformation/getting_started) GitHub 

Si votre administrateur a activé l'accès entre comptes, vous pouvez vous connecter à votre cluster Amazon EMR depuis un bloc-notes Studio Classic, que votre application Studio Classic et votre cluster résident sur le AWS même compte ou sur des comptes différents.

Pour chacun des types d’authentification suivants, utilisez la commande spécifiée pour vous connecter à votre cluster depuis votre bloc-notes Studio ou Studio Classic.
+ **Kerberos**

  Ajoutez l’argument `--assumable-role-arn` si vous avez besoin d’un accès Amazon EMR entre comptes. Ajoutez l’argument `--verify-certificate` si vous vous connectez à votre cluster via HTTPS.

  ```
  %load_ext sagemaker_studio_analytics_extension.magics
  %sm_analytics emr connect --cluster-id cluster_id \
  --auth-type Kerberos --language python 
  [--assumable-role-arn EMR_access_role_ARN ] 
  [--verify-certificate /home/user/certificateKey.pem]
  ```
+ **LDAP**

  Ajoutez l’argument `--assumable-role-arn` si vous avez besoin d’un accès Amazon EMR entre comptes. Ajoutez l’argument `--verify-certificate` si vous vous connectez à votre cluster via HTTPS.

  ```
  %load_ext sagemaker_studio_analytics_extension.magics
  %sm_analytics emr connect --cluster-id cluster_id \
  --auth-type Basic_Access --language python 
  [--assumable-role-arn EMR_access_role_ARN ]
  [--verify-certificate /home/user/certificateKey.pem]
  ```
+ **NoAuth**

  Ajoutez l’argument `--assumable-role-arn` si vous avez besoin d’un accès Amazon EMR entre comptes. Ajoutez l’argument `--verify-certificate` si vous vous connectez à votre cluster via HTTPS.

  ```
  %load_ext sagemaker_studio_analytics_extension.magics
  %sm_analytics emr connect --cluster-id cluster_id \
  --auth-type None --language python
  [--assumable-role-arn EMR_access_role_ARN ]
  [--verify-certificate /home/user/certificateKey.pem]
  ```
+ **Rôles IAM d'exécution**

  Ajoutez l'argument `--assumable-role-arn` si vous avez besoin d'un accès Amazon EMR entre comptes. Ajoutez l'argument `--verify-certificate` si vous vous connectez à votre cluster via HTTPS. 

  Pour plus d'informations sur la connexion à un cluster Amazon EMR à l'aide de rôles IAM d'exécution, consultez [Configuration des rôles d’exécution IAM pour l’accès aux clusters Amazon EMR dans Studio](studio-notebooks-emr-cluster-rbac.md).

  ```
  %load_ext sagemaker_studio_analytics_extension.magics
  %sm_analytics emr connect --cluster-id cluster_id \
  --auth-type Basic_Access \
  --emr-execution-role-arn arn:aws:iam::studio_account_id:role/emr-execution-role-name
  [--assumable-role-arn EMR_access_role_ARN]
  [--verify-certificate /home/user/certificateKey.pem]
  ```

## Connexion à un cluster Amazon EMR via HTTPS
<a name="connect-emr-clusters-ssl"></a>

Si vous avez configuré votre cluster Amazon EMR avec le chiffrement en transit activé et le serveur Apache Livy pour HTTPS et que vous souhaitez que Studio ou Studio Classic communique avec Amazon EMR via HTTPS, vous devez configurer Studio ou Studio Classic pour accéder à votre clé de certificat.

Pour les certificats autosignés ou signés par l’autorité de certification (CA) locale, vous pouvez procéder en deux étapes :

1. Téléchargez le fichier PEM de votre certificat sur votre système de fichiers local à l'aide de l'une des options suivantes :
   + Fonction de téléchargement de fichiers intégrée à Jupyter.
   + Cellule de bloc-notes.
   + (Pour les utilisateurs de Studio Classic uniquement) Script de configuration de cycle de vie (LCC).

     Pour en savoir plus sur l’utilisation d’un script LCC, consultez [Personnalisation d’une instance de bloc-notes à l’aide d’un script de configuration du cycle de vie](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).

1. Activez la validation du certificat en fournissant le chemin d'accès à votre certificat dans l'argument `--verify-certificate` de votre commande de connexion.

   ```
   %sm_analytics emr connect --cluster-id cluster_id \
   --verify-certificate /home/user/certificateKey.pem ...
   ```

Pour les certificats publics émis par une autorité de certification, définissez la validation du certificat en définissant le paramètre `--verify-certificate` comme `true`.

Vous pouvez également désactiver la validation du certificat en définissant le paramètre `--verify-certificate` comme `false`.

Vous pouvez trouver la liste des commandes de connexion disponibles pour un cluster Amazon EMR dans [Connexion à un cluster Amazon EMR à l’aide d’une commande de connexion](#connect-emr-clusters-manually).

# Résiliation d’un cluster Amazon EMR depuis Studio ou Studio Classic
<a name="terminate-emr-clusters"></a>

La procédure suivante montre comment résilier un cluster Amazon EMR depuis un bloc-notes Studio ou Studio Classic.

**Pour résilier un cluster dans un état `Running`, accédez à la liste des clusters Amazon EMR disponibles.**

1. Dans l’interface utilisateur de Studio, faites défiler l’écran jusqu’au nœud **Données** dans le menu de navigation de gauche.

1. Accédez au nœud **Clusters EMR**. Une page s’ouvre répertoriant les clusters Amazon EMR auxquels vous pouvez accéder.

1. Sélectionnez le nom du cluster que vous souhaitez résilier, puis choisissez **Résilier**.

1. Cela ouvre une fenêtre de confirmation vous informant que toute tâche en cours ou données de votre cluster seront définitivement perdues après la fin du cluster. Confirmez en choisissant à nouveau **Résilier**.

# Accès à l’interface utilisateur de Spark depuis Studio ou Studio Classic
<a name="studio-notebooks-access-spark-ui"></a>

Les sections suivantes fournissent des instructions pour accéder à l'interface utilisateur Spark depuis les blocs-notes SageMaker AI Studio ou Studio Classic. L’interface utilisateur Spark vous permet de surveiller et de déboguer vos tâches Spark soumises pour s’exécuter sur Amazon EMR à partir de blocs-notes Studio ou Studio Classic. Le tunneling SSH et le pré-signé URLs sont deux moyens d'accéder à l'interface utilisateur de Spark.

## Configurer le tunneling SSH pour l'accès à l'interface utilisateur Spark
<a name="studio-notebooks-emr-ssh-tunneling"></a>

Pour configurer le tunneling SSH pour accéder à l’interface utilisateur Spark, suivez l’une des deux options de cette section.

Options de configuration du tunnel SSH :
+ [Option 1 : Configuration d'un tunnel SSH vers le nœud maître à l'aide du réacheminement de port local](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-ssh-tunnel-local.html)
+ [Option 2, partie 1 : Configuration d'un tunnel SSH vers le nœud maître à l'aide du réacheminement de port dynamique](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-ssh-tunnel.html)

  [Option 2, partie 2 : Configuration des paramètres de proxy pour afficher les sites web hébergés sur le nœud maître](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-proxy.html)

Pour plus d'informations sur l'affichage des interfaces web hébergées sur les clusters Amazon EMR, consultez [Afficher les interfaces Web hébergées sur des clusters Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-web-interfaces.html). Vous pouvez également visiter votre console Amazon EMR pour accéder à l'interface utilisateur Spark.

**Note**  
Vous pouvez configurer un tunnel SSH même si les tunnels présignés ne URLs sont pas disponibles. 

## Présigné URLs
<a name="studio-notebooks-emr-spark-ui-presigned-urls"></a>

Pour créer en un clic URLs l'accès à l'interface utilisateur Spark sur Amazon EMR SageMaker à partir de blocs-notes Studio ou Studio Classic, vous devez activer les autorisations IAM suivantes. Choisissez l’option qui s’applique à votre cas : 
+ **Pour les clusters Amazon EMR qui se trouvent dans le même compte que le bloc-notes SageMaker Studio ou Studio Classic : ajoutez les autorisations suivantes au rôle d'exécution SageMaker Studio ou Studio Classic IAM.**
+ **Pour les clusters Amazon EMR qui se trouvent sur un autre compte (et non sur un bloc-notes SageMaker Studio ou Studio Classic) : ajoutez les autorisations suivantes au rôle multicompte pour lequel vous avez créé. [Établissement de la liste des clusters Amazon EMR depuis Studio ou Studio Classic](discover-emr-clusters.md)**

**Note**  
Vous pouvez accéder à la version présignée URLs depuis la console dans les régions suivantes :  
Région US East (N. Virginia)
Région US West (N. California)
Région Canada (Centre)
Région Europe (Francfort)
Région Europe (Stockholm)
Région Europe (Irlande)
Région Europe (Londres)
Région Europe (Paris)
Région Asia Pacific (Tokyo)
Région Asia Pacific (Seoul)
Région Asie-Pacifique (Sydney)
Région Asie-Pacifique (Mumbai)
Région Asie-Pacifique (Singapour)
Amérique du Sud (São Paulo)

 La politique suivante donne accès à des fichiers présignés URLs pour votre rôle d'exécution. 

```
{
        "Sid": "AllowPresignedUrl",
        "Effect": "Allow",
        "Action": [
            "elasticmapreduce:DescribeCluster",
            "elasticmapreduce:ListInstanceGroups",
            "elasticmapreduce:CreatePersistentAppUI",
            "elasticmapreduce:DescribePersistentAppUI",
            "elasticmapreduce:GetPersistentAppUIPresignedURL",
            "elasticmapreduce:GetOnClusterAppUIPresignedURL"
        ],
        "Resource": [
            "arn:aws:elasticmapreduce:region:account-id:cluster/*"
        ]
}
```

# Blogs et livres blancs
<a name="studio-notebooks-emr-resources"></a>

Les blogs suivants utilisent une étude de cas sur la prédiction des sentiments pour une critique de film afin d’illustrer le processus d’exécution d’un flux de travail complet de machine learning. Cela inclut la préparation des données, la surveillance des tâches Spark, ainsi que l’entraînement et le déploiement d’un modèle ML pour obtenir des prédictions directement depuis votre bloc-notes Studio ou Studio Classic.
+ [Créez et gérez des clusters Amazon EMR depuis SageMaker Studio ou Studio Classic pour exécuter des charges de travail interactives Spark et ML](https://aws.amazon.com/blogs/machine-learning/part-1-create-and-manage-amazon-emr-clusters-from-sagemaker-studio-to-run-interactive-spark-and-ml-workloads/).
+ Pour étendre le cas d'utilisation à une configuration entre comptes dans laquelle SageMaker Studio ou Studio Classic et votre cluster Amazon EMR sont déployés dans des comptes AWS distincts, [consultez Créer et gérer des clusters Amazon EMR SageMaker depuis Studio ou Studio Classic pour exécuter des charges de travail interactives Spark et ML -](https://aws.amazon.com/blogs/machine-learning/part-2-create-and-manage-amazon-emr-clusters-from-sagemaker-studio-to-run-interactive-spark-and-ml-workloads/) Partie 2.

Voir aussi : 
+ Présentation de la configuration d’[Accès à Apache Livy à l’aide d’un Network Load Balancer sur un cluster Amazon EMR compatible avec Kerberos](https://aws.amazon.com/blogs/big-data/access-apache-livy-using-a-network-load-balancer-on-a-kerberos-enabled-amazon-emr-cluster/)
+ AWS livres blancs sur les [meilleures pratiques de SageMaker Studio ou de Studio Classic](https://docs.aws.amazon.com/whitepapers/latest/sagemaker-studio-admin-best-practices/sagemaker-studio-admin-best-practices.html).

# Résolution des problèmes
<a name="studio-notebooks-emr-troubleshooting"></a>

Lorsque vous travaillez avec des clusters Amazon EMR à partir de bloc-notes Studio ou Studio Classic, vous pouvez rencontrer divers problèmes ou défis potentiels au cours du processus de connexion ou d’utilisation. Pour vous aider à résoudre ces erreurs, cette section fournit des conseils sur les problèmes courants qui peuvent survenir. 

Voici des erreurs courantes susceptibles de se produire lors de la connexion ou de l’utilisation de clusters Amazon EMR à partir de blocs-notes Studio ou Studio Classic.

## Résolution des problèmes de blocage ou d’échec des connexions Livy
<a name="studio-notebooks-emr-troubleshooting.memoryerror"></a>

Voici des problèmes de connectivité à Livy susceptibles de se produire lors de l’utilisation de clusters Amazon EMR à partir de blocs-notes Studio ou Studio Classic.
+ **Votre cluster Amazon EMR a rencontré une out-of-memory erreur.**

  Le blocage ou l'échec d'une connexion Livy peut `sparkmagic` être dû au fait que votre cluster Amazon EMR a rencontré out-of-memory une erreur. 

  Par défaut, le paramètre de configuration Java du pilote Apache Spark, `spark.driver.defaultJavaOptions`, est défini sur `-XX:OnOutOfMemoryError='kill -9 %p'`. Cela signifie que l'action par défaut effectuée lorsque le programme pilote rencontre une `OutOfMemoryError` est de résilier le programme pilote en envoyant un signal SIGKILL. Lorsque le pilote Apache Spark est résilié, toute connexion Livy via `sparkmagic` dépend du blocage ou de l'échec de ce pilote. Cela est dû au fait que le pilote Spark est responsable de la gestion des ressources de l'application Spark, notamment de la planification et de l'exécution des tâches. Sans le pilote, l'application Spark ne peut pas fonctionner et toute tentative d'interaction avec celui-ci échoue.

  Si vous pensez que votre cluster Spark rencontre des problèmes de mémoire, vous pouvez consulter les [journaux Amazon EMR.](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-manage-view-web-log-files.html) Les conteneurs tués en raison d' out-of-memoryerreurs sortent généralement avec un code de`137`. Dans ce cas, vous devez redémarrer l'application Spark et établir une nouvelle connexion Livy pour reprendre l'interaction avec le cluster Spark.

  Vous pouvez vous référer à l'article de la base de connaissances [Comment résoudre l'erreur « Conteneur tué par YARN pour dépassement des limites de mémoire » dans Spark on Amazon EMR](https://repost.aws/knowledge-center/emr-spark-yarn-memory-limit) ? AWS re:Post pour en savoir plus sur les différentes stratégies et paramètres qui peuvent être utilisés pour résoudre un out-of-memory problème.

  Nous vous recommandons de consulter les [Guides de bonnes pratiques Amazon EMR](https://aws.github.io/aws-emr-best-practices/) pour connaître les bonnes pratiques et les conseils de réglage relatifs à l'exécution des charges de travail Apache Spark sur vos clusters Amazon EMR.
+ **Votre session Livy expire lorsque vous vous connectez à un cluster Amazon EMR pour la première fois.**

  Lorsque vous vous connectez pour la première fois à un cluster Amazon EMR à l'aide d'Apache Livy [sagemaker-studio-analytics-extension](https://pypi.org/project/sagemaker-studio-analytics-extension/), qui permet la connexion à un cluster Spark (Amazon EMR) distant via la [SparkMagic](https://github.com/jupyter-incubator/sparkmagic)bibliothèque à l'aide d'[Apache Livy](https://livy.apache.org/), vous pouvez rencontrer une erreur de délai de connexion :

  `An error was encountered: Session 0 did not start up in 60 seconds.`

  Si votre cluster Amazon EMR nécessite l'initialisation d'une application Spark lors de l'établissement d'une connexion, il y a un risque accru de voir apparaître des erreurs de délai de connexion.

  Pour réduire les risques de délais d'attente lors de la connexion à un cluster Amazon EMR à l'aide de Livy via l'extension d'analyse `sagemaker-studio-analytics-extension` version `0.0.19`, remplacez le délai d'expiration de session du serveur par défaut par `120` secondes au lieu du délai par défaut de `sparkmagic` de `60` secondes.

  Nous vous recommandons de mettre à jour votre extension `0.0.18` en exécutant la commande de mise à niveau suivante.

  ```
  pip install --upgrade sagemaker-studio-analytics-extension
  ```

  Notez que lorsque vous fournissez une configuration de délai d'expiration personnalisée dans `sparkmagic`, `sagemaker-studio-analytics-extension` respecte cette dérogation. Cependant, la définition du délai d’expiration de session sur `60` secondes déclenche automatiquement le délai d’expiration de session du serveur par défaut de `120` secondes dans `sagemaker-studio-analytics-extension`.