Configura EMR CloudFormation i modelli Amazon nel Service Catalog - 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à.

Configura EMR CloudFormation i modelli Amazon nel Service Catalog

Questo argomento presuppone che gli amministratori abbiano dimestichezza con AWS CloudFormationi portafogli e i prodotti in esso contenuti AWS Service Catalog, oltre ad Amazon. EMR

Per semplificare la creazione di EMR cluster Amazon da Studio, gli amministratori possono registrare un EMR CloudFormation modello Amazon come prodotto in un AWS Service Catalogportafoglio. Per rendere il modello disponibile ai data scientist, devono associare il portfolio al ruolo di SageMaker esecuzione utilizzato in Studio o Studio Classic. Infine, per consentire agli utenti di scoprire modelli, effettuare il provisioning dei cluster e connettersi ai EMR cluster Amazon da Studio o Studio Classic, gli amministratori devono impostare le autorizzazioni di accesso appropriate.

I EMR AWS CloudFormation modelli Amazon possono consentire agli utenti finali di personalizzare vari aspetti del cluster. Ad esempio, gli amministratori possono definire un elenco approvato di tipi di istanze tra cui gli utenti possono scegliere durante la creazione di un cluster.

Le seguenti istruzioni utilizzano end-to-end CloudFormation gli stack per configurare un dominio Studio o Studio Classic, un profilo utente, un portafoglio Service Catalog e popolare un modello di EMR lancio Amazon. I passaggi seguenti evidenziano le impostazioni specifiche che gli amministratori devono applicare nel proprio end-to-end stack per consentire a Studio o Studio Classic di accedere ai prodotti Service Catalog e fornire i cluster AmazonEMR.

Nota

Il GitHub repository aws-samples/ sagemaker-studio-emr contiene end-to-end CloudFormation stack di esempi che distribuiscono i IAM ruoli, il networking, il dominio, il profilo SageMaker utente, il portafoglio Service Catalog necessari e aggiungono un modello di lancio Amazon. EMR CloudFormation I modelli offrono diverse opzioni di autenticazione tra Studio o Studio Classic e il EMR cluster Amazon. In questi modelli di esempio, lo CloudFormation stack principale passa SageMaker VPC i parametri del gruppo di sicurezza e della sottorete al modello di EMR cluster Amazon.

L'archivio sagemaker-studio-emr/cloudformation/emr_servicecatalog_templates contiene vari modelli di avvio di Amazon di esempio, incluse opzioni per distribuzioni con account singolo e tra account. EMR CloudFormation

Connect a un EMR cluster Amazon da SageMaker Studio o Studio ClassicPer informazioni dettagliate sui metodi di autenticazione che puoi utilizzare per connetterti a un EMR cluster Amazon, consulta.

Per consentire ai data scientist di scoprire i EMR CloudFormation modelli Amazon e il provisioning dei cluster da Studio o Studio Classic, segui questi passaggi.

Fase 0: verifica la rete e prepara lo stack CloudFormation

Prima di iniziare:

  • Assicurati di aver esaminato i requisiti di rete e sicurezza inConfigurazione delle reti.

  • È necessario disporre di uno end-to-end CloudFormation stack esistente che supporti il metodo di autenticazione desiderato. Puoi trovare esempi di tali CloudFormation modelli nel repository sagemaker-studio-emr GitHub aws-samples/. I passaggi seguenti evidenziano le configurazioni specifiche del tuo end-to-end stack per consentire l'uso dei EMR modelli Amazon all'interno di Studio o Studio Classic.

Fase 1: Associa il tuo portafoglio Service Catalog a SageMaker

Nel tuo portafoglio Service Catalog, associa l'ID del tuo portafoglio al ruolo di SageMaker esecuzione che accede al cluster.

A tale scopo, aggiungi la sezione seguente (qui in YAML formato) al tuo stack. Ciò garantisce al ruolo di SageMaker esecuzione l'accesso al portafoglio Service Catalog specificato contenente prodotti come i EMR modelli Amazon. Consente ai ruoli assunti da SageMaker di lanciare tali prodotti.

Replace (Sostituisci) SageMakerExecutionRole.Arn e SageMakerStudioEMRProductPortfolio.ID con i loro valori effettivi.

SageMakerStudioEMRProductPortfolioPrincipalAssociation: Type: AWS::ServiceCatalog::PortfolioPrincipalAssociation Properties: PrincipalARN: SageMakerExecutionRole.Arn PortfolioId: SageMakerStudioEMRProductPortfolio.ID PrincipalType: IAM
Nota

