Configura le autorizzazioni per abilitare la pubblicazione e l'avvio di applicazioni Amazon EMR da Studio SageMaker - Amazon SageMaker AI

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

Configura le autorizzazioni per abilitare la pubblicazione e l'avvio di applicazioni Amazon EMR da Studio SageMaker

In questa sezione, descriviamo in dettaglio i ruoli e le autorizzazioni necessari per elencare e connettersi alle applicazioni SageMaker EMR Serverless di Studio, considerando gli scenari in cui Studio e le applicazioni EMR Serverless vengono distribuite nello stesso account o tra account diversi. AWS

I ruoli a cui è necessario aggiungere le autorizzazioni necessarie dipendono dal fatto che Studio e le applicazioni EMR Serverless risiedano AWS nello stesso account (Account singolo) o in account separati (Cross Account). Sono coinvolti due tipi di ruoli:

  • Ruoli di esecuzione:

    • Ruoli di esecuzione in fase di esecuzione (ruoli Role-Based Access Control) utilizzati da EMR Serverless: questi sono i ruoli IAM utilizzati dagli ambienti di esecuzione dei lavori EMR Serverless per accedere ad altri AWS servizi e risorse necessari durante il runtime, come Amazon S3 per l'accesso ai dati, per la registrazione, CloudWatch l'accesso al Data Catalog o altri servizi in base ai requisiti del AWS Glue carico di lavoro. Si consiglia di creare questi ruoli nell'account in cui sono in esecuzione le applicazioni EMR Serverless.

      Per ulteriori informazioni sui ruoli di runtime, vedere Job runtime roles nella EMR Serverless User Guide.

      Nota

      È possibile 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 di sicurezza per Amazon Amazon EMR Serverless.

    • SageMaker Ruolo di esecuzione AI: il ruolo di esecuzione che consente all' SageMaker IA di eseguire determinate attività come leggere dati dai bucket Amazon S3, scrivere log e accedere ad CloudWatch altri AWS servizi di cui il tuo flusso di lavoro potrebbe aver bisogno. Il ruolo di esecuzione SageMaker AI dispone anche dell'autorizzazione speciale chiamata iam:PassRole che consente all' SageMaker IA di passare ruoli di esecuzione temporanei in fase di esecuzione alle applicazioni EMR Serverless. Questi ruoli forniscono alle applicazioni EMR Serverless le autorizzazioni necessarie per interagire con altre AWS risorse mentre sono in esecuzione.

  • Ruoli ipotizzabili (denominati anche 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 politiche di accesso necessarie per l'elenco, la connessione o la gestione delle applicazioni EMR Serverless. In genere vengono utilizzati in scenari tra account, in cui le applicazioni EMR Serverless si trovano in un account AWS diverso rispetto SageMaker al dominio AI. Avere un ruolo IAM dedicato per le tue applicazioni EMR Serverless aiuta a seguire il principio del privilegio minimo e garantisce che Amazon EMR disponga solo delle autorizzazioni necessarie per eseguire i tuoi lavori, proteggendo al contempo le altre risorse del tuo account. AWS

Comprendendo e configurando correttamente questi ruoli, è possibile garantire che SageMaker Studio disponga delle autorizzazioni necessarie per interagire con le applicazioni EMR Serverless, indipendentemente dal fatto che siano distribuite nello stesso account o su account diversi.

Account singolo

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

Il diagramma mostra i ruoli e le autorizzazioni necessari per elencare e connettere le applicazioni EMR Serverless di Studio quando Studio e le applicazioni hanno lo stesso account. AWS

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

  1. Passaggio 1: recupera l'ARN del bucket Amazon S3 che usi per le sorgenti di dati e l'archiviazione dei dati di output nella console Amazon S3.

    Per informazioni su come trovare un bucket in base al nome, consulta Accedere ed elencare un bucket Amazon S3. Per informazioni su come creare un bucket Amazon S3, consulta Creazione di un bucket.

  2. Fase 2: Creare almeno un ruolo di esecuzione del job runtime per l'applicazione EMR Serverless nel proprio account (vedi il diagramma del caso d'uso EMRServerlessRuntimeExecutionRoleA nel singolo account riportato sopra). Scegli Custom Trust Policy come entità affidabile. Aggiungi le autorizzazioni richieste dal tuo lavoro. Come minimo, è necessario l'accesso completo a un bucket Amazon S3 e l'accesso per la creazione e la lettura a AWS Glue Data Catalog.

    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 Crea policy.

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

      È possibile fare riferimento ai ruoli Job runtime per EMR Serverless per trovare policy di runtime di esempio 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 Criteri di fiducia personalizzati come entità attendibile.

    6. Incolla il seguente documento JSON nella sezione Politica di fiducia personalizzata, quindi scegli Avanti.

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

    8. Nella pagina Revisione, inserisci un nome per il ruolo, ad EMRServerlessAppRuntimeRoleA esempio una descrizione opzionale.

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

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

    Nota

    Le sessioni Spark funzionano in modo diverso. Le sessioni Spark sono 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, c'è un ulteriore isolamento delle sessioni Spark tra diverse identità di origine.

  3. Passaggio 3: recupera l'ARN del ruolo di esecuzione SageMaker dell'IA utilizzato dal tuo spazio privato.

    Per informazioni sugli spazi e sui ruoli di esecuzione nell' SageMaker intelligenza artificiale, consulta. Comprendere lo spazio di dominio, le autorizzazioni e i ruoli di esecuzione.

    Per ulteriori informazioni su come recuperare l'ARN del ruolo di esecuzione SageMaker dell'IA, vedere. Assumi il tuo ruolo di esecuzione

    Nota

    In alternativa, gli utenti che non conoscono l' SageMaker intelligenza artificiale possono semplificare il processo di configurazione creando automaticamente un nuovo ruolo di esecuzione dell' SageMaker IA con le autorizzazioni appropriate. In questo caso, salta i passaggi 3 e 4. Gli utenti possono invece:

    • Scegli l'opzione Configura per le organizzazioni quando crei un nuovo dominio dal menu Dominio nella barra di navigazione a sinistra della console SageMaker AI.

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

    Durante la creazione del ruolo, scegli l'opzione Run Studio EMR Serverless Applications in Quali attività ML eseguiranno gli utenti? Quindi, fornisci il nome del tuo bucket Amazon S3 e il ruolo di esecuzione del job runtime che desideri venga utilizzato dall'applicazione EMR Serverless (fase 2).

    Il SageMaker Role Manager aggiunge automaticamente le autorizzazioni necessarie per l'esecuzione e la connessione alle applicazioni EMR Serverless al nuovo ruolo di esecuzione. Utilizzando SageMaker Role Manager, è possibile assegnare solo un ruolo di runtime all'applicazione EMR Serverless e l'applicazione deve essere eseguita nello stesso account in cui è distribuito Studio, utilizzando un ruolo di runtime creato all'interno dello stesso account.

  4. Passaggio 4: Associa le seguenti autorizzazioni al ruolo di esecuzione SageMaker AI che accede alla tua 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 Cerca. Il nome del ruolo è l'ultima parte dell'ARN, dopo l'ultima barra (/).

    3. Segui il link al tuo ruolo.

    4. Scegli Aggiungi autorizzazioni e poi Crea politica in linea.

    5. Nella scheda JSON, aggiungi le autorizzazioni Amazon EMR Serverless che consentono l'accesso e le operazioni EMR Serverless. Per i dettagli sul documento di policy, vedere EMR Serverless policies in. Politiche di riferimento Sostituisci i valori regionaccountID, e quelli passati EMRServerlessAppRuntimeRole con i loro valori effettivi prima di copiare l'elenco delle istruzioni nella politica in linea del tuo ruolo.

      Nota

      È possibile includere tutte le stringhe ARN di ruoli di runtime necessarie all'interno dell'autorizzazione, separandole con virgole.

    6. Scegli Avanti e quindi fornisci un nome per la policy.

    7. Scegli Create Policy (Crea policy).

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

  5. Fase 5:

    Associa l'elenco dei ruoli di runtime al tuo profilo utente o dominio in modo da poter sfogliare visivamente l'elenco dei ruoli e selezionare quello da utilizzare per la connessione a un'applicazione EMR Serverless. JupyterLab È possibile utilizzare la console SageMaker AI o il seguente script. Successivamente, tutti i job Apache Spark o Apache Hive creati dal notebook accederanno solo ai dati e alle risorse consentiti dalle politiche allegate al ruolo di runtime selezionato.

    Importante

    Il mancato completamento di questo passaggio impedirà di collegare un JupyterLab notebook a un'applicazione EMR Serverless.

    SageMaker AI console

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

    1. Vai alla console 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 SageMaker AI di cui hai aggiornato le autorizzazioni.

      • Per aggiungere i ruoli di runtime al dominio: nella scheda Configurazioni app della pagina dei dettagli del dominio, vai alla JupyterLabsezione.

      • Per aggiungere i ruoli di runtime al tuo profilo utente: nella pagina dei dettagli del dominio, scegli la scheda Profili utente, seleziona il profilo utente che utilizza il ruolo di esecuzione SageMaker AI di cui hai aggiornato le autorizzazioni. Nella scheda Configurazioni dell'app, vai alla JupyterLabsezione.

    3. Scegli Modifica e aggiungi i tuoi ARNs ruoli di esecuzione 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' JupyterLab applicazione avviata da uno spazio privato utilizzando il ruolo di esecuzione SageMaker AI di cui hai aggiornato le autorizzazioni, esegui il seguente comando in un terminale. Sostituisci i valori domainIDuser-profile-name,studio-accountID, e EMRServerlessRuntimeExecutionRole (s) con i valori corretti. Questo frammento di codice aggiorna le impostazioni del profilo utente per uno specifico profilo utente (client.update_userprofile) o impostazioni di dominio (client.update_domain), in particolare associando i ruoli di esecuzione runtime EMR Serverless creati in precedenza.

    import botocore.session import json sess = botocore.session.get_session() client = sess.create_client('sagemaker') client.update_userprofile( 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))

