View a markdown version of this page

Utilizzando il role manager (AWS CDK) - 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à.

Utilizzando il role manager (AWS CDK)

Nota

Amazon SageMaker Role Manager non è più aperto a nuovi clienti. I clienti esistenti possono continuare a utilizzare il servizio normalmente. AWS continua a investire in miglioramenti della sicurezza e della disponibilità per Role Manager, ma non prevediamo di introdurre nuove funzionalità. Per ulteriori informazioni, consulta Modifica della disponibilità di Role Manager.

Usa AWS Cloud Development Kit (AWS CDK) with Amazon SageMaker Role Manager per creare ruoli e impostare autorizzazioni in modo programmatico. Puoi utilizzare il AWS CDK per eseguire qualsiasi attività che potresti eseguire utilizzando. Console di gestione AWS L'accesso programmatico al CDK semplifica la fornitura di autorizzazioni che consentono agli utenti di accedere a risorse specifiche. Per ulteriori informazioni su AWS CDK, vedere Che cos'è AWS CDK?

Importante

È necessario utilizzare la persona SageMaker AI Compute Role per creare un ruolo di elaborazione SageMaker AI. Per ulteriori informazioni sulla funzione calcolo, consulta la colonna SageMaker AI Computer Persona. Per il codice che puoi utilizzare per creare il ruolo di calcolo all'interno di, vedi. AWS CDKConcedi le autorizzazioni a un utente che si occupa di Calcolo

Di seguito sono riportati alcuni esempi di attività che è possibile eseguire in AWS CDK:

  • Crea ruoli IAM con autorizzazioni granulari per gli utenti di machine learning (ML), come Data Scientist e MLOps Engineer.

  • Concedi le autorizzazioni ai costrutti CDK di utenti ML o attività di machine learning.

  • Imposta i parametri delle condizioni di attività ML.

  • Abilita Amazon VPC e AWS Key Management Service condizioni globali e imposta i relativi valori.

  • Scegli tra tutte le versioni delle attività ML per i tuoi utenti senza causare interruzioni nel loro accesso.

Esistono AWS attività comuni relative all'apprendimento automatico (ML) con SageMaker intelligenza artificiale che richiedono autorizzazioni IAM specifiche. Le autorizzazioni per eseguire le attività sono definite come attività ML in Amazon SageMaker Role Manager. Le attività ML specificano un set di autorizzazioni collegate al ruolo IAM. Ad esempio, l'attività ML per Amazon SageMaker Studio Classic dispone di tutte le autorizzazioni necessarie a un utente per accedere a Studio Classic. Per ulteriori informazioni su Attività ML, consulta Riferimento all'attività ML.

Quando crei ruoli, definisci innanzitutto i costrutti per l’utente o l'attività ML. Un costrutto è una risorsa all'interno dello AWS CDK stack. Ad esempio, un costrutto potrebbe essere un bucket Amazon S3, una sottorete Amazon VPC o un ruolo IAM.

Durante la creazione dell’utente o dell'attività, puoi limitare le autorizzazioni associate a quell’utente o attività a risorse specifiche. Ad esempio, puoi personalizzare l'attività in modo da fornire le autorizzazioni solo per una sottorete specifica all'interno di un Amazon VPC.

Dopo aver definito le autorizzazioni, è possibile creare ruoli e quindi passare tali ruoli per creare altre risorse, ad esempio le istanze di SageMaker notebook.

Di seguito sono riportati esempi di codice in Typescript per le attività che è possibile eseguire utilizzando CDK. Quando crei un'attività, specifica un ID e le opzioni per il costrutto dell'attività. Le opzioni sono dizionari che specificano i parametri richiesti per le attività, come Amazon S3. Si passa un dizionario vuoto per le attività che non hanno parametri richiesti.

Il codice seguente crea un utente di Data Scientist ML con una serie di attività ML specifiche per quell’utente. Le autorizzazioni delle attività di machine learning si applicano solo ad Amazon VPC e alle AWS KMS configurazioni specificate nel costrutto persona. Il codice seguente crea una classe per un personaggio di Data Scientist. Le attività ML sono definite nell'elenco delle attività. Le autorizzazioni VPC e le autorizzazioni KMS sono definite come parametri opzionali al di fuori dell'elenco delle attività.

