Configurazione delle autorizzazioni per abilitare la visualizzazione e l’avvio di applicazioni Amazon EMR da SageMaker Studio - Amazon SageMaker AI

Configurazione delle autorizzazioni per abilitare la visualizzazione e l’avvio di applicazioni Amazon EMR da SageMaker Studio

Questa sezione descrive in dettaglio i ruoli e le autorizzazioni necessari per elencare e connettersi alle applicazioni EMR Serverless da SageMaker Studio, considerando scenari in cui Studio e le applicazioni EMR Serverless vengono implementati nello stesso account AWS o su account diversi.

I ruoli ai quali è necessario aggiungere le autorizzazioni richieste variano a seconda che Studio e le applicazioni EMR Serverless risiedano nello stesso account AWS (Account singolo) o in account separati (Multi-account). Sono interessati due tipi di ruoli:

  • Ruoli di esecuzione:

    • Ruoli di esecuzione di runtime (ruoli del controllo degli accessi basato su ruoli) utilizzati da EMR Serverless: i ruoli IAM utilizzati dagli ambienti di esecuzione dei processi EMR Serverless per accedere ad altri servizi e risorse AWS necessari durante il runtime, come Amazon S3 per l’accesso ai dati, CloudWatch per la registrazione di log, l’accesso al Catalogo dati AWS Glue o altri servizi in base ai requisiti del carico di lavoro. Consigliamo di creare questi ruoli nell’account in cui sono in esecuzione le applicazioni EMR Serverless.

      Per ulteriori informazioni sui ruoli di runtime, consulta Ruoli di runtime del processo nella Guida per l’utente di EMR Serverless.

      Nota

      Puoi definire diversi ruoli RBAC per l’applicazione EMR Serverless. Questi ruoli possono essere basati sulle responsabilità e sui livelli di accesso necessari ai diversi utenti o gruppi all’interno dell’organizzazione. Per ulteriori informazioni sulle autorizzazioni RBAC, consulta Best practice sulla sicurezza per Amazon EMR serverless.

    • Ruolo di esecuzione di SageMaker AI: il ruolo di esecuzione che consente a SageMaker AI di eseguire determinate attività come la lettura dei dati dai bucket Amazon S3, la scrittura di log su CloudWatch e l’accesso ad altri servizi AWS eventualmente richiesti dal tuo flusso di lavoro. Il ruolo di esecuzione di SageMaker AI dispone anche di un’autorizzazione speciale chiamata iam:PassRole che consente a SageMaker AI di passare ruoli di esecuzione di runtime temporanei alle applicazioni EMR Serverless. Questi ruoli forniscono alle applicazioni EMR Serverless le autorizzazioni necessarie per interagire con altre risorse AWS mentre sono in esecuzione.

  • Ruoli assumibili (anche noti come Ruoli di accesso al servizio):

    • Questi sono i ruoli IAM che il ruolo di esecuzione di SageMaker AI può assumere per eseguire operazioni relative alla gestione delle applicazioni EMR Serverless. Questi ruoli definiscono le autorizzazioni e le policy di accesso necessarie per la visualizzazione, la connessione o la gestione delle applicazioni EMR Serverless. In genere vengono utilizzati in scenari multi-account, in cui le applicazioni EMR Serverless si trovano in un account AWS diverso rispetto al dominio SageMaker AI. Avere un ruolo IAM dedicato per le applicazioni EMR Serverless semplifica l’applicazione del principio del privilegio minimo e garantisce che Amazon EMR abbia solo le autorizzazioni necessarie per eseguire i tuoi processi, proteggendo al tempo stesso le altre risorse del tuo account AWS.

Se comprendi e configuri correttamente questi ruoli, puoi assicurarti che SageMaker Studio abbia le autorizzazioni necessarie per interagire con le applicazioni EMR Serverless, indipendentemente dal fatto che siano implementate nello stesso account o su account diversi.

Account singolo

