Connettiti a un EMR cluster Amazon da Studio Classic utilizzando IAM i ruoli di runtime - Amazon SageMaker

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à.

Connettiti a un EMR cluster Amazon da Studio Classic utilizzando IAM i ruoli di runtime

Quando ti connetti a un EMR cluster Amazon dal tuo notebook Amazon SageMaker Studio Classic, puoi sfogliare visivamente un elenco di IAM ruoli, noti come ruoli di runtime, e selezionarne uno al volo. Successivamente, tutti i job Apache Spark, Apache Hive o Presto creati dal notebook Studio Classic accedono solo ai dati e alle risorse consentiti dalle policy associate al ruolo di runtime. Inoltre, quando si accede ai dati dai data lake gestiti con AWS Lake Formation, è possibile imporre l'accesso a livello di tabella e colonna utilizzando le policy associate al ruolo di runtime.

Grazie a questa funzionalità, tu e i tuoi colleghi potete connettervi allo stesso cluster, utilizzando ciascuno un ruolo di runtime con autorizzazioni corrispondenti al livello individuale di accesso ai dati. Le sessioni sono inoltre isolate l'una dall'altra nel cluster condiviso. Grazie a questa capacità di controllare l'accesso granulare ai dati sullo stesso cluster condiviso, puoi semplificare il provisioning dei cluster EMR Amazon, ridurre il sovraccarico operativo e risparmiare sui costi.

Per provare questa nuova funzionalità, consulta Applica controlli granulari di accesso ai dati con e AWS Lake Formation Amazon di EMR Amazon SageMaker Studio Classic. Questo post del blog ti aiuta a configurare un ambiente demo in cui puoi provare a utilizzare ruoli di runtime preconfigurati per connetterti ai EMR cluster Amazon.

Prerequisiti

Prima di iniziare, assicurati di soddisfare i seguenti requisiti preliminari:

  • Usa Amazon EMR versione 6.9 o successiva.

  • Usa JupyterLab la versione 3 nella configurazione dell'applicazione del server Studio Classic Jupyter. Questa versione supporta la connessione Studio Classic ai EMR cluster Amazon utilizzando ruoli di runtime.

  • Consenti l'uso di ruoli di runtime nella configurazione di sicurezza del cluster. Per ulteriori informazioni, consulta Ruoli di runtime per Amazon EMR steps.

  • Crea un notebook con uno qualsiasi dei kernel elencati in Guida per l'utente.

  • Assicurati di leggere le istruzioni contenute in Configura Studio Classic per utilizzare i IAM ruoli di runtime per configurare i ruoli di runtime con Studio Classic.

Scenari di connessione multi-account

L'autenticazione con ruolo di runtime supporta una varietà di scenari di connessione tra account quando i dati risiedono all'esterno dell'account Studio Classic. L'immagine seguente mostra tre diversi modi in cui puoi assegnare il EMR cluster Amazon, i dati e persino il ruolo di EMR esecuzione Amazon tra Studio Classic e gli account di dati:

Scenari tra account supportati dall'autenticazione dei IAM ruoli di runtime.

Nell'opzione 1, il tuo EMR cluster Amazon e il ruolo di EMR esecuzione Amazon si trovano in un account dati separato dal tuo account Studio Classic. Definisci una politica di autorizzazione separata per il ruolo di EMR accesso Amazon che concede l'autorizzazione al tuo ruolo di esecuzione di Studio Classic per assumere il ruolo di EMR accesso Amazon. Il ruolo di EMR accesso Amazon chiama quindi Amazon per EMR API GetClusterSessionCredentials conto del tuo ruolo di esecuzione di Studio Classic, fornendoti l'accesso al cluster.

Nell'opzione 2, il tuo EMR cluster Amazon e il ruolo di EMR esecuzione Amazon si trovano nel tuo account Studio Classic. Il tuo ruolo di esecuzione di Studio Classic è autorizzato EMR API GetClusterSessionCredentials a utilizzare Amazon per accedere al tuo cluster. Per accedere al bucket Amazon S3, concedi al ruolo di EMR esecuzione Amazon le autorizzazioni di accesso al bucket Amazon S3 su più account: concedi queste autorizzazioni nell'ambito della tua policy sui bucket Amazon S3.

Nell'opzione 3, i tuoi EMR cluster Amazon si trovano nel tuo account Studio Classic e il ruolo di EMR esecuzione di Amazon è nell'account dati. Il tuo ruolo di esecuzione di Studio Classic è autorizzato EMR API GetClusterSessionCredentials a utilizzare Amazon per accedere al tuo cluster. Aggiungi il ruolo di EMR esecuzione di Amazon nella configurazione del ruolo di esecuzioneJSON. Quindi puoi selezionare il ruolo nell'interfaccia utente quando scegli il cluster. Per dettagli su come configurare il JSON file di configurazione del ruolo di esecuzione, consultaPrecarica i tuoi ruoli di esecuzione in Studio Classic.

