Verwenden Sie den Rollenmanager (AWS CDK) - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden Sie den Rollenmanager (AWS CDK)

Verwenden Sie den AWS Cloud Development Kit (AWS CDK) zusammen mit Amazon SageMaker Role Manager, um programmgesteuert Rollen zu erstellen und Berechtigungen festzulegen. Sie können den verwenden AWS CDK , um jede Aufgabe zu erledigen, die Sie mit dem ausführen könnten. AWS Management Console Der programmatische Zugriff auf CDK erleichtert die Bereitstellung von Berechtigungen, mit denen Ihre Benutzer auf bestimmte Ressourcen zugreifen können. Weitere Informationen zu dem finden Sie AWS CDK unter Was ist AWS CDK?

Wichtig

Sie müssen die SageMaker Compute Role-Persona verwenden, um eine SageMaker Compute Role zu erstellen. Weitere Informationen über die Compute Persona finden Sie unter SageMaker Ich rechne eine Person. Code, mit dem Sie die Rechenrolle innerhalb von erstellen können AWS CDK, finden Sie unterErteilen Sie einer Compute-Persona Berechtigungen.

Im Folgenden finden Sie Beispiele für Aufgaben, die Sie in der AWS CDK ausführen können:

  • Erstellen Sie IAM Rollen mit detaillierten Berechtigungen für maschinelles Lernen (ML) -Personas wie Datenwissenschaftler und MLOps Ingenieure.

  • Erteilen Sie Berechtigungen für CDK Konstrukte aus ML-Personas oder ML-Aktivitäten.

  • Legen Sie die Parameter für die Bedingungen der ML-Aktivität fest.

  • Aktivieren Sie die globalen Amazon VPC - und AWS Key Management Service Nutzungsbedingungen und legen Sie Werte für sie fest.

  • Wählen Sie aus allen Versionen der ML-Aktivitäten für Ihre Benutzer, ohne dass deren Zugriff unterbrochen wird.

Es gibt allgemeine AWS Aufgaben im Zusammenhang mit maschinellem Lernen (ML), für SageMaker die spezielle IAM Berechtigungen erforderlich sind. Die Berechtigungen zur Ausführung der Aufgaben sind in Amazon SageMaker Role Manager als ML-Aktivitäten definiert. ML-Aktivitäten spezifizieren eine Reihe von Berechtigungen, die mit der IAM Rolle verknüpft sind. Beispielsweise verfügt die ML-Aktivität für Amazon SageMaker Studio Classic über alle Berechtigungen, die ein Benutzer für den Zugriff auf Studio Classic benötigt. Weitere Informationen über ML-Aktivitäten finden Sie unter Referenz zur ML-Aktivität.

Wenn Sie Rollen erstellen, definieren Sie zunächst die Konstrukte für die ML-Persona oder die ML-Aktivität. Ein Konstrukt ist eine Ressource innerhalb des AWS CDK Stacks. Ein Konstrukt könnte beispielsweise ein Amazon S3 S3-Bucket, ein VPC Amazon-Subnetz oder eine IAM Rolle sein.

Während Sie die Persona oder Aktivität erstellen, können Sie die mit dieser Persona oder Aktivität verknüpften Berechtigungen auf bestimmte Ressourcen beschränken. Sie können die Aktivität beispielsweise so anpassen, dass nur Berechtigungen für ein bestimmtes Subnetz innerhalb eines Amazon VPC erteilt werden.

Nachdem Sie Berechtigungen definiert haben, können Sie Rollen erstellen und diese Rollen dann weitergeben, um andere Ressourcen wie SageMaker Notebook-Instances zu erstellen.

Im Folgenden finden Sie Codebeispiele in Typescript für Aufgaben, die Sie mit dem erledigen können. CDK Wenn Sie eine Aktivität erstellen, geben Sie eine ID und die Optionen für das Konstrukt der Aktivität an. Bei den Optionen handelt es sich um Wörterbücher, die die erforderlichen Parameter für die Aktivitäten angeben, z. B. ein Amazon S3. Sie übergeben ein leeres Wörterbuch für Aktivitäten, für die keine erforderlichen Parameter erforderlich sind.

