

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.

# Connexion à un cluster Amazon EMR à partir de votre bloc-notes
<a name="scheduled-notebook-connect-emr"></a>

Si vous vous connectez à un cluster Amazon EMR à partir de votre bloc-notes Jupyter dans Studio, vous devrez peut-être effectuer une configuration supplémentaire. La discussion suivante aborde en particulier deux questions :
+ **Transmission de paramètres à votre commande de connexion EMR dans votre bloc-notes**. Dans SparkMagic les noyaux, les paramètres que vous transmettez à votre commande de connexion Amazon EMR peuvent ne pas fonctionner comme prévu en raison des différences entre la manière dont Papermill transmet les paramètres et SparkMagic reçoit les paramètres. La solution de contournement pour remédier à cette limitation consiste à transmettre des paramètres sous forme de variables d'environnement. Pour plus d’informations sur le problème et la solution de contournement, consultez [Transmettez des paramètres à votre commande de connexion EMR](#scheduled-notebook-connect-emr-pass-param).
+ **Transmission des informations d'identification utilisateur aux clusters Amazon Auth-authenticated EMR Kerberos, LDAP ou HTTP Basic**. En mode interactif, Studio demande des informations d'identification dans un formulaire contextuel dans lequel vous pouvez saisir vos informations d'identification de connexion. Dans votre bloc-notes planifié non interactif, vous devez les transmettre via AWS Secrets Manager. Pour plus de détails sur la façon d'utiliser les tâches planifiées AWS Secrets Manager dans votre bloc-notes, consultez[Transmettez les informations d'identification utilisateur à votre cluster Amazon Auth-authenticated EMR Kerberos, LDAP ou HTTP Basic](#scheduled-notebook-connect-emr-credentials).

## Transmettez des paramètres à votre commande de connexion EMR
<a name="scheduled-notebook-connect-emr-pass-param"></a>

Si vous utilisez des images avec les noyaux SparkMagic PySpark et Spark et que vous souhaitez paramétrer votre commande de connexion EMR, entrez vos paramètres dans le champ **Variables d'environnement** plutôt que dans le champ Paramètres du formulaire Create Job (dans le menu déroulant Options **supplémentaires**). Assurez-vous que votre commande de connexion EMR dans le bloc-notes Jupyter transmet ces paramètres en tant que variables d'environnement. Supposons, par exemple, que vous transmettiez `cluster-id` en tant que variable d’environnement lorsque vous créez votre tâche. Votre commande de connexion EMR devrait ressembler à l'exemple suivant :

```
%%local
import os
```

```
%sm_analytics emr connect —cluster-id {os.getenv('cluster_id')} --auth-type None
```

Vous avez besoin de cette solution pour répondre aux exigences de Papermill SparkMagic et de Papermill. Pour le contexte d'arrière-plan, le SparkMagic noyau s'attend à ce que la commande `%%local` magique accompagne toutes les variables locales que vous définissez. Cependant, Papermill ne transmet pas la commande magique `%%local` avec vos remplacements. Pour contourner cette limitation de Papermill, vous devez fournir vos paramètres sous forme de variables d'environnement dans le champ **Environment variables** (Variables d'environnement).

## Transmettez les informations d'identification utilisateur à votre cluster Amazon Auth-authenticated EMR Kerberos, LDAP ou HTTP Basic
<a name="scheduled-notebook-connect-emr-credentials"></a>

Pour établir une connexion sécurisée à un cluster Amazon EMR qui utilise l'authentification Kerberos, LDAP ou HTTP Basic Auth, vous utilisez la commande AWS Secrets Manager pour transmettre les informations d'identification utilisateur à votre commande de connexion. Pour plus d’informations sur la création d’un secret Secrets Manager, consultez [Création d’un secret AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). Votre secret doit contenir votre nom d’utilisateur et votre mot de passe. Vous transmettez le secret avec l’argument `--secrets`, comme le montre l’exemple suivant :

```
%sm_analytics emr connect --cluster-id j_abcde12345 
    --auth Kerberos 
    --secret aws_secret_id_123
```

Votre administrateur peut définir une stratégie d'accès flexible à l'aide d'une méthode de contrôle d'accès par attributs (ABAC), qui attribue l'accès en fonction de balises spéciales. Vous pouvez configurer un accès flexible afin de créer un secret unique pour tous les utilisateurs du compte ou un secret pour chaque utilisateur. Les exemples de code suivants illustrent ces scénarios :

**Créer un secret unique pour tous les utilisateurs du compte**

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:role/service-role/AmazonSageMaker-ExecutionRole-20190101T012345"
            },
            "Action": "secretsmanager:GetSecretValue",
            "Resource": [
                "arn:aws:secretsmanager:us-west-2:{{111122223333}}:secret:aes123-1a2b3c",
                "arn:aws:secretsmanager:us-west-2:{{111122223333}}:secret:aes456-4d5e6f",
                "arn:aws:secretsmanager:us-west-2:{{111122223333}}:secret:aes789-7g8h9i"
            ]
        }
    ]
}
```

------

**Créer un secret différent pour chaque utilisateur**

Vous pouvez créer un secret différent pour chaque utilisateur à l’aide de la balise `PrincipleTag`, comme illustré dans l’exemple suivant :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:role/service-role/AmazonSageMaker-ExecutionRole-20190101T012345"
            },
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/{{user-identity}}": "${aws:PrincipalTag/{{user-identity}}}"
                }
            },
            "Action": "secretsmanager:GetSecretValue",
            "Resource": [
                "arn:aws:secretsmanager:us-west-2:{{111122223333}}:secret:aes123-1a2b3c",
                "arn:aws:secretsmanager:us-west-2:{{111122223333}}:secret:aes456-4d5e6f",
                "arn:aws:secretsmanager:us-west-2:{{111122223333}}:secret:aes789-7g8h9i"
            ]
        }
    ]
}
```

------