I diagrammi seguenti illustrano i ruoli e le autorizzazioni necessari per elencare e connettersi alle applicazioni EMR Serverless da Studio quando Studio e le applicazioni sono implementati nello stesso account AWS.

Il diagramma mostra i ruoli e le autorizzazioni necessari per elencare e connettere le applicazioni EMR Serverless da Studio quando Studio e le applicazioni si trovano nello stesso account AWS.

Se le applicazioni Amazon EMR e Studio sono implementati nello stesso account AWS, procedi nel seguente modo:

  1. Fase 1. Recupera l’ARN del bucket Amazon S3 che utilizzi per le origini dati e l’archiviazione dei dati di output nella console di Amazon S3.

    Per informazioni su come cercare un bucket in base al nome, consulta Accesso e visualizzazione di un bucket Amazon S3. Per informazioni su come creare un bucket Amazon S3, consulta Creazione di un bucket.

  2. Fase 2. Crea almeno un ruolo di esecuzione di runtime del processo per l’applicazione EMR Serverless nel tuo account (EMRServerlessRuntimeExecutionRoleA nel diagramma del caso d’uso Account singolo riportato sopra). Scegli Policy di attendibilità personalizzata come entità attendibile. Aggiungi le autorizzazioni richieste dal tuo processo. Come minimo, hai bisogno dell’accesso completo a un bucket Amazon S3 e dell’accesso di creazione e lettura a AWS Glue.

    Per istruzioni dettagliate su come creare un nuovo ruolo di esecuzione di runtime per le applicazioni EMR Serverless, procedi nel seguente modo:

    1. Passare alla IAM console (Console IAM).

    2. Nel riquadro di navigazione a sinistra, scegli Policy, quindi scegli Crea policy.

    3. Aggiungi le autorizzazioni richieste dal tuo ruolo di runtime, assegna un nome alla policy, quindi scegli Crea policy.

      Puoi fare riferimento a Ruoli di runtime del processo per EMR Serverless per trovare esempi di policy di runtime per un ruolo di runtime EMR Serverless.

    4. Nel riquadro di navigazione a sinistra, scegli Ruoli, quindi Crea ruolo.

    5. Nella pagina Crea ruolo, scegli Policy di attendibilità personalizzata come entità attendibile.

    6. Incolla il documento JSON seguente nella sezione Policy di attendibilità personalizzata, quindi scegli Avanti.

      JSON
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    7. Nella pagina Aggiungi autorizzazioni, aggiungi la policy creata, quindi scegli Avanti.

    8. Nella pagina Verifica, inserisci un nome per il ruolo, ad esempio EMRServerlessAppRuntimeRoleA e una descrizione facoltativa.

    9. Verifica i dettagli del ruolo e scegli Create role (Crea ruolo).

    Grazie a questi ruoli, tu e i tuoi colleghi potete connettervi alla stessa applicazione, utilizzando un ruolo di runtime ciascuno con autorizzazioni corrispondenti al livello individuale di accesso ai dati.

    Nota

    Le sessioni Spark funzionano in modo diverso. Le sessioni Spark vengono isolate in base al ruolo di esecuzione utilizzato da Studio, quindi gli utenti con ruoli di esecuzione diversi avranno sessioni Spark separate e isolate. Inoltre, se hai abilitato l’identità di origine per il tuo dominio, le sessioni Spark sono ulteriormente isolate nelle varie identità di origine.

  3. Fase 3. Recupera l’ARN del ruolo di esecuzione di SageMaker AI utilizzato dal tuo spazio privato.

    Per informazioni sugli spazi e sui ruoli di esecuzione in SageMaker AI, consulta Informazioni sulle autorizzazioni e sui ruoli di esecuzione dello spazio del dominio.

    Per ulteriori informazioni su come recuperare l’ARN del ruolo di esecuzione di SageMaker AI, consulta Acquisizione del ruolo di esecuzione.

    Nota

    In alternativa, se non hai familiarità con SageMaker AI puoi semplificare il processo di configurazione creando automaticamente un nuovo ruolo di esecuzione di SageMaker AI con le autorizzazioni appropriate. In questo caso, salta le fasi 3 e 4. Puoi procedere come descritto di seguito:

    • Scegli l’opzione Configura per un’organizzazione quando crei un nuovo dominio dal menu Dominio nella navigazione a sinistra della console SageMaker AI.

    • Crea un nuovo ruolo di esecuzione dal menu Gestione dei ruoli della console, quindi collega il ruolo a un dominio o a un profilo utente esistente.

    Durante la creazione del ruolo, scegli l’opzione Esecuzione delle applicazioni EMR Serverless in Studio in Quali attività di ML eseguiranno gli utenti? Quindi, fornisci il nome del bucket Amazon S3 e il ruolo di esecuzione di runtime del processo che desideri che l’applicazione EMR Serverless utilizzi (Fase 2).

    Gestione dei ruoli di SageMaker aggiunge automaticamente le autorizzazioni necessarie per l’esecuzione e la connessione alle applicazioni EMR Serverless al nuovo ruolo di esecuzione. Con Gestione dei ruoli di SageMaker, puoi assegnare solo un ruolo di runtime all’applicazione EMR Serverless e l’applicazione deve essere eseguita nello stesso account in cui è implementato Studio, utilizzando un ruolo di runtime creato all’interno dello stesso account.

  4. Fase 4. Collega le autorizzazioni seguenti al ruolo di esecuzione di SageMaker AI che accede all’applicazione EMR Serverless.

    1. Aprire la console IAM all'indirizzo https://console.aws.amazon.com/sagemaker/.

    2. Scegli Ruoli, quindi cerca il tuo ruolo di esecuzione per nome nel campo di ricerca. Il nome del ruolo è l’ultima parte dell’ARN, dopo l’ultima barra (/).

    3. Segui il link per il tuo ruolo.

    4. Scegli Aggiungi autorizzazioni, quindi seleziona Crea policy inline.

    5. Nella scheda JSON, aggiungi le autorizzazioni Amazon EMR serverless che consentono l’accesso e le operazioni EMR Serverless. Per dettagli sul documento di policy, consulta Policy EMR Serverless in Policy di riferimento. Sostituisci region, accountID e i valori passati EMRServerlessAppRuntimeRole con i relativi valori effettivi prima di copiare l’elenco delle istruzioni nella policy inline del tuo ruolo.

      Nota

      Puoi includere tutte le stringhe ARN dei ruoli di runtime necessarie all’interno dell’autorizzazione, separandole con le virgole.

    6. Scegli Avanti, quindi assegna un nome alla policy.

    7. Scegli Crea policy.

    8. Ripeti la fase Crea policy inline per aggiungere un’altra policy inline che conceda al ruolo le autorizzazioni per aggiornare i domini, i profili utente e gli spazi. Per dettagli sul documento di policy SageMakerUpdateResourcesPolicy, consulta Policy relativa alle azioni di aggiornamento dello spazio, del profilo utente e del dominio in Policy di riferimento. Sostituisci region e accountID con i relativi valori effettivi prima di copiare l’elenco delle istruzioni nella policy inline del tuo ruolo.

  5. Fase 5.

    Associa l’elenco dei ruoli di runtime al tuo profilo utente o dominio per visualizzare l’elenco dei ruoli e selezionare quello da utilizzare per la connessione a un’applicazione EMR Serverless da JupyterLab. Puoi utilizzare la console SageMaker AI o lo script seguente. Tutti i processi Apache Spark, Apache Hive o Presto creati dal notebook avranno accesso solo ai dati e alle risorse consentiti dalle policy collegate al ruolo di runtime.

    Importante

    Se questa fase non viene completata, il notebook JupyterLab non verrà connesso a un’applicazione EMR Serverless.

    SageMaker AI console

    Per associare i ruoli di runtime al profilo utente o al dominio con la console SageMaker AI:

    1. Apri la console di SageMaker AI all’indirizzo https://console.aws.amazon.com/sagemaker/.

    2. Nel riquadro di navigazione a sinistra, scegli dominio, quindi seleziona il dominio utilizzando il ruolo di esecuzione di SageMaker AI di cui hai aggiornato le autorizzazioni.

      • Per aggiungere i ruoli di runtime al dominio: nella scheda Configurazioni app della pagina Dettagli del dominio, vai alla sezione JupyterLab.

      • Per aggiungere i ruoli di runtime al profilo utente: nella pagina Dettagli del dominio, scegli la scheda Profili utente e seleziona il profilo utente che utilizza il ruolo di esecuzione di SageMaker AI di cui hai aggiornato le autorizzazioni. Nella scheda Configurazioni app, vai alla sezione JupyterLab.

    3. Scegli Modifica e aggiungi gli ARN dei tuoi ruoli di esecuzione di runtime EMR Serverless.

    4. Scegli Invia.

    Alla successiva connessione a un’applicazione EMR Serverless tramite JupyterLab, i ruoli di runtime dovrebbero apparire in un menu a discesa per la selezione.

    Python script

    In un’applicazione JupyterLab avviata da uno spazio privato utilizzando il ruolo di esecuzione di SageMaker AI di cui hai aggiornato le autorizzazioni, utilizza il comando seguente in un terminale. Sostituisci domainID, user-profile-name, studio-accountID e EMRServerlessRuntimeExecutionRole con i valori corretti. Questo frammento di codice aggiorna le impostazioni per uno specifico profilo utente (client.update_user_profile) o le impostazioni del dominio (client.update_domain), associando in particolare i ruoli di esecuzione di runtime EMR Serverless creati in precedenza.

    import botocore.session import json sess = botocore.session.get_session() client = sess.create_client('sagemaker') client.update_user_profile( DomainId="domainID", UserProfileName="user-profile-name", DefaultUserSettings={ 'JupyterLabAppSettings': { 'EmrSettings': { 'ExecutionRoleArns': ["arn:aws:iam::studio-accountID:role/EMRServerlessRuntimeExecutionRoleA", "arn:aws:iam::studio-accountID:role/EMRServerlessRuntimeExecutionRoleAA"] } } }) resp = client.describe_domain(DomainId="domainID") resp['CreationTime'] = str(resp['CreationTime']) resp['LastModifiedTime'] = str(resp['LastModifiedTime']) print(json.dumps(resp, indent=2))

