Creazione e gestione dei profili di utilizzo - AWS Glue

Creazione e gestione dei profili di utilizzo

Creazione di un profilo di utilizzo di AWS Glue

Gli amministratori devono creare profili di utilizzo e quindi assegnarli ai vari utenti. Durante la creazione di un profilo di utilizzo, si specificano valori predefiniti, nonché una gamma di valori consentiti per vari parametri di processo e sessione. È necessario configurare almeno un parametro per i processi o le sessioni interattive. È possibile personalizzare il valore predefinito da utilizzare quando non viene fornito un valore di parametro per il job e/o impostare un limite di intervallo o un set di valori consentiti per la convalida se un utente fornisce un valore di parametro quando si utilizza questo profilo.

I valori predefiniti sono una best practice impostata dall'amministratore per assistere gli autori dei processi. Quando un utente crea un nuovo processo e non imposta un valore di timeout, viene applicato il timeout predefinito del profilo di utilizzo. Se l'autore non dispone di un profilo, verranno applicate le impostazioni predefinite del servizio AWS Glue e verranno salvate nella definizione del processo. Al runtime, AWS Glue applica i limiti impostati nel profilo (min, max, worker consentiti).

Una volta configurato un parametro, tutti gli altri parametri sono opzionali. I parametri che possono essere personalizzati per processi o sessioni interattive sono:

  • Numero di lavoratori: limita il numero di lavoratori per evitare un uso eccessivo delle risorse di calcolo. È possibile impostare un valore predefinito, minimo e massimo. Il valore minimo è 1.

  • Tipo di lavoratore: limita i tipi di lavoratori pertinenti per i tuoi carichi di lavoro. È possibile impostare un tipo predefinito e consentire tipi di lavoratori per un profilo utente.

  • Timeout: definisce il tempo massimo in cui un processo o una sessione interattiva può essere eseguito/a e consumare risorse prima che venga terminato/a. Impostare i valori di timeout per evitare processi di lunga durata.

    È possibile impostare un valore predefinito, minimo e massimo in minuti. Il minimo è di 1 (minuto). Sebbene il timeout predefinito di AWS Glue sia 2.880 minuti, è possibile impostare qualsiasi valore predefinito nel profilo di utilizzo.

    È consigliabile impostare un valore per “default”. Questo valore verrà utilizzato per la creazione del processo o della sessione se l'utente non ha impostato alcun valore.

  • Timeout di inattività: definisce il numero di minuti in cui una sessione interattiva è inattiva prima del timeout dopo l'esecuzione di una cella. Definire il timeout di inattività per le sessioni interattive da terminare dopo il completamento del processo. L'intervallo di timeout di inattività deve rientrare nel limite del timeout.

    È possibile impostare un valore predefinito, minimo e massimo in minuti. Il minimo è di 1 (minuto). Sebbene il timeout predefinito di AWS Glue sia 2.880 minuti, è possibile impostare qualsiasi valore predefinito nel profilo di utilizzo.

    È consigliabile impostare un valore per “default”. Questo valore verrà utilizzato per la creazione della sessione se l'utente non ha impostato alcun valore.

Per creare un profilo di utilizzo di AWS Glue come amministratore (console)
  1. Nel menu di navigazione a sinistra, scegliere Gestione dei costi.

  2. Scegliere Crea profilo.

  3. Immettere il Nome del profilo di utilizzo per il profilo di utilizzo.

  4. Immettere una descrizione opzionale che aiuterà gli altri utenti a riconoscere lo scopo del profilo di utilizzo.

  5. Definire almeno un parametro nel profilo. Qualsiasi campo del modulo è un parametro. Ad esempio, il timeout minimo di inattività della sessione.

  6. Definire eventuali tag opzionali che si applicano al profilo di utilizzo.

  7. Scegliere Salva.

    Un esempio di un amministratore che crea un profilo di utilizzo in AWS Glue.
Per creare un profilo di utilizzo (AWS CLI)
  1. Inserire il seguente comando.

    aws glue create-usage-profile --name profile-name --configuration file://config.json --tags list-of-tags

    Dove config.json può definire i valori dei parametri per le sessioni interattive (SessionConfiguration) e i processi (JobConfiguration):

    //config.json (There is a separate blob for session/job configuration { "SessionConfiguration": { "timeout": { "DefaultValue": "2880", "MinValue": "100", "MaxValue": "4000" }, "idleTimeout": { "DefaultValue": "30", "MinValue": "10", "MaxValue": "4000" }, "workerType": { "DefaultValue": "G.2X", "AllowedValues": [ "G.1X", "G.2X", "G.4X", "G.8X", "G.12X", "G.16X", "R.1X", "R.2X", "R.4X", "R.8X" ] }, "numberOfWorkers": { "DefaultValue": "10", "MinValue": "1", "MaxValue": "10" } }, "JobConfiguration": { "timeout": { "DefaultValue": "2880", "MinValue": "100", "MaxValue": "4000" }, "workerType": { "DefaultValue": "G.2X", "AllowedValues": [ "G.1X", "G.2X", "G.4X", "G.8X", "G.12X", "G.16X", "R.1X", "R.2X", "R.4X", "R.8X" ] }, "numberOfWorkers": { "DefaultValue": "10", "MinValue": "1", "MaxValue": "10" } } }
  2. Inserire il seguente comando per vedere il profilo di utilizzo creato:

    aws glue get-usage-profile --name profile-name

    La risposta:

    { "ProfileName": "foo", "Configuration": { "SessionConfiguration": { "numberOfWorkers": { "DefaultValue": "10", "MinValue": "1", "MaxValue": "10" }, "workerType": { "DefaultValue": "G.2X", "AllowedValues": [ "G.1X", "G.2X", "G.4X", "G.8X", "G.12X", "G.16X", "R.1X", "R.2X", "R.4X", "R.8X" ] }, "timeout": { "DefaultValue": "2880", "MinValue": "100", "MaxValue": "4000" }, "idleTimeout": { "DefaultValue": "30", "MinValue": "10", "MaxValue": "4000" } }, "JobConfiguration": { "numberOfWorkers": { "DefaultValue": "10", "MinValue": "1", "MaxValue": "10" }, "workerType": { "DefaultValue": "G.2X", "AllowedValues": [ "G.1X", "G.2X", "G.4X", "G.8X", "G.12X", "G.16X", "R.1X", "R.2X", "R.4X", "R.8X" ] }, "timeout": { "DefaultValue": "2880", "MinValue": "100", "MaxValue": "4000" } } }, "CreatedOn": "2024-01-19T23:15:24.542000+00:00" }

