Definisci autorizzazioni personalizzate in pochi minuti con Amazon SageMaker Role Manager tramite AWS CDK.

Define custom permissions quickly with Amazon SageMaker Role Manager using AWS CDK.

Gli amministratori di machine learning (ML) svolgono un ruolo critico nel mantenere la sicurezza e l’integrità dei carichi di lavoro ML. Il loro focus principale è garantire che gli utenti operino con la massima sicurezza, attenendosi al principio del privilegio minimo. Tuttavia, l’adeguamento alle diverse esigenze delle diverse persone e la creazione di appropriati criteri di autorizzazione possono a volte ostacolare l’agilità. Per affrontare questa sfida, AWS ha introdotto Amazon SageMaker Role Manager nel dicembre 2022. SageMaker Role Manager è un potente strumento che puoi utilizzare per sviluppare rapidamente ruoli basati sulla persona, che possono essere facilmente personalizzati per soddisfare requisiti specifici.

Con SageMaker Role Manager, gli amministratori possono definire in modo efficiente ruoli basati sulla persona adattati a gruppi di utenti distinti. Questo approccio garantisce che le persone abbiano accesso solo alle risorse e alle azioni essenziali per le loro attività, riducendo il rischio di azioni non autorizzate o violazioni. SageMaker Role Manager consente anche una personalizzazione a grana fine. Gli amministratori di ML possono adattare i ruoli per soddisfare requisiti specifici modificando le autorizzazioni associate a ciascuna persona. Questa flessibilità garantisce che le autorizzazioni siano allineate precisamente con le attività e le responsabilità degli utenti individuali, fornendo un solido quadro di sicurezza e al contempo consentendo l’accomodamento di casi d’uso unici.

SageMaker Role Manager è attualmente disponibile nella console Amazon SageMaker di tutte le regioni commerciali. Oggi, stiamo lanciando la capacità di definire autorizzazioni personalizzate in pochi minuti con SageMaker Role Manager tramite il kit di sviluppo cloud di AWS (AWS CDK). Ciò affronta un ostacolo critico all’adozione più ampia perché gli amministratori di ML possono ora automatizzare le loro attività in modo programmabile. Con la potenza di AWS CDK, gli amministratori di ML possono razionalizzare i flussi di lavoro, ridurre gli sforzi manuali e garantire la coerenza nella gestione delle autorizzazioni per la propria infrastruttura di ML.

Panoramica della soluzione

Con il rilascio del SageMaker Role Manager CDK, stiamo lanciando due nuove capacità di infrastruttura come codice (IaC):

  • Crea autorizzazioni a grana fine per le persone di ML
  • Crea autorizzazioni a grana fine per lavori automatizzati tramite Amazon SageMaker Pipelines, AWS Lambda e altri servizi AWS

Puoi creare ruoli di accesso e gestione di identità (IAM) a grana fine per le persone di ML come i data scientist, gli ingegneri di ML o i data engineer. SageMaker Role Manager offre persone predefinite e attività di ML combinate per razionalizzare il tuo processo di generazione di autorizzazioni, consentendo ai tuoi praticanti di ML di svolgere le loro responsabilità con le autorizzazioni del privilegio minimo. Per l’accesso sicuro alle risorse di ML, SageMaker Role Manager consente di specificare autorizzazioni di rete e di crittografia per le risorse di Amazon Virtual Private Cloud (Amazon VPC) e per le chiavi di crittografia del servizio AWS Key Management Service (AWS KMS). Inoltre, è possibile personalizzare le autorizzazioni allegando le proprie policy gestite dal cliente.

Il SageMaker Role Manager CDK consente di definire autorizzazioni personalizzate per gli utenti di SageMaker in pochi minuti. Viene fornito con un insieme di modelli di policy predefiniti per diverse persone e attività di ML. Le persone rappresentano i diversi tipi di utenti che necessitano di autorizzazioni per svolgere attività di ML in SageMaker, come i data scientist o gli ingegneri MLOps. Le attività di ML sono un insieme di autorizzazioni per svolgere una comune attività di ML, come eseguire applicazioni di Amazon SageMaker Studio o gestire esperimenti, modelli o pipeline. Dopo aver selezionato il tipo di persona e l’insieme di attività di ML, il SageMaker Role Manager CDK crea automaticamente il ruolo IAM e le policy richieste che è possibile assegnare agli utenti di SageMaker. Allo stesso modo, è possibile anche creare ruoli IAM con autorizzazioni a grana fine per lavori automatizzati come l’esecuzione di SageMaker Pipelines.

Prerequisiti

Per iniziare a utilizzare SageMaker Role Manager CDK, è necessario completare i seguenti passaggi preliminari:

  1. Configurare un ruolo per il proprio amministratore di ML per creare e gestire persone, nonché le autorizzazioni IAM per quegli utenti. Per una policy di amministratore di esempio, fare riferimento alla sezione dei prerequisiti nell’articolo del blog Definire autorizzazioni personalizzate in pochi minuti con Amazon SageMaker Role Manager.
  2. Creare un ruolo persona solo per il calcolo (se non ne hai nessuno) da passare a lavori ed endpoint. Per le istruzioni per configurare tale ruolo, fare riferimento all’utilizzo del role manager.
  3. Configurare l’ambiente di sviluppo AWS CDK. Per le istruzioni, fare riferimento alla guida Introduzione all’AWS CDK.

