

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Connessione a un cluster Amazon EMR dal notebook
<a name="scheduled-notebook-connect-emr"></a>

Se ti connetti a un cluster Amazon EMR dal tuo notebook Jupyter in Studio, potresti dover eseguire una configurazione aggiuntiva. In particolare, la discussione seguente affronta due questioni:
+ **Passaggio dei parametri al comando di connessione Amazon EMR**. Nei SparkMagic kernel, i parametri passati al comando di connessione Amazon EMR potrebbero non funzionare come previsto a causa delle differenze nel modo in cui Papermill passa i parametri e SparkMagic come li riceve. La soluzione alternativa per ovviare a questa limitazione consiste nel passare i parametri come variabili di ambiente. Per ulteriori dettagli sul problema e sulla soluzione alternativa, consulta [Passa i parametri al comando di connessione EMR](#scheduled-notebook-connect-emr-pass-param).
+ **Passaggio delle credenziali utente a cluster Amazon EMR autenticati con Kerberos, LDAP o HTTP Basic Auth**. In modalità interattiva, Studio richiede le credenziali in un modulo popup in cui è possibile inserire le credenziali di accesso. Nel tuo notebook pianificato non interattivo, devi passarle attraverso Gestione dei segreti AWS. Per ulteriori dettagli su come utilizzare i processi pianificati Gestione dei segreti AWS del notebook, consulta. [Passa le credenziali utente al cluster Amazon EMR autenticato con Kerberos, LDAP o HTTP Basic Auth](#scheduled-notebook-connect-emr-credentials)

## Passa i parametri al comando di connessione EMR
<a name="scheduled-notebook-connect-emr-pass-param"></a>

**Se utilizzi immagini con i kernel SparkMagic PySpark e Spark e desideri parametrizzare il comando di connessione EMR, fornisci i parametri nel campo Variabili di **ambiente anziché nel** campo Parametri nel modulo Create Job (nel menu a discesa Opzioni aggiuntive).** Assicurati che il comando di connessione EMR nel notebook Jupyter passi questi parametri come variabili di ambiente. Ad esempio, supponiamo che tu passi `cluster-id` come variabile di ambiente quando crei il tuo processo. Il comando di connessione EMR dovrebbe essere simile a quello riportato di seguito:

```
%%local
import os
```

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

Questa soluzione alternativa è necessaria per soddisfare i requisiti di and Papermill. SparkMagic Per quanto riguarda il contesto di base, il SparkMagic kernel si aspetta che il comando `%%local` magic accompagni tutte le variabili locali definite. Tuttavia, Papermill non passa il comando magic `%%local` con le sostituzioni. Per aggirare questa limitazione di Papermill, è necessario fornire i parametri come variabili di ambiente nel campo **Variabili di ambiente**.

## Passa le credenziali utente al cluster Amazon EMR autenticato con Kerberos, LDAP o HTTP Basic Auth
<a name="scheduled-notebook-connect-emr-credentials"></a>

Per stabilire una connessione sicura a un cluster Amazon EMR che utilizza l'autenticazione Kerberos, LDAP o HTTP Basic Auth, usi Gestione dei segreti AWS per passare le credenziali utente al comando di connessione. Per informazioni sulla creazione di un segreto in Secrets Manager, consulta la pagina [Crea un segreto Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). Il segreto deve contenere un nome utente e una password. Si passa il segreto con l'argomento `--secrets`, come illustrato nell'esempio seguente:

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

L'amministratore può impostare una politica di accesso flessibile utilizzando un metodo attribute-based-access-control (ABAC), che assegna l'accesso in base a tag speciali. È possibile configurare un accesso flessibile per creare un unico segreto per tutti gli utenti dell'account o un segreto per ogni utente. I seguenti esempi di codice illustrano questi scenari:

**Crea un unico segreto per tutti gli utenti dell'account**

------
#### [ 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"
            ]
        }
    ]
}
```

------

**Crea un segreto diverso per ogni utente**

Puoi creare un segreto diverso per ogni utente utilizzando il tag `PrincipleTag`, come mostrato nell'esempio seguente:

------
#### [ 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"
            ]
        }
    ]
}
```

------