Der folgende Code erstellt eine Data Scientist ML-Persona mit einer Reihe von ML-Aktivitäten, die für die Persona spezifisch sind. Die Berechtigungen aus ML-Aktivitäten gelten nur für Amazon VPC und AWS KMS Konfigurationen, die im Persona-Konstrukt angegeben sind. Der folgende Code erstellt eine Klasse für eine Data Scientist-Persona. Die ML-Aktivitäten sind in der Aktivitätenliste definiert. Die VPC Berechtigungen und die KMS Berechtigungen sind als optionale Parameter außerhalb der Aktivitätsliste definiert.

Nachdem Sie die Klasse definiert haben, können Sie eine Rolle als Konstrukt innerhalb des AWS CDK Stacks erstellen. Sie können auch eine Notebook-Instance erstellen. Die Person, die die IAM Rolle verwendet, die Sie im folgenden Code erstellt haben, kann auf die Notebook-Instanz zugreifen, wenn sie sich bei ihrem AWS Konto anmeldet.

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

Der folgende Code erstellt eine Data Scientist ML-Persona mit einer Reihe von ML-Aktivitäten, die für die Persona spezifisch sind. Die Berechtigungen aus ML-Aktivitäten gelten nur für die VPC im Persona-Konstrukt angegebenen KMS Konfigurationen. Der folgende Code erstellt eine Klasse für eine Data Scientist-Persona. Die ML-Aktivitäten sind in der Aktivitätenliste definiert. Die VPC Amazon-Berechtigungen und die AWS KMS Berechtigungen sind als optionale Parameter außerhalb der Aktivitätenliste definiert.

Nachdem Sie die Klasse definiert haben, können Sie eine Rolle als Konstrukt innerhalb des AWS CDK Stacks erstellen. Sie können auch eine Notebook-Instance erstellen. Die Person, die die IAM Rolle verwendet, die Sie im folgenden Code erstellt haben, kann auf die Notebook-Instanz zugreifen, wenn sie sich bei ihrem AWS Konto anmeldet.

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

Der folgende Code erstellt eine ML Ops-Persona mit einer Reihe von ML-Aktivitäten, die für die Persona spezifisch sind. Die Berechtigungen aus ML-Aktivitäten gelten nur für Amazon VPC und AWS KMS Konfigurationen, die im Persona-Konstrukt angegeben sind. Der folgende Code erstellt eine Klasse für eine ML Ops-Persona. Die ML-Aktivitäten sind in der Aktivitätenliste definiert. Die VPC Berechtigungen und die KMS Berechtigungen sind als optionale Parameter außerhalb der Aktivitätsliste definiert.

Nachdem Sie die Klasse definiert haben, können Sie eine Rolle als Konstrukt innerhalb des AWS CDK Stacks erstellen. Sie können auch ein Amazon SageMaker Studio Classic-Benutzerprofil erstellen. Die Person, die die IAM Rolle verwendet, die Sie im folgenden Code erstellt haben, kann SageMaker Studio Classic öffnen, wenn sie sich bei ihrem AWS Konto anmeldet.

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

Der folgende Code erstellt eine ML Ops-Persona mit einer Reihe von ML-Aktivitäten, die für die Persona spezifisch sind. Der folgende Code erstellt eine Klasse für eine ML Ops-Persona. Die ML-Aktivitäten sind in der Aktivitätenliste definiert.

Nachdem Sie die Klasse definiert haben, können Sie eine Rolle als Konstrukt innerhalb des AWS CDK Stacks erstellen. Sie können auch eine Notebook-Instance erstellen. Der Code gewährt der IAM Rolle der Lambda-Funktion Berechtigungen aus den ML-Aktivitäten.

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

Der folgende Code erstellt eine ML-Aktivität und erstellt aus der Aktivität eine Rolle. Die Berechtigungen aus der Aktivität gelten nur für die KMS Konfiguration VPC und, die Sie für den Benutzer angeben.

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

Der folgende Code erstellt eine IAM Rolle für eine einzelne ML-Aktivität.

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