Multi-account

I diagrammi seguenti illustrano i ruoli e le autorizzazioni necessari per elencare e connettersi alle applicazioni EMR Serverless da Studio quando Studio e le applicazioni sono implementati in account AWS diversi.

Il diagramma mostra i ruoli e le autorizzazioni necessari per elencare e connettere le applicazioni EMR Serverless da Studio quando Studio e le applicazioni si trovano in account AWS diversi.

Per ulteriori informazioni sulla creazione di un ruolo su un account AWS, consulta https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html Creazione di un ruolo IAM (console).

Prima di iniziare:

Se le applicazioni EMR Serverless e Studio sono implementati in account AWS distinti, configura le autorizzazioni su entrambi gli account.

Sull’account EMR Serverless

Segui questa procedura per creare i ruoli e le policy necessari sull’account su cui è in esecuzione l’applicazione EMR Serverless, noto anche come account che concede l’attendibilità:

  1. Fase 1. Crea almeno un ruolo di esecuzione di runtime del processo per l’applicazione EMR Serverless nel tuo account (EMRServerlessRuntimeExecutionRoleB nel diagramma multi-account riportato sopra). Scegli Policy di attendibilità personalizzata come entità attendibile. Aggiungi le autorizzazioni richieste dal tuo processo. Come minimo, hai bisogno dell’accesso completo a un bucket Amazon S3 e dell’accesso di creazione e lettura a AWS Glue.

    Per istruzioni dettagliate su come creare un nuovo ruolo di esecuzione di runtime per le applicazioni EMR Serverless, procedi nel seguente modo:

    1. Passare alla IAM console (Console IAM).

    2. Nel riquadro di navigazione a sinistra, scegli Policy, quindi scegli Crea policy.

    3. Aggiungi le autorizzazioni richieste dal tuo ruolo di runtime, assegna un nome alla policy, quindi scegli Crea policy.

      Per esempi di policy di runtime per un ruolo di runtime EMR Serverless, consulta Ruoli di runtime del processo per Amazon EMR serverless.

    4. Nel riquadro di navigazione a sinistra, scegli Ruoli, quindi Crea ruolo.

    5. Nella pagina Crea ruolo, scegli Policy di attendibilità personalizzata come entità attendibile.

    6. Incolla il documento JSON seguente nella sezione Policy di attendibilità personalizzata, quindi scegli Avanti.

      JSON
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    7. Nella pagina Aggiungi autorizzazioni, aggiungi la policy creata, quindi scegli Avanti.

    8. Nella pagina Verifica, inserisci un nome per il ruolo, ad esempio EMRServerlessAppRuntimeRoleB e una descrizione facoltativa.

    9. Verifica i dettagli del ruolo e scegli Create role (Crea ruolo).

    Grazie a questi ruoli, tu e i tuoi colleghi potete connettervi alla stessa applicazione, utilizzando un ruolo di runtime ciascuno con autorizzazioni corrispondenti al livello individuale di accesso ai dati.

    Nota

    Le sessioni Spark funzionano in modo diverso. Le sessioni Spark vengono isolate in base al ruolo di esecuzione utilizzato da Studio, quindi gli utenti con ruoli di esecuzione diversi avranno sessioni Spark separate e isolate. Inoltre, se hai abilitato l’identità di origine per il tuo dominio, le sessioni Spark sono ulteriormente isolate nelle varie identità di origine.

  2. Fase 2. Crea un ruolo IAM personalizzato denominato AssumableRole con la seguente configurazione:

    • Autorizzazioni: concedi le autorizzazioni necessarie (policy Amazon EMR serverless) a AssumableRole per consentire l’accesso alle risorse EMR Serverless. Questo ruolo è noto anche come ruolo di accesso.

    • Relazione di attendibilità: configura la policy di attendibilità per AssumableRole per consentire l’assunzione del ruolo di esecuzione (SageMakerExecutionRole nel diagramma multi-account) dall’account Studio che richiede l’accesso.

    Assumendo il ruolo, Studio può ottenere l’accesso temporaneo alle autorizzazioni necessarie nell’account EMR Serverless.

    Per istruzioni dettagliate su come creare un nuovo AssumableRole nell’account AWS EMR Serverless, segui questa procedura:

    1. Passare alla IAM console (Console IAM).

    2. Nel riquadro di navigazione a sinistra, scegli Policy, quindi scegli Crea policy.

    3. Nella scheda JSON, aggiungi le autorizzazioni Amazon EMR serverless che consentono l’accesso e le operazioni EMR Serverless. Per dettagli sul documento di policy, consulta Policy EMR Serverless in Policy di riferimento. Sostituisci region, accountID e i valori passati EMRServerlessAppRuntimeRole con i relativi valori effettivi prima di copiare l’elenco delle istruzioni nella policy inline del tuo ruolo.

      Nota

      EMRServerlessAppRuntimeRole in questo caso è il ruolo di esecuzione di runtime del processo creato nella Fase 1 (EMRServerlessAppRuntimeRoleB nel diagramma multi-account riportato sopra). Puoi includere tutte le stringhe ARN dei ruoli di runtime necessarie all’interno dell’autorizzazione, separandole con le virgole.

    4. Scegli Avanti, quindi assegna un nome alla policy.

    5. Scegli Crea policy.

    6. Nel riquadro di navigazione a sinistra, scegli Ruoli, quindi Crea ruolo.

    7. Nella pagina Crea ruolo, scegli Policy di attendibilità personalizzata come entità attendibile.

    8. Incolla il documento JSON seguente nella sezione Policy di attendibilità personalizzata, quindi scegli Avanti.

      Sostituisci studio-account con l’ID dell’account Studio e AmazonSageMaker-ExecutionRole con il ruolo di esecuzione utilizzato dal tuo spazio JupyterLab.

      JSON
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole" }, "Action": "sts:AssumeRole" } ] }
    9. Nella pagina Aggiungi autorizzazioni, aggiungi l’autorizzazione EMRServerlessAppRuntimeRoleB creata nella Fase 2, quindi scegli Avanti.

    10. Nella pagina Verifica, inserisci un nome per il ruolo, ad esempio AssumableRole e una descrizione facoltativa.

    11. Verifica i dettagli del ruolo e scegli Create role (Crea ruolo).

    Per ulteriori informazioni sulla creazione di un ruolo su un account AWS, consulta Creazione di un ruolo IAM (console).