Configura Studio Classic per utilizzare i IAM ruoli di runtime

Per stabilire l'autenticazione dei ruoli di runtime per i tuoi EMR cluster Amazon, configura le IAM politiche, la rete e i miglioramenti dell'usabilità richiesti. La configurazione dipende dal fatto che tu gestisca eventuali accordi tra account se EMR i cluster Amazon, il ruolo di EMR esecuzione di Amazon o entrambi risiedono al di fuori del tuo account Amazon SageMaker Studio Classic. La discussione seguente illustra le politiche da installare, come configurare la rete per consentire il traffico tra più account e il file di configurazione locale da configurare per automatizzare la connessione AmazonEMR.

Configura l'autenticazione del ruolo di runtime quando il EMR cluster Amazon e Studio Classic si trovano nello stesso account

Se il tuo EMR cluster Amazon risiede nel tuo account Studio Classic, aggiungi la politica di base per connetterti al EMR cluster Amazon e imposta le autorizzazioni per chiamare Amazon EMR APIGetClusterSessionCredentials, che ti dà accesso al cluster. Completa i seguenti passaggi per aggiungere le autorizzazioni necessarie alla tua politica di esecuzione di Studio Classic:

  1. Aggiungi la IAM policy richiesta per connetterti ai EMR cluster Amazon. Per informazioni dettagliate, consultare Elenca EMR i cluster Amazon da Studio o Studio Classic.

  2. Concedi l'autorizzazione a chiamare Amazon EMR API GetClusterSessionCredentials quando superi uno o più ruoli di EMR esecuzione Amazon consentiti specificati nella politica.

  3. (Facoltativo) Concedi l'autorizzazione a trasferire IAM ruoli che seguono qualsiasi convenzione di denominazione definita dall'utente.

  4. (Facoltativo) Concedi l'autorizzazione per accedere ai EMR cluster Amazon etichettati con stringhe specifiche definite dall'utente.

  5. Se non desideri chiamare manualmente il comando di EMR connessione Amazon, installa un file di SageMaker configurazione nell'Amazon locale EFS e seleziona il ruolo da utilizzare quando selezioni il tuo EMR cluster Amazon. Per informazioni dettagliate su come precaricare i IAM ruoli, consultaPrecarica i tuoi ruoli di esecuzione in Studio Classic.

La seguente policy di esempio consente di chiamare i ruoli di EMR esecuzione di Amazon appartenenti ai gruppi di modellazione e formazione. GetClusterSessionCredentials Inoltre, l'assicurato può accedere ai EMR cluster Amazon contrassegnati con le stringhe o. modeling training

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "elasticmapreduce:GetClusterSessionCredentials", "Resource": "*", "Condition": { "StringLike": { "elasticmapreduce:ExecutionRoleArn": [ "arn:aws:iam::123456780910:role/emr-execution-role-ml-modeling*", "arn:aws:iam::123456780910:role/emr-execution-role-ml-training*" ], "elasticmapreduce:ResourceTag/group": [ "*modeling*", "*training*" ] } } } ] }

Configura l'autenticazione del ruolo di runtime quando il cluster e Studio Classic si trovano in account diversi

