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 al 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 di calcolo. 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 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) SageMaker che richiedono autorizzazioni IAM specifiche. Le autorizzazioni per eseguire le attività sono definite come attività di machine learning 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, puoi creare ruoli e poi passare tali ruoli 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 AWS KMS e alle 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('DOC-EXAMPLE-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 AWS KMS e alle 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 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') } }