Account multipli

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

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

Per ulteriori informazioni sulla creazione di un ruolo su un AWS account, 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 distribuite in AWS account separati, è possibile configurare le autorizzazioni su entrambi gli account.

Sull'account EMR Serverless

Segui questi passaggi per creare i ruoli e le politiche necessari sull'account su cui è in esecuzione l'applicazione EMR Serverless, noto anche come account affidabile:

  1. Fase 1: Creare almeno un ruolo di esecuzione del job runtime per l'applicazione EMR Serverless nel proprio account (come nel diagramma dell'EMRServerlessRuntimeExecutionRoleBaccount Cross riportato sopra). Scegli Custom Trust Policy come entità attendibile. Aggiungi le autorizzazioni richieste dal tuo lavoro. Come minimo, è necessario l'accesso completo a un bucket Amazon S3 e l'accesso per la creazione e la lettura a AWS Glue Data Catalog.

    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 Crea policy.

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

      Per esempi di policy di runtime di un ruolo di runtime EMR Serverless, consulta Job runtime roles for Amazon EMR Serverless.

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

    5. Nella pagina Crea ruolo, scegli Criteri di fiducia personalizzati come entità attendibile.

    6. Incolla il seguente documento JSON nella sezione Politica di fiducia personalizzata, quindi scegli Avanti.

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

    8. Nella pagina Revisione, inserisci un nome per il ruolo, ad EMRServerlessAppRuntimeRoleB esempio una descrizione opzionale.

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

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

    Nota

    Le sessioni Spark funzionano in modo diverso. Le sessioni Spark sono 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, c'è un ulteriore isolamento delle sessioni Spark tra diverse identità di origine.

  2. Passaggio 2: crea un ruolo IAM personalizzato denominato AssumableRole con la seguente configurazione:

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

    • Relazione di fiducia: configura la politica di fiducia AssumableRole per consentire l'assunzione del ruolo di esecuzione (indicato SageMakerExecutionRole nel diagramma tra account diversi) 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 AWS account EMR Serverless, segui questi passaggi:

    1. Passare alla IAM console (Console IAM).

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

    3. Nella scheda JSON, aggiungi le autorizzazioni Amazon EMR Serverless che consentono l'accesso e le operazioni EMR Serverless. Per i dettagli sul documento di policy, vedere EMR Serverless policies in. Politiche di riferimento Sostituisci i valori regionaccountID, e quelli passati EMRServerlessAppRuntimeRole con i loro valori effettivi prima di copiare l'elenco delle istruzioni nella politica in linea del tuo ruolo.

      Nota

      EMRServerlessAppRuntimeRoleEcco il ruolo di esecuzione del job runtime creato nel passaggio 1 (illustrato nel diagramma dell'EMRServerlessAppRuntimeRoleBaccount Cross riportato sopra). È possibile includere tutte le stringhe ARN di ruoli di runtime necessarie all'interno dell'autorizzazione, separandole con virgole.

    4. Scegli Avanti e quindi fornisci un nome per la policy.

    5. Scegli Create Policy (Crea policy).

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

    7. Nella pagina Crea ruolo, scegli Criteri di fiducia personalizzati come entità attendibile.

    8. Incolla il seguente documento JSON nella sezione Politica di fiducia personalizzata, quindi scegli Avanti.

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

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

    10. Nella pagina Revisione, inserisci un nome per il ruolo, ad AssumableRole esempio una descrizione opzionale.

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

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

Sull'account Studio

Sull'account in cui è distribuito Studio, noto anche come account affidabile, aggiorna il ruolo di esecuzione SageMaker AI accedendo alle applicazioni EMR Serverless con le autorizzazioni necessarie per accedere alle risorse nell'account affidabile.

  1. Passaggio 1: recupera l'ARN del ruolo di esecuzione SageMaker dell'IA utilizzato dal tuo spazio.

    Per informazioni sugli spazi e sui ruoli di esecuzione nell' SageMaker intelligenza artificiale, consulta. Comprendere lo spazio di dominio, le autorizzazioni e i ruoli di esecuzione.

    Per ulteriori informazioni su come recuperare l'ARN del ruolo di esecuzione SageMaker dell'IA, vedere. Assumi il tuo ruolo di esecuzione

  2. Fase 2: Associa le seguenti autorizzazioni al ruolo di esecuzione SageMaker AI che accede alla tua 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 Cerca. Il nome del ruolo è l'ultima parte dell'ARN, dopo l'ultima barra (/).

    3. Segui il link al tuo ruolo.

    4. Scegli Aggiungi autorizzazioni e poi Crea politica in linea.

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

    6. Scegli Avanti e quindi fornisci un nome per la politica.

    7. Scegli Create Policy (Crea policy).

    8. Ripeti il passaggio Crea politica in linea per aggiungere un'altra politica che conceda al ruolo di esecuzione le autorizzazioni necessarie per assumere AssumableRole e quindi eseguire le azioni consentite dalla politica di accesso del ruolo.

      Sostituisci emr-account con l'ID dell'account Amazon EMR Serverless e AssumableRole con il nome del ruolo ipotizzabile creato nell'account Amazon EMR Serverless.

      { "Version": "2012-10-17", "Statement": { "Sid": "AllowSTSToAssumeAssumableRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::emr-account: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. JupyterLab È possibile utilizzare la console SageMaker AI o il seguente script. Successivamente, tutti i job Apache Spark o Apache Hive creati dal notebook accederanno solo ai dati e alle risorse consentiti dalle politiche allegate al ruolo di runtime selezionato.

    Importante

    Il mancato completamento di questo passaggio impedirà di collegare un JupyterLab notebook a un'applicazione EMR Serverless.

    SageMaker AI console

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

    1. Vai alla console 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 SageMaker AI di cui hai aggiornato le autorizzazioni.

      • Per aggiungere i ruoli di runtime al dominio: nella scheda Configurazioni app della pagina dei dettagli del dominio, vai alla JupyterLabsezione.

      • Per aggiungere i ruoli di runtime al tuo profilo utente: nella pagina dei dettagli del dominio, scegli la scheda Profili utente, seleziona il profilo utente che utilizza il ruolo di esecuzione SageMaker AI di cui hai aggiornato le autorizzazioni. Nella scheda Configurazioni dell'app, vai alla JupyterLabsezione.

    3. Scegli Modifica e aggiungi il tuo ruolo assumibile e i ruoli ARNs di esecuzione 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' JupyterLab applicazione avviata da uno spazio privato utilizzando il ruolo di esecuzione SageMaker AI di cui hai aggiornato le autorizzazioni, esegui il seguente comando in un terminale. SostituiscidomainID, user-profile-namestudio-accountID, e EMRServerlessRuntimeExecutionRole con i valori corretti. Questo frammento di codice aggiorna le impostazioni del profilo utente per uno specifico profilo utente (client.update_userprofile) o impostazioni di dominio (client.update_domain) all'interno di un dominio SageMaker AI. In particolare, imposta i ruoli di esecuzione in fase di esecuzione per Amazon EMR Serverless, che hai creato in precedenza. Consente inoltre all' JupyterLab applicazione 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_userprofile( 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))

Politiche di riferimento

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

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

    • EMRServerlessPassRole: Consente il passaggio dei ruoli di runtime specificati nell' AWS account fornito, ma solo quando il ruolo viene passato a. emr-serverless.amazonaws.com service

    • EMRServerlessCreateApplicationAction: consente l'esecuzione CreateApplication di TagResource azioni sulle risorse EMR Serverless nella regione e nell'account specificati. AWS Tuttavia, richiede che le risorse create o etichettate abbiano chiavi di tag specifiche (sagemaker:domain-arnsagemaker:user-profile-arn, esagemaker:space-arn) presenti con valori non nulli.

    • EMRServerlessDenyTaggingAction: le UntagResource azioni TagResource e sulle risorse EMR Serverless nella regione specificata e l' AWS account se le risorse non hanno nessuna delle chiavi di tag specificate (sagemaker:domain-arnsagemaker:user-profile-arn, esagemaker:space-arn) impostate.

    • EMRServerlessActions: consente varie azioni (StartApplication,,StopApplication, GetApplication DeleteApplicationAccessLivyEndpoints, eGetDashboardForJobRun) sulle risorse EMR Serverless, ma solo se le risorse hanno le chiavi dei tag specificate (sagemaker:domain-arnsagemaker:user-profile-arn, esagemaker:space-arn) impostate con valori non nulli.

    La policy IAM definita nel documento JSON fornito concede tali autorizzazioni, ma limita tale accesso alla presenza di tag SageMaker AI specifici sulle applicazioni EMR Serverless per garantire che possano essere gestite solo le risorse Amazon EMR Serverless associate a un particolare dominio SageMaker AI, profilo utente e spazio.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "EMRServerlessListApplications", "Effect": "Allow", "Action": [ "emr-serverless:ListApplications" ], "Resource": "arn:aws:emr-serverless:region:accountID:/*" }, { "Sid": "EMRServerlessPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::accountID: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:region:accountID:/*", "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:region:accountID:/*", "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:region:accountID:/applications/*", "Condition": { "Null": { "aws:ResourceTag/sagemaker:domain-arn": "false", "aws:ResourceTag/sagemaker:user-profile-arn": "false", "aws:ResourceTag/sagemaker:space-arn": "false" } } } ] }
  • Politica sulle azioni di aggiornamento del dominio, del profilo utente e dello spazio: la seguente politica concede le autorizzazioni per aggiornare i domini SageMaker AI, i profili utente e gli spazi all'interno della regione e dell' AWS account specificati.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "SageMakerUpdateResourcesPolicy", "Effect": "Allow", "Action": [ "sagemaker:UpdateDomain", "sagemaker:UpdateUserprofile", "sagemaker:UpdateSpace" ], "Resource": [ "arn:aws:sagemaker:region>:accountID:domain/*", "arn:aws:sagemaker:region:accountID:user-profile/*" ] } ] }