Utilizzo del Gestore del ruolo (AWS CDK) - 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à.

Utilizzo del Gestore del ruolo (AWS CDK)

Utilizza AWS Cloud Development Kit (AWS CDK) con 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. AWS Management Console L'accesso programmatico di CDK semplifica la fornitura di autorizzazioni che consentono agli utenti di accedere a risorse specifiche. Per ulteriori informazioni su AWS CDK, vedi Cos'è? AWS CDK

Importante

È necessario utilizzare la persona SageMaker Compute Role per creare un SageMaker Compute Role. Per ulteriori informazioni sulla funzione calcolo, consulta la colonna SageMaker persona informatica. Per il codice che puoi usare 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 IAM ruoli con autorizzazioni granulari per i personaggi del machine learning (ML), come data scientist e ingegneri. MLOps

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

  • Imposta i parametri delle condizioni di attività ML.

  • Abilita Amazon VPC e AWS Key Management Service le condizioni globali e imposta i valori per esse.

  • 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) SageMaker che richiedono IAM autorizzazioni specifiche. Le autorizzazioni per eseguire le attività sono definite come attività di machine learning in Amazon SageMaker Role Manager. Le attività di machine learning specificano una serie di autorizzazioni collegate al IAM ruolo. 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 VPC Amazon 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 Amazon. VPC

Dopo aver definito le autorizzazioni, puoi creare ruoli e poi passarli per creare altre risorse, come SageMaker le istanze di 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 VPC autorizzazioni e le 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 IAM ruolo 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à di machine learning si applicano solo alle configurazioni VPC e alle 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 VPC autorizzazioni Amazon 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 IAM ruolo 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 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 utente ML Ops. Le attività ML sono definite nell'elenco delle attività. Le VPC autorizzazioni e le 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 Puoi anche creare un profilo utente Amazon SageMaker Studio Classic. La persona che utilizza il IAM ruolo 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à di machine learning al IAM ruolo 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 KMS configurazione VPC and 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 IAM ruolo per una singola attività di machine learning.

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') } }