

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.

# 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 scientifiques des données de découvrir les clusters Amazon EMR, puis de s’y connecter 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 la section [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 les ARN de votre rôle assumable (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.