Installare ed eseguire il SageMaker Role Manager CDK

Completare i seguenti passaggi per configurare il SageMaker Role Manager CDK:

  1. Crea la tua app AWS CDK e dai un nome, ad esempio, RoleManager.

  2. Vai alla cartella RoleManager ed esegui il seguente comando per creare un progetto AWS CDK vuoto in TypeScript:

    cdk init app --language typescript
  3. Apri package.json e aggiungi il pacchetto evidenziato come mostrato nel codice seguente:

    "dependencies": {
        "aws-cdk-lib": "2.85.0",
        "@cdklabs/cdk-aws-sagemaker-role-manager": "0.0.15",
        "constructs": "^10.0.0",
        "source-map-support": "^0.5.21"
      }
  4. Esegui il seguente comando per installare il nuovo pacchetto cdk-aws-sagemaker-role-manager:

    npm install
  5. Vai alla cartella lib e sostituisci role_manager_stack.ts con il codice seguente:

    import * as cdk from 'aws-cdk-lib';
    import { Construct } from 'constructs';
    import * as iam from 'aws-cdk-lib/aws-iam';
    import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager';
    
    export class RoleManagerStack extends cdk.Stack {
      constructor(scope: Construct, id: string, props?: cdk.StackProps) {
        super(scope, id, props);
    
        const activity = Activity.manageJobs(this, 'id1', {
            rolesToPass: [iam.Role.fromRoleName(this, 'passRoleId', 'passRoleName')],
        });
    
        activity.createRole(this, 'newRoleId', 'newRoleName', newRoleDescription');
    
      }
    }
  6. Sostituisci passRoleId, passRoleName, newRoleId, newRoleName e newRoleDescription in base alle tue esigenze per la creazione del ruolo.

  7. Torna alla cartella principale dell’app AWS CDK ed esegui il seguente comando per verificare il modello AWS CloudFormation generato:

    cdk synth
  8. Infine, esegui il seguente comando per eseguire lo stack CloudFormation nel tuo account AWS:

    cdk deploy

Dovresti vedere un output di distribuzione AWS CDK simile a quello nella seguente schermata.

Sono disponibili ulteriori esempi di SageMaker Role Manager CDK nella seguente repo GitHub.

ML persona e attività riferimento CDK

Gli amministratori possono definire le attività di ML utilizzando una delle funzioni statiche di attività di ML della classe di attività di ML. Per un elenco delle ultime versioni, fare riferimento al riferimento dell’attività di ML.

La classe di persona di ML supporta i seguenti metodi:

  • customizeVPC(subnets, securityGroups) – Personalizza la VPC di tutte le attività che supportano la personalizzazione della VPC delle persone.
  • customizeKMS(dataKeys, volumeKeys) – Personalizza le chiavi KMS di tutte le attività che supportano la personalizzazione delle chiavi KMS delle persone.
  • createRole(scope, id, roleNameSuffix, roleDescription) – Crea un ruolo con le autorizzazioni delle attività della persona simile all’interfaccia utente nello scope con ID, con il nome SageMaker-${roleNameSuffix} e facoltativamente con la descrizione del ruolo passata.
  • grantPermissionsTo(identity) – Concede le autorizzazioni delle attività della persona all’identità. L’identità passata può essere un ruolo o una risorsa AWS associata a un ruolo (ad esempio, una funzione Lambda con il ruolo della funzione Lambda che descrive a quali risorse la funzione Lambda può accedere).
  • grantPermissionsTo() – Aggiorna il ruolo dell’identità passata per avere le autorizzazioni specificate nell’attività di ML.

La classe di attività di ML supporta lo stesso insieme di funzioni delle persone di ML; tuttavia, la differenza è che un’attività di ML è limitata a un’unica attività quando si utilizza questa interfaccia per creare ruoli IAM.

Conclusione

SageMaker Role Manager consente di creare ruoli personalizzati basati su persone, attività di ML predefinite e policy personalizzate, riducendo significativamente il tempo necessario. Ora, con questo ultimo supporto di AWS CDK, la capacità di definire ruoli viene ulteriormente ampliata per supportare l’infrastruttura come codice. Questo consente ai professionisti di ML di lavorare in modo programmato in SageMaker, migliorando l’efficienza e consentendo un’integrazione senza soluzione di continuità nei loro flussi di lavoro.

Ci piacerebbe sentire da voi su come questa nuova funzionalità vi sta aiutando. Prova il nuovo supporto AWS CDK per SageMaker Role Manager e inviaci il tuo feedback!

Per saperne di più su come utilizzare SageMaker Role Manager, fare riferimento alla Guida per lo sviluppatore di SageMaker Role Manager.