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à.
Connect a un cluster Amazon EMR dal tuo notebook
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.
-
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 AWS Secrets Manager. Per ulteriori dettagli su come utilizzare i processi pianificati AWS Secrets Manager del notebook, consulta. Passa le credenziali utente al cluster Amazon EMR autenticato con Kerberos, LDAP o HTTP Basic Auth
Passa i parametri al comando di connessione EMR
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
Per stabilire una connessione sicura a un cluster Amazon EMR che utilizza l'autenticazione Kerberos, LDAP o HTTP Basic Auth, usi AWS Secrets Manager 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 AWS Secrets Manager. Il tuo segreto deve contenere nome utente e 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
{ "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" ] } ] }
Crea un segreto diverso per ogni utente
Puoi creare un segreto diverso per ogni utente utilizzando il tag PrincipleTag
, come mostrato nell'esempio seguente:
{ "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" ] } ] }