

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Conectar a um cluster do Amazon EMR a partir de seu caderno
<a name="scheduled-notebook-connect-emr"></a>

Se você se conectar a um cluster do Amazon EMR a partir do seu caderno Jupyter no Studio, talvez seja necessário realizar uma configuração adicional. Em particular, a discussão a seguir aborda duas questões:
+ **Passando parâmetros para o comando de conexão do Amazon EMR.** Nos SparkMagic kernels, os parâmetros que você passa para o comando de conexão do Amazon EMR podem não funcionar conforme o esperado devido às diferenças na forma como o Papermill passa os parâmetros e como os recebe. SparkMagic A solução alternativa para lidar com essa limitação é passar parâmetros como variáveis de ambiente. Para obter mais detalhes sobre o problema e a solução alternativa, consulte [Passe parâmetros para o comando de conexão do EMR](#scheduled-notebook-connect-emr-pass-param).
+ **Transmissão de credenciais de usuário para clusters do Amazon EMR autenticados por Kerberos, LDAP ou HTTP Basic Auth**. No modo interativo, o Studio solicita credenciais em um formulário pop-up onde você pode inserir suas credenciais de login. Em seu caderno programado não interativo, você tem que passá-los pelo AWS Secrets Manager. Para obter mais detalhes sobre como usar o AWS Secrets Manager em seus trabalhos de notebook agendados, consulte[Passe as credenciais do usuário para seu cluster Amazon EMR autenticado por Kerberos, LDAP ou HTTP Basic Auth](#scheduled-notebook-connect-emr-credentials).

## Passe parâmetros para o comando de conexão do EMR
<a name="scheduled-notebook-connect-emr-pass-param"></a>

**Se você estiver usando imagens com os kernels SparkMagic PySpark e Spark e quiser parametrizar seu comando de conexão do EMR, forneça seus parâmetros no campo Variáveis de **ambiente em vez do** campo Parâmetros no formulário Create Job (no menu suspenso Additional Options).** Certifique-se de que seu comando de conexão do EMR no caderno Jupyter transmita esses parâmetros como variáveis de ambiente. Por exemplo, suponha que você passe `cluster-id` como uma variável de ambiente ao criar seu trabalho. Seu comando de conexão EMR deve ser semelhante ao seguinte:

```
%%local
import os
```

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

Você precisa dessa solução alternativa para atender aos requisitos da SparkMagic Papermill. Para o contexto em segundo plano, o SparkMagic kernel espera que o comando `%%local` mágico acompanhe todas as variáveis locais que você definir. No entanto, o Papermill não passa o comando mágico `%%local` com suas substituições. Para contornar essa limitação do Papermill, você deve fornecer seus parâmetros como variáveis de ambiente no campo **Variáveis de ambiente**.

## Passe as credenciais do usuário para seu cluster Amazon EMR autenticado por Kerberos, LDAP ou HTTP Basic Auth
<a name="scheduled-notebook-connect-emr-credentials"></a>

Para estabelecer uma conexão segura com um cluster do Amazon EMR que usa autenticação Kerberos, LDAP ou HTTP Basic Auth, você usa o AWS Secrets Manager para passar as credenciais do usuário para o seu comando de conexão. Para obter informações sobre como criar um segredo no Secrets Manager, consulte [Criar um segredo do AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). O segredo deve conter seu nome de usuário e senha. Você passa o segredo com o `--secrets` argumento, conforme mostrado no seguinte exemplo:

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

Seu administrador pode configurar uma política de acesso flexível usando um método attribute-based-access-control (ABAC), que atribui acesso com base em tags especiais. Você pode configurar o acesso flexível para criar um único segredo para todos os usuários da conta ou um segredo para cada usuário. Os exemplos de código a seguir demonstram esses cenários:

**Crie um único segredo para todos os usuários da conta**

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

------

**Crie um segredo diferente para cada usuário**

É possível criar um segredo diferente para cada usuário usando a `PrincipleTag` tag, conforme mostrado no seguinte exemplo:

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

------