Se il tuo EMR cluster Amazon non si trova nel tuo account Studio Classic, consenti al ruolo di esecuzione di Studio Classic di assumere il ruolo di EMR accesso Amazon su più account in modo da poterti connettere al cluster. Completa le fasi seguenti per eseguire la configurazione multi-account:

  1. Crea la tua politica di autorizzazione del ruolo di esecuzione di Studio Classic in modo che il ruolo di esecuzione possa assumere il ruolo di Amazon EMR Access. Di seguito è riportato un esempio di policy:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAssumeCrossAccountEMRAccessRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::emr_account_id:role/emr-access-role-name" } ] }
  2. Crea la politica di fiducia per specificare a IDs quali account Studio Classic è affidato il ruolo di Amazon EMR Access. Di seguito è riportato un esempio di policy:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountSageMakerExecutionRoleToAssumeThisRole", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::studio_account_id:role/studio_execution_role" }, "Action": "sts:AssumeRole" } }
  3. Crea la politica di autorizzazione del ruolo di EMR accesso Amazon, che concede al ruolo di EMR esecuzione di Amazon le autorizzazioni necessarie per eseguire le attività previste sul cluster. Configura il ruolo di EMR accesso Amazon per chiamarlo API GetClusterSessionCredentials con i ruoli di EMR esecuzione di Amazon specificati nella politica di autorizzazione del ruolo di accesso. Di seguito è riportato un esempio di policy:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallingEmrGetClusterSessionCredentialsAPI", "Effect": "Allow", "Action": "elasticmapreduce:GetClusterSessionCredentials", "Resource": "", "Condition": { "StringLike": { "elasticmapreduce:ExecutionRoleArn": [ "arn:aws:iam::emr_account_id:role/emr-execution-role-name" ] } } } ] }
  4. Configura la rete tra account in modo che il traffico possa spostarsi avanti e indietro tra i tuoi account. Per istruzioni guidate, consulta Configurare la rete nel post del blog Creare e gestire Amazon EMR Clusters from SageMaker Studio Classic per eseguire carichi di lavoro Spark e ML interattivi — Parte 2. Le fasi descritte nel post del blog ti aiutano a completare le seguenti attività:

    1. VPC-collega il tuo account Studio Classic e il tuo EMR account Amazon per stabilire una connessione.

    2. Aggiungi manualmente i percorsi alle tabelle di routing delle sottoreti private in entrambi gli account. Ciò consente la creazione e la connessione di EMR cluster Amazon dall'account Studio Classic alla sottorete privata dell'account remoto.

    3. Configura il gruppo di sicurezza collegato al tuo dominio Studio Classic per consentire il traffico in uscita e il gruppo di sicurezza del nodo EMR primario Amazon per consentire il TCP traffico in entrata dal gruppo di sicurezza delle istanze Studio Classic.

  5. Se non desideri chiamare manualmente il comando di EMR connessione Amazon, installa un file di SageMaker configurazione nell'Amazon locale in EFS modo da poter selezionare il ruolo da utilizzare quando scegli il tuo EMR cluster Amazon. Per informazioni dettagliate su come precaricare i IAM ruoli, consultaPrecarica i tuoi ruoli di esecuzione in Studio Classic.

Configura l'accesso a Lake Formation

Quando accedi ai dati dai data lake gestiti da AWS Lake Formation, puoi imporre l'accesso a livello di tabella e colonna utilizzando le policy allegate al tuo ruolo di runtime. Per configurare l'autorizzazione per l'accesso a Lake Formation, consulta Integrate Amazon EMR with AWS Lake Formation.

Precarica i tuoi ruoli di esecuzione in Studio Classic

Se non desideri chiamare manualmente il comando di EMR connessione Amazon, puoi installare un file di SageMaker configurazione nell'Amazon locale in EFS modo da poter selezionare il ruolo di esecuzione da utilizzare quando scegli il tuo EMR cluster Amazon.

Per scrivere un file di configurazione per i ruoli di EMR esecuzione di Amazon, associa a Utilizza le configurazioni del ciclo di vita per personalizzare Studio Classic (LCC) all'applicazione server Jupyter. In alternativa, puoi scrivere o aggiornare il file di configurazione e riavviare il server Jupyter con il comando: restart-jupyter-server.

Il seguente frammento è un esempio di script LCC bash che puoi applicare se l'applicazione Studio Classic e il cluster si trovano nello stesso account:

#!/bin/bash set -eux FILE_DIRECTORY="/home/sagemaker-user/.sagemaker-analytics-configuration-DO_NOT_DELETE" FILE_NAME="emr-configurations-DO_NOT_DELETE.json" FILE="$FILE_DIRECTORY/$FILE_NAME" mkdir -p $FILE_DIRECTORY cat << 'EOF' > "$FILE" { "emr-execution-role-arns": { "123456789012": [ "arn:aws:iam::123456789012:role/emr-execution-role-1", "arn:aws:iam::123456789012:role/emr-execution-role-2" ] } } EOF

Se l'applicazione Studio Classic e i cluster si trovano in account diversi, specifica i ruoli di EMR accesso Amazon che possono utilizzare il cluster. Nella seguente politica di esempio, 123456789012 è l'account ARN del EMR cluster Amazon e 212121212121 e 434343434343 sono i ruoli di accesso Amazon consentiti. ARNs EMR

#!/bin/bash set -eux FILE_DIRECTORY="/home/sagemaker-user/.sagemaker-analytics-configuration-DO_NOT_DELETE" FILE_NAME="emr-configurations-DO_NOT_DELETE.json" FILE="$FILE_DIRECTORY/$FILE_NAME" mkdir -p $FILE_DIRECTORY cat << 'EOF' > "$FILE" { "emr-execution-role-arns": { "123456789012": [ "arn:aws:iam::212121212121:role/emr-execution-role-1", "arn:aws:iam::434343434343:role/emr-execution-role-2" ] } } EOF # add your cross-account EMR access role FILE_DIRECTORY="/home/sagemaker-user/.cross-account-configuration-DO_NOT_DELETE" FILE_NAME="emr-discovery-iam-role-arns-DO_NOT_DELETE.json" FILE="$FILE_DIRECTORY/$FILE_NAME" mkdir -p $FILE_DIRECTORY cat << 'EOF' > "$FILE" { "123456789012": "arn:aws:iam::123456789012:role/cross-account-emr-access-role" } EOF