Configurazione dei CloudFormation modelli Amazon EMR 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à.

Configurazione dei CloudFormation modelli Amazon EMR nel Service Catalog

Questo argomento presuppone che gli amministratori conoscano i portafogli e i prodotti inclusi AWS Service Catalog, nonché Amazon EMR. AWS CloudFormation

Per semplificare la creazione di cluster Amazon EMR da Studio, gli amministratori possono registrare un CloudFormation modello Amazon EMR come prodotto in un portafoglio. AWS Service Catalog 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 cluster Amazon EMR da Studio o Studio Classic, gli amministratori devono impostare le autorizzazioni di accesso appropriate.

I AWS CloudFormation modelli Amazon EMR 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 lancio di Amazon EMR. 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 Amazon EMR.

Nota

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

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

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

Per consentire ai data scientist di scoprire i CloudFormation modelli di Amazon EMR 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 modelli Amazon EMR 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.

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

Sostituisci SageMakerExecutionRole.Arn ed SageMakerStudioEMR ProductPortfolio .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 modelli e ai cluster di Amazon EMR tra le applicazioni (come l'interfaccia utente di Studio 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 Amazon EMR.

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

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

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

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

Nella definizione del prodotto Service Catalog, il AWS CloudFormation modello del cluster viene referenziato tramite URL. Il tag aggiuntivo impostato su true garantisce la visibilità dei modelli Amazon EMR in Studio o Studio Classic.

Nota

Il modello Amazon EMR a cui fa riferimento l'URL fornito 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"

Fase 3: parametrizzazione del modello Amazon EMR CloudFormation

Il CloudFormation modello utilizzato per definire il cluster Amazon EMR 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 alcuni 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 Amazon EMR.

"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 modelli Amazon CloudFormation EMR all'interno di Studio, i data scientist possono utilizzarli per il provisioning autonomo dei cluster Amazon EMR. 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.

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

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

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

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

Infine, collega le autorizzazioni IAM richieste per consentire l'elenco dei cluster Amazon EMR 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 cluster Amazon EMR 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 tra account utilizzando i ruoli, consulta Accesso alle risorse tra account in IAM.

Se i cluster Amazon EMR e Studio o Studio Classic sono distribuiti nello stesso AWS account, associa 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 modelli e ai cluster di Amazon EMR tra le applicazioni (come l'interfaccia utente di Studio 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 Amazon EMR.

  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. Aprire 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 scheda JSON, aggiungi la seguente politica JSON con le autorizzazioni:

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

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

    • AllowEMRTemplateDiscoveryconsente la ricerca di modelli Amazon EMR 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 i MLOps con Projects SageMaker .

    La policy IAM definita nel JSON fornito concede tali autorizzazioni. Sostituisci studio-region e studio-account con i valori effettivi della regione e AWS dell'ID account prima di copiare l'elenco delle dichiarazioni nella politica in linea del tuo 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 Crea policy.

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

Sull'account Amazon EMR

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

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

  • 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. Aprire la console IAM all'indirizzo https://console.aws.amazon.com/sagemaker/.

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

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

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

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

      Sostituisci emr-region ed emr-account con i valori effettivi della regione e dell'ID dell'account prima di copiare il codice AWS JSON nella tua politica.

      { "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 ruolo IAM personalizzato denominatoASSUMABLE-ROLE, quindi allega la tua nuova policy al ruolo.

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

    2. Per il tipo di entità affidabile, scegli AWS account e poi 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.

      Sostituisci studio-account con il suo ID account effettivo. AWS Seleziona 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'ultimo JSON che hai incollato. Scegli 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 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 modelli e ai cluster di Amazon EMR tra le applicazioni (come l'interfaccia utente di Studio 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 Amazon EMR.

  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. Aprire 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 scheda JSON, aggiungi la seguente politica JSON con le autorizzazioni:

    • AllowEMRTemplateDiscoveryconsente la ricerca di modelli Amazon EMR 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 i MLOps con Projects SageMaker .

    La policy IAM definita nel JSON fornito concede tali autorizzazioni. Sostituisci studio-region e studio-account con i valori effettivi della regione e dell'ID AWS dell'account prima di copiare l'elenco delle dichiarazioni nella tua 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 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 scheda JSON, aggiungi la seguente politica JSON. Aggiorna il emr-account con l'ID dell'account Amazon EMR.

    { "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 dei cluster Amazon EMR 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 cluster Amazon EMR

Passa l'ARN del ruolo all'avvio del server Jupyter

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