Quale ruolo esecutivo dovresti prendere in considerazione?

L'interfaccia utente di Studio determina le proprie autorizzazioni in base al ruolo di esecuzione associato al profilo utente che l'ha avviata. L'interfaccia utente imposta queste autorizzazioni al momento dell'avvio. Tuttavia, gli spazi che JupyterLab avviano le applicazioni Studio Classic possono avere autorizzazioni separate.

Per un accesso coerente ai EMR modelli e ai cluster Amazon tra le applicazioni (come Studio UI e Studio Classic) JupyterLab, concedi lo stesso sottoinsieme di autorizzazioni a tutti i ruoli a livello di dominio, profilo utente o spazio. Le autorizzazioni dovrebbero consentire la scoperta e il provisioning dei cluster AmazonEMR.

Per i dettagli sul set di autorizzazioni richiesto, consulta la sezione IAM autorizzazioni.

Fase 2: fare riferimento a un EMR modello Amazon in un prodotto Service Catalog

In un prodotto Service Catalog del tuo portafoglio, fai riferimento a una risorsa EMR modello Amazon e assicurane la visibilità in Studio o Studio Classic.

A tale scopo, fai riferimento alla risorsa EMR modello Amazon nella definizione del prodotto Service Catalog, quindi aggiungi il seguente "sagemaker:studio-visibility:emr" set di tag chiave al valore "true" (vedi l'esempio in YAML formato).

Nella definizione del prodotto Service Catalog, si fa riferimento al AWS CloudFormation modello del cluster tramiteURL. Il tag aggiuntivo impostato su true garantisce la visibilità dei EMR modelli Amazon in Studio o Studio Classic.

Nota

Il EMR modello Amazon a cui si fa riferimento URL nell'esempio non impone alcun requisito di autenticazione al momento del lancio. Questa opzione è pensata per scopi dimostrativi e di apprendimento. Non è consigliata in un ambiente di produzione.

SMStudioEMRNoAuthProduct: Type: AWS::ServiceCatalog::CloudFormationProduct Properties: Owner: AWS Name: SageMaker Studio Domain No Auth EMR ProvisioningArtifactParameters: - Name: SageMaker Studio Domain No Auth EMR Description: Provisions a SageMaker domain and No Auth EMR Cluster Info: LoadTemplateFromURL: Link to your CloudFormation template. For example, https://aws-blogs-artifacts-public.s3.amazonaws.com/artifacts/astra-m4-sagemaker/end-to-end/CFN-EMR-NoStudioNoAuthTemplate-v3.yaml Tags: - Key: "sagemaker:studio-visibility:emr" Value: "true"

Passaggio 3: parametrizza il modello Amazon EMR CloudFormation

Il CloudFormation modello utilizzato per definire il EMR cluster Amazon all'interno del prodotto Service Catalog consente agli amministratori di specificare parametri configurabili. Gli amministratori possono definire Default valori e AllowedValues intervalli per questi parametri all'interno della sezione del modello. Parameters Durante il processo di avvio del cluster, i data scientist possono fornire input personalizzati o effettuare selezioni tra quelle opzioni predefinite per personalizzare determinati aspetti del proprio cluster Amazon. EMR

L'esempio seguente illustra parametri di input aggiuntivi che gli amministratori possono impostare durante la creazione di un modello AmazonEMR.

"Parameters": { "EmrClusterName": { "Type": "String", "Description": "EMR cluster Name." }, "MasterInstanceType": { "Type": "String", "Description": "Instance type of the EMR master node.", "Default": "m5.xlarge", "AllowedValues": [ "m5.xlarge", "m5.2xlarge", "m5.4xlarge" ] }, "CoreInstanceType": { "Type": "String", "Description": "Instance type of the EMR core nodes.", "Default": "m5.xlarge", "AllowedValues": [ "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge" ] }, "CoreInstanceCount": { "Type": "String", "Description": "Number of core instances in the EMR cluster.", "Default": "2", "AllowedValues": [ "2", "5", "10" ] }, "EmrReleaseVersion": { "Type": "String", "Description": "The release version of EMR to launch.", "Default": "emr-5.33.1", "AllowedValues": [ "emr-5.33.1", "emr-6.4.0" ] } }

Dopo che gli amministratori hanno reso disponibili i EMR CloudFormation modelli Amazon all'interno di Studio, i data scientist possono utilizzarli per il provisioning autonomo dei cluster AmazonEMR. La Parameters sezione definita nel modello si traduce in campi di input nel modulo di creazione del cluster all'interno di Studio o Studio Classic. Per ogni parametro, i data scientist possono inserire un valore personalizzato nella casella di input o selezionare una delle opzioni predefinite elencate in un menu a discesa, che corrisponde a quello AllowedValues specificato nel modello.

La seguente illustrazione mostra il modulo dinamico assemblato da un EMR modello CloudFormation Amazon per creare un EMR cluster Amazon in Studio o Studio Classic.

Illustrazione di un modulo dinamico assemblato da un EMR modello CloudFormation Amazon per creare un EMR cluster Amazon da Studio o Studio Classic.

Visita Avvia un EMR cluster Amazon da Studio o Studio Classic questa pagina per scoprire come avviare un cluster da Studio o Studio Classic utilizzando questi EMR modelli Amazon.

Passaggio 4: configura le autorizzazioni per abilitare la pubblicazione e l'avvio di EMR cluster Amazon da Studio

Infine, allega le IAM autorizzazioni richieste per consentire la pubblicazione di EMR cluster Amazon esistenti in esecuzione e il provisioning automatico di nuovi cluster da Studio o Studio Classic.

I ruoli a cui devi aggiungere tali autorizzazioni dipendono dal fatto che Studio o Studio Classic e Amazon EMR siano distribuiti nello stesso account (scegli Account singolo) o in account diversi (scegli Cross account).

Nota

Attualmente Studio non supporta l'accesso ai EMR cluster Amazon creati in un AWS account diverso da quello in cui è distribuito Studio. L'accesso da più account è disponibile solo in Studio Classic.

Per ulteriori informazioni sull'accesso a più account utilizzando i ruoli, consulta Accesso alle risorse tra account in IAM.

Se i tuoi EMR cluster Amazon e Studio o Studio Classic sono distribuiti nello stesso AWS account, assegna le seguenti autorizzazioni al ruolo di SageMaker esecuzione che accede al cluster.

Nota

Quale ruolo di esecuzione dovresti prendere in considerazione?

L'interfaccia utente di Studio determina le proprie autorizzazioni in base al ruolo di esecuzione associato al profilo utente che l'ha avviata. L'interfaccia utente imposta queste autorizzazioni al momento dell'avvio. Tuttavia, gli spazi che JupyterLab avviano le applicazioni Studio Classic possono avere autorizzazioni separate.

Per un accesso coerente ai EMR modelli e ai cluster Amazon tra le applicazioni (come Studio UI e Studio Classic) JupyterLab, concedi lo stesso sottoinsieme di autorizzazioni a tutti i ruoli a livello di dominio, profilo utente o spazio. Le autorizzazioni dovrebbero consentire la scoperta e il provisioning dei cluster AmazonEMR.

  1. Trova il ruolo di esecuzione del tuo dominio, profilo utente o spazio. Per informazioni su come recuperare il ruolo di esecuzione, consultaOttieni il tuo ruolo di esecuzione.

  2. Apri la console IAM all'indirizzo https://console.aws.amazon.com/sagemaker/.

  3. Scegli Ruoli, quindi cerca il ruolo che hai creato digitando il nome del ruolo nel campo Cerca.

  4. Segui il link al tuo ruolo.

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

  6. Nella JSONscheda, aggiungi la seguente JSON politica con le autorizzazioni:

    • AllowPresignedUrlconsente di generare dati prefirmati URLs per accedere all'interfaccia utente di Spark da Studio o Studio Classic.

    • AllowClusterDiscoverye AllowClusterDetailsDiscovery consenti di elencare e descrivere EMR i cluster Amazon nell'account/regione da Studio o Studio Classic.

    • AllowEMRTemplateDiscoveryconsente la ricerca EMR di modelli Amazon nel Service Catalog. Studio e Studio Classic lo utilizzano per mostrare i modelli disponibili.

    • AllowSagemakerProjectManagementconsente la creazione e l'eliminazione. In SageMaker, l'accesso a AWS Service Catalog è gestito tramiteAutomatizza MLOps con i progetti SageMaker .

    La IAM politica definita nel provider JSON concede tali autorizzazioni. Replace (Sostituisci) studio-region e studio-account con i valori effettivi della regione e dell'ID dell' AWS account prima di copiare l'elenco delle dichiarazioni nella politica in linea del ruolo.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource": [ "arn:aws:elasticmapreduce:studio-region:studio-account:cluster/*" ] }, { "Sid": "AllowClusterDetailsDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstances", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:DescribeSecurityConfiguration" ], "Resource": [ "arn:aws:elasticmapreduce:studio-region:studio-account:cluster/*" ] }, { "Sid": "AllowClusterDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:ListClusters" ], "Resource": "*" }, { "Sid": "AllowEMRTemplateDiscovery", "Effect": "Allow", "Action": [ "servicecatalog:SearchProducts" ], "Resource": "*" }, { "Sid": "AllowSagemakerProjectManagement", "Effect": "Allow", "Action": [ "sagemaker:CreateProject", "sagemaker:DeleteProject" ], "Resource": "arn:aws:sagemaker:studio-region:studio-account:project/*" } ] }
  7. Scegli Avanti e quindi fornisci un nome per la politica.

  8. Scegli Create Policy (Crea policy).

Se i tuoi EMR cluster Amazon e Studio o Studio Classic sono distribuiti in AWS account separati, configuri le autorizzazioni su entrambi gli account.

Sull'EMRaccount Amazon

Nell'account in cui EMR è distribuito Amazon, noto anche come account affidabile, crea un IAM ruolo personalizzato denominato ASSUMABLE-ROLE con la seguente configurazione:

  • Autorizzazioni: concedi le autorizzazioni necessarie per consentire l'accesso ASSUMABLE-ROLE alle risorse AmazonEMR.

  • Relazione di fiducia: configura la politica di fiducia ASSUMABLE-ROLE per consentire l'assunzione del ruolo dall'account Studio che richiede l'accesso.

Assumendo il ruolo, Studio o Studio Classic possono ottenere l'accesso temporaneo alle autorizzazioni necessarie in Amazon. EMR

  • Crea una nuova politica per il ruolo.

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

    2. Nel menu a sinistra, scegli Politiche e poi Crea politica.

    3. Nella JSONscheda, aggiungi la seguente JSON politica con le autorizzazioni:

      • AllowPresignedUrlconsente di generare dati prefirmati URLs per accedere all'interfaccia utente di Spark dall'interno di Studio.

      • AllowClusterDiscoverye AllowClusterDetailsDiscovery consente di elencare e descrivere EMR i cluster Amazon nell'account/nella regione di Studio.

      Replace (Sostituisci) emr-region e emr-account con i valori effettivi della regione e AWS dell'ID dell'account prima di copiarli nella tua politica. JSON

      { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource": [ "arn:aws:elasticmapreduce:emr-region:emr-account:cluster/*" ] }, { "Sid": "AllowClusterDetailsDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstances", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:DescribeSecurityConfiguration" ], "Resource": [ "arn:aws:elasticmapreduce:emr-region:emr-account:cluster/*" ] }, { "Sid": "AllowClusterDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:ListClusters" ], "Resource": "*" } ] }
    4. Assegna un nome alla tua politica e scegli Crea politica.

  • Crea un IAM ruolo personalizzato denominatoASSUMABLE-ROLE, quindi allega la tua nuova politica al ruolo.

    1. Nella IAM console, scegli Ruoli nel menu a sinistra, quindi Crea ruolo.

    2. Per il tipo di entità attendibile, scegli AWS Account, quindi Avanti.

    3. Seleziona l'autorizzazione appena creata, quindi scegli Avanti.

    4. Assegna un nome al tuo ruoloASSUMABLE-ROLE, quindi scegli il pulsante Modifica a destra del Passaggio 1: Seleziona le entità attendibili.

    5. Per il tipo di entità affidabile, scegli Politica di fiducia personalizzata e quindi incolla la seguente relazione di fiducia. Ciò concede all'account in cui è distribuito Studio (l'account attendibile) l'autorizzazione ad assumere questo ruolo.

      Replace (Sostituisci) studio-account con l'ID effettivo dell' AWS account. Scegli Next (Successivo).

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::studio-account:root" }, "Action": "sts:AssumeRole" } ] }
    6. Trova e seleziona nuovamente l'autorizzazione che hai appena creato, quindi scegli Avanti.

    7. La tua politica di fiducia dovrebbe essere aggiornata con l'ultima versione JSON che hai incollato. Scegliere Crea ruolo.

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

Sull'account Studio

Sull'account in cui è distribuito Studio o Studio Classic, noto anche come account affidabile, aggiorna il ruolo di SageMaker esecuzione che accede al cluster con le autorizzazioni necessarie per accedere alle risorse dell'account affidabile.

Nota

Quale ruolo esecutivo dovresti prendere in considerazione?

L'interfaccia utente di Studio determina le proprie autorizzazioni in base al ruolo di esecuzione associato al profilo utente che l'ha avviata. L'interfaccia utente imposta queste autorizzazioni al momento dell'avvio. Tuttavia, gli spazi che JupyterLab avviano le applicazioni Studio Classic possono avere autorizzazioni separate.

Per un accesso coerente ai EMR modelli e ai cluster Amazon tra le applicazioni (come Studio UI e Studio Classic) JupyterLab, concedi lo stesso sottoinsieme di autorizzazioni a tutti i ruoli a livello di dominio, profilo utente o spazio. Le autorizzazioni dovrebbero consentire la scoperta e il provisioning dei cluster AmazonEMR.

  1. Trova il ruolo di esecuzione del tuo dominio, profilo utente o spazio. Per informazioni su come recuperare il ruolo di esecuzione, consultaOttieni il tuo ruolo di esecuzione.

  2. Apri la console IAM all'indirizzo https://console.aws.amazon.com/sagemaker/.

  3. Scegli Ruoli, quindi cerca il ruolo che hai creato digitando il nome del ruolo nel campo Cerca.

  4. Segui il link al tuo ruolo.

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

  6. Nella JSONscheda, aggiungi la seguente JSON politica con le autorizzazioni:

    • AllowEMRTemplateDiscoveryconsente la ricerca EMR di modelli Amazon nel Service Catalog. Studio Classic lo utilizza per mostrare i modelli disponibili.

    • AllowSagemakerProjectManagementconsente la creazione e l'eliminazione. In SageMaker, l'accesso a AWS Service Catalog è gestito tramiteAutomatizza MLOps con i progetti SageMaker .

    La IAM politica definita nel provider JSON concede tali autorizzazioni. Replace (Sostituisci) studio-region e studio-account con i valori effettivi dell'area geografica e dell'ID dell' AWS account prima di copiare l'elenco delle dichiarazioni nella politica.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowEMRTemplateDiscovery", "Effect": "Allow", "Action": [ "servicecatalog:SearchProducts" ], "Resource": "*" }, { "Sid": "AllowSagemakerProjectManagement", "Effect": "Allow", "Action": [ "sagemaker:CreateProject", "sagemaker:DeleteProject" ], "Resource": "arn:aws:sagemaker:studio-region:studio-account:project/*" } ] }
  7. Scegli Avanti e quindi fornisci un nome per la politica.

  8. Scegli Create Policy (Crea policy).

  9. Ripeti il passaggio per aggiungere un'altra policy in linea al ruolo di esecuzione di Studio. La politica dovrebbe consentire l'assunzione di ruoli tra account diversi per la scoperta di risorse in un altro account.

    Nella pagina di dettaglio del ruolo di esecuzione, scegli Aggiungi autorizzazioni, quindi Crea policy in linea.

  10. Nella JSONscheda, aggiungi la seguente JSON politica. Aggiorna il emr-account con l'ID dell'EMRaccount Amazon.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleAssumptionForCrossAccountDiscovery", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": ["arn:aws:iam::emr-account:role/ASSUMABLE-ROLE" ] }] }
  11. Scegli Avanti, fornisci un nome per la politica, quindi scegli Crea politica.

  12. Per consentire l'elenco EMR dei cluster Amazon distribuiti nello stesso account di Studio, aggiungi una policy in linea aggiuntiva al tuo ruolo di esecuzione di Studio, come definito nella scheda Account singolo di. Configura l'elenco dei EMR cluster Amazon

Assegna il ruolo al ARN momento del lancio del server Jupyter

Infine, scopri Configurazione aggiuntiva per l'accesso tra più account come fornire il ruolo ARN di esecuzione ASSUMABLE-ROLE al tuo ruolo di esecuzione di Studio. ARNViene caricato dal server Jupyter al momento del lancio. Il ruolo di esecuzione utilizzato da Studio presuppone il ruolo tra account diversi per rilevare e connettersi ai EMR cluster Amazon nell'account di fiducia.