Dopo aver definito la classe, puoi creare un ruolo come costrutto all'interno dello stack. AWS CDK È anche possibile creare un'istanza del notebook. La persona che utilizza il ruolo IAM che hai creato nel codice seguente può accedere all'istanza del notebook quando accede al proprio AWS account.

export class myCDKStack extends cdk.Stack { constructor(scope: cdk.App, id: string, props?: cdk.StackProps) { super(scope, id, props); const persona = new Persona(this, 'example-persona-id', { activities: [ Activity.accessAwsServices(this, 'example-id1', {}) ] }); const role = persona.createRole(this, 'example-IAM-role-id', 'example-IAM-role-name'); } }

Il codice seguente crea un utente di Data Scientist ML con una serie di attività ML specifiche per quell’utente. Le autorizzazioni delle attività ML si applicano solo a VPC e alle configurazioni KMS specificate nel costrutto dell’utente. Il codice seguente crea una classe per un personaggio di Data Scientist. Le attività ML sono definite nell'elenco delle attività. Le autorizzazioni Amazon VPC e le AWS KMS autorizzazioni sono definite come parametri opzionali al di fuori dell'elenco delle attività.

Dopo aver definito la classe, puoi creare un ruolo come costrutto all'interno dello stack. AWS CDK È anche possibile creare un'istanza del notebook. La persona che utilizza il ruolo IAM che hai creato nel codice seguente può accedere all'istanza del notebook quando accede al proprio AWS account.

