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
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.
-
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, consultePasse as credenciais do usuário para seu cluster Amazon EMR autenticado por Kerberos, LDAP ou HTTP Basic Auth.
Passe parâmetros para o comando de conexão do EMR
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
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. 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
{ "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : {"AWS" : "arn:aws:iam::
AWS_ACCOUNT_ID
:role/service-role/AmazonSageMaker-ExecutionRole-20190101T012345"}, "Action" : "secretsmanager:GetSecretValue", "Resource" : [ "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID
:secret:aes123-1a2b3c", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID
:secret:aes456-4d5e6f", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID
: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:
{ "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : {"AWS" : "arn:aws:iam::
AWS_ACCOUNT_ID
: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:AWS_ACCOUNT_ID
:secret:aes123-1a2b3c", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID
:secret:aes456-4d5e6f", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID
:secret:aes789-7g8h9i" ] } ] }