Usar o gerente de perfis (AWS CDK) - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar o gerente de perfis (AWS CDK)

Use o AWS Cloud Development Kit (AWS CDK) com o Amazon SageMaker Role Manager para criar funções e definir permissões de forma programática. Você pode usar o AWS CDK para realizar qualquer tarefa que possa ser executada usando AWS Management Console o. O acesso programático do CDK facilita o fornecimento de permissões que dão aos usuários acesso a recursos específicos. Para obter mais informações sobre o AWS CDK, consulte O que é AWS CDK?

Importante

Você deve usar a persona SageMaker Compute Role para criar um SageMaker Compute Role. Para obter informações sobre a persona de computação, consulte SageMaker persona computacional. Para obter o código que você pode usar para criar a função de computação no AWS CDK, consulteConceder permissões a uma pessoa de computação.

Veja a seguir exemplos de tarefas que você pode realizar no AWS CDK:

  • Crie IAM funções com permissões granulares para personalidades de aprendizado de máquina (ML), como cientistas de dados e MLOps engenheiros.

  • Conceda permissões para CDK construções de personas de ML ou atividades de ML.

  • Defina os parâmetros da condição da atividade de ML.

  • Ative a Amazon VPC e AWS Key Management Service as condições globais e defina valores para elas.

  • Escolha entre todas as versões das atividades de ML para seus usuários sem causar interrupções no acesso.

Há AWS tarefas comuns relacionadas ao aprendizado de máquina (ML) SageMaker que exigem IAM permissões específicas. As permissões para realizar as tarefas são definidas como atividades de ML no Amazon SageMaker Role Manager. As atividades de ML especificam um conjunto de permissões vinculadas à IAM função. Por exemplo, a atividade de ML do Amazon SageMaker Studio Classic tem todas as permissões que um usuário precisa para acessar o Studio Classic. Para obter mais informações sobre atividades de ML, consulte Referência da atividade de ML.

Ao criar perfis, você primeiro deve definir as construções para a persona de ML ou a atividade de ML. Uma construção é um recurso dentro da AWS CDK pilha. Por exemplo, uma construção pode ser um bucket do Amazon S3, uma VPC sub-rede da Amazon ou uma função. IAM

Ao criar a persona ou atividade, você pode limitar as permissões associadas a essa persona ou atividade a recursos específicos. Por exemplo, você pode personalizar a atividade para fornecer permissões somente para uma sub-rede específica dentro de uma AmazonVPC.

Depois de definir as permissões, você pode criar funções e depois passar essas funções para criar outros recursos, como instâncias do SageMaker notebook.

A seguir estão exemplos de código em Typescript para tarefas que você pode realizar usando o. CDK Ao criar uma atividade, você deve especificar um ID e as opções para a construção da atividade. As opções são dicionários que especificam os parâmetros necessários para as atividades, como um Amazon S3. Você passa um dicionário vazio para atividades que não têm parâmetros obrigatórios.

O código a seguir cria uma persona de cientista de dados de ML com um conjunto de atividades de ML específicas para a persona. As permissões das atividades de ML se aplicam somente à Amazon VPC e AWS KMS às configurações especificadas na construção da persona. O código a seguir cria uma classe para uma persona de cientista de dados. As atividades de ML são definidas na lista de atividades. As VPC permissões e as KMS permissões são definidas como parâmetros opcionais fora da lista de atividades.

Depois de definir a classe, você pode criar uma função como uma construção na AWS CDK pilha. Você também pode criar uma instância de caderno. A pessoa que está usando a IAM função que você criou no código a seguir pode acessar a instância do notebook ao fazer login na AWS conta.

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

O código a seguir cria uma persona de cientista de dados de ML com um conjunto de atividades de ML específicas para a persona. As permissões das atividades de ML se aplicam somente às VPC KMS configurações especificadas na construção da persona. O código a seguir cria uma classe para uma persona de cientista de dados. As atividades de ML são definidas na lista de atividades. As VPC permissões e as AWS KMS permissões da Amazon são definidas como parâmetros opcionais fora da lista de atividades.

Depois de definir a classe, você pode criar uma função como uma construção na AWS CDK pilha. Você também pode criar uma instância de caderno. A pessoa que está usando a IAM função que você criou no código a seguir pode acessar a instância do notebook ao fazer login na AWS conta.

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

O código a seguir cria uma persona de Operações de ML com um conjunto de atividades de ML específicas para a persona. As permissões das atividades de ML se aplicam somente à Amazon VPC e AWS KMS às configurações especificadas na construção da persona. O código a seguir cria uma classe para uma persona de Operações de ML. As atividades de ML são definidas na lista de atividades. As VPC permissões e as KMS permissões são definidas como parâmetros opcionais fora da lista de atividades.

Depois de definir a classe, você pode criar uma função como uma construção na AWS CDK pilha. Você também pode criar um perfil de usuário do Amazon SageMaker Studio Classic. A pessoa que está usando a IAM função que você criou no código a seguir pode abrir o SageMaker Studio Classic ao fazer login na AWS conta.

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

O código a seguir cria uma persona de Operações de ML com um conjunto de atividades de ML específicas para a persona. O código a seguir cria uma classe para uma persona de Operações de ML. As atividades de ML são definidas na lista de atividades.

Depois de definir a classe, você pode criar uma função como uma construção na AWS CDK pilha. Você também pode criar uma instância de caderno. O código concede permissões das atividades de ML para o IAM papel da função 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); } }

O código a seguir cria uma atividade de ML e cria um perfil a partir da atividade. As permissões da atividade se aplicam somente à VPC KMS configuração especificada para o usuário.

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

O código a seguir cria uma IAM função para uma única atividade de 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') } }