Utilisation du gestionnaire de rôles (AWS CDK) - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation du gestionnaire de rôles (AWS CDK)

Utilisez le AWS Cloud Development Kit (AWS CDK) avec Amazon SageMaker Role Manager pour créer des rôles et définir des autorisations de manière programmatique. Vous pouvez utiliser le AWS CDK pour accomplir n'importe quelle tâche que vous pourriez effectuer à l'aide du AWS Management Console. L'accès programmatique du CDK permet de fournir plus facilement des autorisations permettant à vos utilisateurs d'accéder à des ressources spécifiques. Pour plus d'informations sur le AWS CDK, voir Qu'est-ce que c'est AWS CDK ?

Important

Vous devez utiliser le personnage SageMaker Compute Role pour créer un SageMaker Compute Role. Pour plus d'informations sur le persona de calcul, consultez SageMaker persona informatique. Pour le code que vous pouvez utiliser pour créer le rôle de calcul dans le AWS CDK, voirOctroi d'autorisations à un persona de calcul.

Voici des exemples de tâches que vous pouvez effectuer dans AWS CDK :

  • Créez IAM des rôles dotés d'autorisations détaillées pour les acteurs du machine learning (ML), tels que les scientifiques des données et MLOps les ingénieurs.

  • Accordez des autorisations aux CDK constructions à partir de personas ou d'activités ML.

  • Définir des paramètres de condition d'activité de ML.

  • Activez Amazon VPC et ses AWS Key Management Service conditions à l'échelle mondiale et définissez des valeurs pour celles-ci.

  • Choisir parmi toutes les versions des activités de ML pour vos utilisateurs sans interrompre leur accès.

Certaines AWS tâches courantes liées à l'apprentissage automatique (ML) SageMaker nécessitent des IAM autorisations spécifiques. Les autorisations pour effectuer les tâches sont définies comme des activités de machine learning dans Amazon SageMaker Role Manager. Les activités ML spécifient un ensemble d'autorisations liées au IAM rôle. Par exemple, l'activité ML pour Amazon SageMaker Studio Classic dispose de toutes les autorisations dont un utilisateur a besoin pour accéder à Studio Classic. Pour plus d'informations sur les activités de ML, consultez Référence d'activité de ML.

Lorsque vous créez des rôles, vous définissez d'abord les constructions pour le persona de ML ou l'activité de ML. Une construction est une ressource au sein de la AWS CDK pile. Par exemple, une construction peut être un compartiment Amazon S3, un VPC sous-réseau Amazon ou un IAM rôle.

Lorsque vous créez le persona ou l'activité, vous pouvez limiter les autorisations associées à ce persona ou à cette activité à des ressources spécifiques. Par exemple, vous pouvez personnaliser l'activité pour ne fournir des autorisations que pour un sous-réseau spécifique au sein d'un AmazonVPC.

Après avoir défini les autorisations, vous pouvez créer des rôles, puis les transmettre pour créer d'autres ressources, telles que des instances de SageMaker bloc-notes.

Vous trouverez ci-dessous des exemples de code dans Typescript pour les tâches que vous pouvez accomplir à l'aide du. CDK Lorsque vous créez une activité, vous spécifiez un identifiant et les options de la construction de l'activité. Les options sont des dictionnaires qui spécifient les paramètres requis pour les activités, tels qu'Amazon S3. Vous transmettez un dictionnaire vide pour les activités qui n'ont pas de paramètres requis.

Le code suivant crée un persona de ML Scientifique des données avec un ensemble d'activités de ML spécifiques à ce persona. Les autorisations liées aux activités de machine learning ne s'appliquent qu'à Amazon VPC et aux AWS KMS configurations spécifiées dans la construction du personnage. Le code suivant crée une classe pour un persona Scientifique des données. Les activités de ML sont définies dans la liste des activités. Les VPC autorisations et les KMS autorisations sont définies comme des paramètres facultatifs en dehors de la liste des activités.

Après avoir défini la classe, vous pouvez créer un rôle sous forme de construction au sein de la AWS CDK pile. Vous pouvez également créer une instance de bloc-notes. La personne qui utilise le IAM rôle que vous avez créé dans le code suivant peut accéder à l'instance du bloc-notes lorsqu'elle se connecte à son AWS compte.

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

Le code suivant crée un persona de ML Scientifique des données avec un ensemble d'activités de ML spécifiques à ce persona. Les autorisations issues des activités de machine learning ne s'appliquent qu'aux KMS configurations VPC et spécifiées dans la construction du personnage. Le code suivant crée une classe pour un persona Scientifique des données. Les activités de ML sont définies dans la liste des activités. Les VPC autorisations Amazon et les AWS KMS autorisations sont définies comme des paramètres facultatifs en dehors de la liste des activités.

Après avoir défini la classe, vous pouvez créer un rôle sous forme de construction au sein de la AWS CDK pile. Vous pouvez également créer une instance de bloc-notes. La personne qui utilise le IAM rôle que vous avez créé dans le code suivant peut accéder à l'instance du bloc-notes lorsqu'elle se connecte à son AWS compte.

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, ...}); } }

Le code suivant crée un persona ML Ops avec un ensemble d'activités de ML spécifiques à ce persona. Les autorisations liées aux activités de machine learning ne s'appliquent qu'à Amazon VPC et aux AWS KMS configurations spécifiées dans la construction du personnage. Le code suivant crée une classe pour un persona ML Ops. Les activités de ML sont définies dans la liste des activités. Les VPC autorisations et les KMS autorisations sont définies comme des paramètres facultatifs en dehors de la liste des activités.

Après avoir défini la classe, vous pouvez créer un rôle sous forme de construction au sein de la AWS CDK pile. Vous pouvez également créer un profil utilisateur Amazon SageMaker Studio Classic. La personne qui utilise le IAM rôle que vous avez créé dans le code suivant peut ouvrir SageMaker Studio Classic lorsqu'elle se connecte à son AWS compte.

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, ... }); } }

Le code suivant crée un persona ML Ops avec un ensemble d'activités de ML spécifiques à ce persona. Le code suivant crée une classe pour un persona ML Ops. Les activités de ML sont définies dans la liste des activités.

Après avoir défini la classe, vous pouvez créer un rôle sous forme de construction au sein de la AWS CDK pile. Vous pouvez également créer une instance de bloc-notes. Le code accorde des autorisations relatives aux activités de machine learning au IAM rôle de la fonction 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); } }

Le code suivant crée une activité de ML et crée un rôle à partir de cette activité. Les autorisations associées à l'activité s'appliquent uniquement à la KMS configuration VPC et que vous spécifiez pour l'utilisateur.

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

Le code suivant crée un IAM rôle pour une seule activité 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') } }