export class myCDKStack extends cdk.Stack { constructor(scope: cdk.App, id: string, props?: cdk.StackProps) { super(scope, id, props); const persona = new Persona(this, 'example-persona-id', { activities: [ Activity.runStudioAppsV2(this, 'example-id1', {}), Activity.manageJobs(this, 'example-id2', {rolesToPass: [iam.Role.fromRoleName('example-IAM-role-name')]}), Activity.manageModels(this, 'example-id3', {rolesToPass: [iam.Role.fromRoleName('example-IAM-role-name')]}), Activity.manageExperiments(this, 'example-id4', {}), Activity.visualizeExperiments(this, 'example-id5', {}), Activity.accessS3Buckets(this, 'example-id6', {s3buckets: [s3.S3Bucket.fromBucketName('amzn-s3-demo-bucket')]}) ], // optional: to configure VPC permissions subnets: [ec2.Subnet.fromSubnetId('example-VPC-subnet-id')], securityGroups: [ec2.SecurityGroup.fromSecurityGroupId('example-VPC-security-group-id')], // optional: to configure KMS permissions dataKeys: [kms.Key.fromKeyArn('example-KMS-key-ARN')], volumeKeys: [kms.Key.fromKeyArn('example-KMS-key-ARN')], }); const role = persona.createRole(this, 'example-IAM-role-id', 'example-IAM-role-name'); const notebookInstance = new CfnNotebookInstance(this, 'example-notebook-instance-name', { RoleArn: role.RoleArn, ...}); } }

Il codice seguente crea un utente ML Ops con una serie di attività ML specifiche per quell’utente. Le autorizzazioni per le attività di machine learning si applicano solo ad Amazon VPC e alle AWS KMS configurazioni specificate nel costrutto persona. Il codice seguente crea una classe per un utente ML Ops. Le attività ML sono definite nell'elenco delle attività. Le autorizzazioni VPC e le autorizzazioni KMS sono definite come parametri opzionali al di fuori dell'elenco delle attività.

Dopo aver definito la classe, puoi creare un ruolo come costrutto all'interno dello stack. AWS CDK Puoi anche creare un profilo utente di Amazon SageMaker Studio Classic. La persona che utilizza il ruolo IAM che hai creato nel codice seguente può aprire SageMaker Studio Classic quando accede al proprio AWS account.

export class myCDKStack extends cdk.Stack { constructor(scope: cdk.App, id: string, props?: cdk.StackProps) { super(scope, id, props); const persona = new Persona(this, 'example-persona-id', { activities: [ Activity.runStudioAppsV2(this, 'example-id1', {}), Activity.manageModels(this, 'example-id2', {rolesToPass: [iam.Role.fromRoleName('example-IAM-role-name')]}), Activity.manageEndpoints(this, 'example-id3',{rolesToPass: [iam.Role.fromRoleName('example-IAM-role-name')]}), Activity.managePipelines(this, 'example-id4', {rolesToPass: [iam.Role.fromRoleName('example-IAM-role-name')]}), Activity.visualizeExperiments(this, 'example-id5', {}) ], subnets: [ec2.Subnet.fromSubnetId('example-VPC-subnet-id')], securityGroups: [ec2.SecurityGroup.fromSecurityGroupId('example-VPC-security-group-id')], dataKeys: [kms.Key.fromKeyArn('example-KMS-key-ARN')], volumeKeys: [kms.Key.fromKeyArn('example-KMS-key-ARN')], }); const role = persona.createRole(this, 'example-IAM-role-id', 'example-IAM-role-name'); let userProfile = new CfnNUserProfile(this, 'example-Studio Classic-profile-name', { RoleName: role.RoleName, ... }); } }

Il codice seguente crea un utente ML Ops con una serie di attività ML specifiche per quell’utente. Il codice seguente crea una classe per un utente ML Ops. Le attività ML sono definite nell'elenco delle attività.

Dopo aver definito la classe, puoi creare un ruolo come costrutto all'interno dello AWS CDK stack. È anche possibile creare un'istanza del notebook. Il codice concede le autorizzazioni delle attività ML al ruolo IAM della funzione Lambda.

export class myCDKStack extends cdk.Stack { constructor(scope: cdk.App, id: string, props?: cdk.StackProps) { super(scope, id, props); const persona = new Persona(this, 'example-persona-id', { activities: [ Activity.runStudioAppsV2(this, 'example-id1', {}), Activity.manageModels(this, 'example-id2', {rolesToPass: [iam.Role.fromRoleName('example-IAM-role-name')]}), Activity.manageEndpoints(this, 'example-id3',{rolesToPass: [iam.Role.fromRoleName('example-IAM-role-name')]}), Activity.managePipelines(this, 'example-id4', {rolesToPass: [iam.Role.fromRoleName('example-IAM-role-name')]}), Activity.visualizeExperiments(this, 'example-id5', {}) ], }); const lambdaFn = lambda.Function.fromFunctionName('example-lambda-function-name'); persona.grantPermissionsTo(lambdaFn); } }

Il codice seguente crea un'attività ML e crea un ruolo a partire dall'attività. Le autorizzazioni dell'attività si applicano solo alla configurazione VPC e KMS specificata per l'utente.

export class myCDKStack extends cdk.Stack { constructor(scope: cdk.App, id: string, props?: cdk.StackProps) { super(scope, id, props); const activity = Activity.manageJobs(this, 'example-activity-id', { rolesToPass: [iam.Role.fromRoleName('example-IAM-role-name')], subnets: [ec2.Subnet.fromSubnetId('example-VPC-subnet-id')], securityGroups: [ec2.SecurityGroup.fromSecurityGroupId('example-VPC-security-group-id')], dataKeys: [kms.Key.fromKeyArn('example-KMS-key-ARN')], volumeKeys: [kms.Key.fromKeyArn('example-KMS-key-ARN')], }); const role = activity.createRole(this, 'example-IAM-role-id', 'example-IAM-role-name'); } }

Il codice seguente crea un ruolo IAM per una singola attività ML.

export class myCDKStack extends cdk.Stack { constructor(scope: cdk.App, id: string, props?: cdk.StackProps) { super(scope, id, props); const activity = Activity.manageJobs(this, 'example-activity-id', { rolesToPass: [iam.Role.fromRoleName('example-IAM-role-name')], }); activity.create_role(this, 'example-IAM-role-id', 'example-IAM-role-name') } }