Sull’account Studio

Sull’account in cui è implementato Studio, noto anche come account reso attendibile, aggiorna il ruolo di esecuzione di SageMaker AI accedendo alle applicazioni EMR Serverless con le autorizzazioni necessarie per accedere alle risorse nell’account che concede l’attendibilità.

  1. Fase 1. Recupera l’ARN del ruolo di esecuzione di SageMaker AI utilizzato dal tuo spazio.

    Per informazioni sugli spazi e sui ruoli di esecuzione in SageMaker AI, consulta Informazioni sulle autorizzazioni e sui ruoli di esecuzione dello spazio del dominio.

    Per ulteriori informazioni su come recuperare l’ARN del ruolo di esecuzione di SageMaker AI, consulta Acquisizione del ruolo di esecuzione.

  2. Fase 2. Collega le autorizzazioni seguenti al ruolo di esecuzione di SageMaker AI che accede all’applicazione EMR Serverless.

    1. Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

    2. Scegli Ruoli, quindi cerca il tuo ruolo di esecuzione per nome nel campo di ricerca. Il nome del ruolo è l’ultima parte dell’ARN, dopo l’ultima barra (/).

    3. Segui il link per il tuo ruolo.

    4. Scegli Aggiungi autorizzazioni, quindi seleziona Crea policy inline.

    5. Nella scheda JSON, aggiungi la policy inline che concede al ruolo le autorizzazioni per aggiornare i domini, i profili utente e gli spazi. Per dettagli sul documento di policy SageMakerUpdateResourcesPolicy, consulta Policy relativa alle azioni di aggiornamento dello spazio, del profilo utente e del dominio in Policy di riferimento. Sostituisci region e accountID con i relativi valori effettivi prima di copiare l’elenco delle istruzioni nella policy inline del tuo ruolo.

    6. Scegli Avanti, quindi assegna un nome alla policy.

    7. Scegli Crea policy.

    8. Ripeti la fase Crea policy inline per aggiungere un’altra policy che conceda al ruolo di esecuzione le autorizzazioni necessarie per assumere AssumableRole e quindi eseguire le azioni consentite dalla policy di accesso del ruolo.

      Sostituisci emr-account con l’ID dell’account Amazon EMR serverless e AssumableRole con il nome del ruolo assumibile creato nell’account Amazon EMR serverless.

      JSON
      { "Version": "2012-10-17", "Statement": { "Sid": "AllowSTSToAssumeAssumableRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111122223333:role/AssumableRole" } }
  3. Fase 3.

    Associa l’elenco dei ruoli di runtime al tuo dominio o profilo utente in modo da poter sfogliare visivamente l’elenco dei ruoli e selezionare quello da utilizzare per la connessione a un’applicazione EMR Serverless da JupyterLab. Puoi utilizzare la console SageMaker AI o lo script seguente. Tutti i processi Apache Spark, Apache Hive o Presto creati dal notebook avranno accesso solo ai dati e alle risorse consentiti dalle policy collegate al ruolo di runtime.

    Importante

    Se questa fase non viene completata, il notebook JupyterLab non verrà connesso a un’applicazione EMR Serverless.

    SageMaker AI console

    Per associare i ruoli di runtime al profilo utente o al dominio con la console SageMaker AI:

    1. Apri la console di SageMaker AI all’indirizzo https://console.aws.amazon.com/sagemaker/.

    2. Nel riquadro di navigazione a sinistra, scegli dominio, quindi seleziona il dominio utilizzando il ruolo di esecuzione di SageMaker AI di cui hai aggiornato le autorizzazioni.

      • Per aggiungere i ruoli di runtime al dominio: nella scheda Configurazioni app della pagina Dettagli del dominio, vai alla sezione JupyterLab.

      • Per aggiungere i ruoli di runtime al profilo utente: nella pagina Dettagli del dominio, scegli la scheda Profili utente e seleziona il profilo utente che utilizza il ruolo di esecuzione di SageMaker AI di cui hai aggiornato le autorizzazioni. Nella scheda Configurazioni app, vai alla sezione JupyterLab.

    3. Scegli Modifica e aggiungi gli ARN del tuo ruolo assumibile e i ruoli di esecuzione di runtime di EMR Serverless.

    4. Scegli Invia.

    Alla successiva connessione a un’applicazione EMR Serverless tramite JupyterLab, i ruoli di runtime dovrebbero apparire in un menu a discesa per la selezione.

    Python script

    In un’applicazione JupyterLab avviata da uno spazio privato utilizzando il ruolo di esecuzione di SageMaker AI di cui hai aggiornato le autorizzazioni, utilizza il comando seguente in un terminale. Sostituisci domainID, user-profile-name, studio-accountID e EMRServerlessRuntimeExecutionRole con i valori corretti. Questo frammento di codice aggiorna le impostazioni per uno specifico profilo utente (client.update_user_profile) o le impostazioni del dominio (client.update_domain) all’interno di un dominio SageMaker AI. In particolare, imposta i ruoli di esecuzione di runtime per Amazon EMR serverless creati in precedenza. Consente inoltre all’applicazione JupyterLab di assumere un ruolo IAM particolare (AssumableRole) per l’esecuzione di applicazioni EMR Serverless all’interno dell’account Amazon EMR.

    import botocore.session import json sess = botocore.session.get_session() client = sess.create_client('sagemaker') client.update_user_profile( DomainId="domainID", UserProfileName="user-profile-name", DefaultUserSettings={ 'JupyterLabAppSettings': { 'EmrSettings': { 'AssumableRoleArns': ["arn:aws:iam::emr-accountID:role/AssumableRole"], 'ExecutionRoleArns': ["arn:aws:iam::emr-accountID:role/EMRServerlessRuntimeExecutionRoleA", "arn:aws:iam::emr-accountID:role/AnotherRuntimeExecutionRole"] } } }) resp = client.describe_user_profile(DomainId="domainID", UserProfileName=user-profile-name") resp['CreationTime'] = str(resp['CreationTime']) resp['LastModifiedTime'] = str(resp['LastModifiedTime']) print(json.dumps(resp, indent=2))

Policy di riferimento

  • Policy EMR Serverless: questa policy consente di gestire le applicazioni EMR Serverless, comprese le operazioni di visualizzazione, creazione (con i tag SageMaker AI richiesti), avvio, arresto, acquisizione di dettagli, eliminazione, accesso agli endpoint Livy e utilizzo di dashboard per l’esecuzione dei processi. Consente inoltre di passare al servizio il ruolo di runtime dell’applicazione EMR Serverless richiesto.

    • EMRServerlessListApplications: consente l’azione ListApplications su tutte le risorse EMR Serverless nella Regione e nell’account AWS specificati.

    • EMRServerlessPassRole: consente di passare il ruolo o i ruoli di runtime specificati nell’account AWS fornito, ma solo quando il ruolo viene passato a emr-serverless.amazonaws.com service.

    • EMRServerlessCreateApplicationAction: consente le azioni CreateApplication e TagResource sulle risorse EMR Serverless nella Regione e nell’account AWS specificati. Tuttavia, richiede che le risorse create o taggate abbiano chiavi di tag specifiche (sagemaker:domain-arn, sagemaker:user-profile-arn e sagemaker:space-arn) impostate con valori non nulli.

    • EMRServerlessDenyTaggingAction: consente le azioni TagResource e UntagResource sulle risorse EMR Serverless nella Regione e nell’account AWS specificati se nelle risorse non sono impostate le chiavi di tag specificate (sagemaker:domain-arn, sagemaker:user-profile-arn e sagemaker:space-arn).

    • EMRServerlessActions: consente varie azioni (StartApplication, StopApplication, GetApplication, DeleteApplication, AccessLivyEndpoints e GetDashboardForJobRun) sulle risorse EMR Serverless, ma solo se le risorse hanno le chiavi di tag specificate (sagemaker:domain-arn, sagemaker:user-profile-arn e sagemaker:space-arn) impostate con valori non nulli.

    La policy IAM definita nel documento JSON fornito concede tali autorizzazioni, ma consente l’accesso solo in presenza di specifici tag SageMaker AI sulle applicazioni EMR Serverless per garantire la gestione solo delle risorse Amazon EMR serverless associate a un particolare dominio, profilo utente e spazio SageMaker AI.

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Sid": "EMRServerlessListApplications", "Effect": "Allow", "Action": [ "emr-serverless:ListApplications" ], "Resource": "arn:aws:emr-serverless:us-east-1:111122223333:/*" }, { "Sid": "EMRServerlessPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::111122223333:role/EMRServerlessAppRuntimeRole", "Condition": { "StringLike": { "iam:PassedToService": "emr-serverless.amazonaws.com" } } }, { "Sid": "EMRServerlessCreateApplicationAction", "Effect": "Allow", "Action": [ "emr-serverless:CreateApplication", "emr-serverless:TagResource" ], "Resource": "arn:aws:emr-serverless:us-east-1:111122223333:/*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "sagemaker:domain-arn", "sagemaker:user-profile-arn", "sagemaker:space-arn" ] }, "Null": { "aws:RequestTag/sagemaker:domain-arn": "false", "aws:RequestTag/sagemaker:user-profile-arn": "false", "aws:RequestTag/sagemaker:space-arn": "false" } } }, { "Sid": "EMRServerlessDenyTaggingAction", "Effect": "Deny", "Action": [ "emr-serverless:TagResource", "emr-serverless:UntagResource" ], "Resource": "arn:aws:emr-serverless:us-east-1:111122223333:/*", "Condition": { "Null": { "aws:ResourceTag/sagemaker:domain-arn": "true", "aws:ResourceTag/sagemaker:user-profile-arn": "true", "aws:ResourceTag/sagemaker:space-arn": "true" } } }, { "Sid": "EMRServerlessActions", "Effect": "Allow", "Action": [ "emr-serverless:StartApplication", "emr-serverless:StopApplication", "emr-serverless:GetApplication", "emr-serverless:DeleteApplication", "emr-serverless:AccessLivyEndpoints", "emr-serverless:GetDashboardForJobRun" ], "Resource": "arn:aws:emr-serverless:us-east-1:111122223333:/applications/*", "Condition": { "Null": { "aws:ResourceTag/sagemaker:domain-arn": "false", "aws:ResourceTag/sagemaker:user-profile-arn": "false", "aws:ResourceTag/sagemaker:space-arn": "false" } } } ] }
  • Policy relativa alle azioni di aggiornamento dello spazio, del profilo utente e del dominio: la policy seguente concede le autorizzazioni per aggiornare i domini, i profili utente e gli spazi SageMaker AI all’interno della Regione e dell’account AWS specificati.

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Sid": "SageMakerUpdateResourcesPolicy", "Effect": "Allow", "Action": [ "sagemaker:UpdateDomain", "sagemaker:UpdateUserprofile", "sagemaker:UpdateSpace" ], "Resource": [ "arn:aws:sagemaker:us-east-1:111122223333:domain/*", "arn:aws:sagemaker:us-east-1:111122223333:user-profile/*" ] } ] }