Comandi CLI aggiuntivi utilizzati per gestire i profili di utilizzo:

  • aws glue list-usage-profiles

  • aws glue update-usage-profile --name profile-name --configuration file://config.json

  • aws glue delete-usage-profile --name profile-name

Modifica di un profilo di utilizzo

Gli amministratori possono modificare i profili di utilizzo che hanno creato, per cambiare i valori di parametro del profilo per i processi e le sessioni interattive.

Per modificare un profilo di utilizzo:

Per modificare un profilo di utilizzo di AWS Glue come amministratore (console)
  1. Nel menu di navigazione a sinistra, scegliere Gestione dei costi.

  2. Scegliere un profilo di utilizzo per il quale si dispone delle autorizzazioni necessarie per la modifica e scegliere Modifica.

  3. Apportare le modifiche necessarie al profilo. Per impostazione predefinita, i parametri che hanno già dei valori vengono espansi.

  4. Scegliere Salva modifiche.

    Un esempio di utente che modifica un profilo di utilizzo in AWS Glue.
Per modificare un profilo di utilizzo (AWS CLI)
  • Inserire il seguente comando. La stessa sintassi di file --configuration viene utilizzata come illustrato sopra nel comando "Crea".

    aws glue update-usage-profile --name profile-name --configuration file://config.json

    Dove config.json definisce i valori dei parametri per le sessioni interattive (SessionConfiguration) e i processi (JobConfiguration):

Assegnazione di un profilo di utilizzo

La colonna Stato di utilizzo nella pagina Profili di utilizzo mostra se un profilo di utilizzo è assegnato agli utenti. Il passaggio del mouse sullo stato mostra le entità IAM assegnate.

L'amministratore può assegnare un profilo di utilizzo di AWS Glue a utenti/ruoli che creano risorse AWS Glue. L'assegnazione di un profilo è una combinazione di due azioni:

  • Aggiornamento del tag di ruolo/utente IAM con la chiave glue:UsageProfile, quindi

  • Aggiornamento della policy IAM dell'utente/ruolo.

Per gli utenti che utilizzano AWS Glue Studio per creare processi/sessioni interattive, l'amministratore assegna un tag ai seguenti ruoli:

  • Per le restrizioni sui processi, l'amministratore tagga il ruolo della console in cui è stato effettuato l'accesso

  • Per le restrizioni sulle sessioni interattive, l'amministratore tagga il ruolo assegnato dall'utente al momento della creazione del notebook

Di seguito è riportato un esempio di policy che l'amministratore deve aggiornare sugli utenti/ruoli IAM che creano risorse AWS Glue:

{ "Effect": "Allow", "Action": [ "glue:GetUsageProfile" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:usageProfile/foo" ] }

AWS Glue convalida le richieste di processi, esecuzione dei processi e sessioni in base ai valori specificati nel profilo di utilizzo di AWS Glue e innesca un'eccezione se la richiesta non è consentita. Per le API sincrone, all'utente verrà inviato un errore. Per i percorsi asincroni, viene creata un'esecuzione di processo non riuscita con il messaggio di errore che indica che il parametro di input non rientra nell'intervallo consentito per il profilo assegnato all'utente/ruolo.

Per assegnare un profilo di utilizzo a un utente/ruolo:

  1. Aprire la console IAM (Identity and Access Management).

  2. Nel pannello di navigazione, scegliere Ruoli o Utenti.

  3. Scegliere un utente o un ruolo.

  4. Selezionare la scheda Tag.

  5. Scegliere Aggiungi nuovo tag.

  6. Aggiungere un tag con la chiave di glue:UsageProfile e il valore del nome del tuo profilo di utilizzo.

  7. Scegliere Salva modifiche.

    Un esempio di aggiunta di un tag a un ruolo IAM.

Visualizzazione del profilo di utilizzo assegnato

Gli utenti possono visualizzare i profili di utilizzo assegnati e utilizzarli quando effettuano chiamate API per creare risorse di processo e sessione di AWS Glue o per avviare un processo.

Le autorizzazioni dei profili sono fornite nelle policy IAM. Finché la politica del chiamante dispone dell'autorizzazione glue:UsageProfile, un utente può vedere il profilo. Altrimenti, si otterrà un errore di accesso negato.

Per visualizzare un profilo di utilizzo assegnato:

  1. Nel menu di navigazione a sinistra, scegliere Gestione dei costi.

  2. Scegliere un profilo di utilizzo per il quale si dispone delle autorizzazioni necessarie per la visualizzazione.

Un esempio di utente che visualizza il profilo di utilizzo assegnato in AWS Glue.