Menggunakan manajer peran (AWS CDK) - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan manajer peran (AWS CDK)

Gunakan AWS Cloud Development Kit (AWS CDK) dengan Amazon SageMaker Role Manager untuk membuat peran secara terprogram dan menetapkan izin. Anda dapat menggunakan AWS CDK untuk menyelesaikan tugas apa pun yang dapat Anda lakukan menggunakan. AWS Management Console Akses terprogram CDK membuatnya lebih mudah untuk memberikan izin yang memberi pengguna Anda akses ke sumber daya tertentu. Untuk informasi lebih lanjut tentang AWS CDK, lihat Apa itu AWS CDK?

penting

Anda harus menggunakan persona Peran SageMaker Komputasi untuk membuat Peran SageMaker Komputasi. Untuk informasi lebih lanjut tentang komputasi persona, lihat. SageMaker menghitung persona Untuk kode yang dapat Anda gunakan untuk membuat peran komputasi di dalamnya AWS CDK, lihatBerikan izin ke persona Compute.

Berikut ini adalah contoh tugas yang dapat Anda lakukan di AWS CDK:

  • Buat IAM peran dengan izin terperinci untuk persona pembelajaran mesin (ML), seperti Ilmuwan dan Insinyur Data. MLOps

  • Berikan izin untuk CDK membangun dari persona ML atau aktivitas ML.

  • Tetapkan parameter kondisi aktivitas ML.

  • Aktifkan Amazon VPC dan AWS Key Management Service kondisi global dan tetapkan nilai untuknya.

  • Pilih dari semua versi aktivitas ML untuk pengguna Anda tanpa menyebabkan gangguan pada akses mereka.

Ada AWS tugas umum yang terkait dengan pembelajaran mesin (ML) dengan SageMaker yang memerlukan IAM izin khusus. Izin untuk melakukan tugas didefinisikan sebagai aktivitas ML di Amazon SageMaker Role Manager. Aktivitas ML menentukan satu set izin yang ditautkan ke IAM peran. Misalnya, aktivitas ML untuk Amazon SageMaker Studio Classic memiliki semua izin yang diperlukan pengguna untuk mengakses Studio Classic. Untuk informasi selengkapnya tentang aktivitas ML, lihatReferensi aktivitas ML.

Saat Anda membuat peran, pertama-tama Anda menentukan konstruksi untuk persona ML atau aktivitas ML. Konstruksi adalah sumber daya dalam AWS CDK tumpukan. Misalnya, konstruksi bisa berupa bucket Amazon S3, subnet VPC Amazon, atau peran. IAM

Saat Anda membuat persona atau aktivitas, Anda dapat membatasi izin yang terkait dengan persona atau aktivitas tersebut ke sumber daya tertentu. Misalnya, Anda dapat menyesuaikan aktivitas untuk hanya memberikan izin untuk subnet tertentu dalam Amazon. VPC

Setelah menetapkan izin, Anda dapat membuat peran dan meneruskan peran tersebut untuk membuat sumber daya lain, seperti instance SageMaker buku catatan.

Berikut ini adalah contoh kode di TypeScript untuk tugas-tugas yang dapat Anda selesaikan menggunakan. CDK Saat membuat aktivitas, Anda menentukan ID dan opsi untuk konstruksi aktivitas. Opsi adalah kamus yang menentukan parameter yang diperlukan untuk aktivitas, seperti Amazon S3. Anda meneruskan kamus kosong untuk aktivitas yang tidak memiliki parameter yang diperlukan.

Kode berikut membuat persona Data Scientist MLdengan satu set aktivitas ML khusus untuk persona. Izin dari aktivitas ML hanya berlaku untuk Amazon VPC dan AWS KMS konfigurasi yang ditentukan dalam konstruksi persona. Kode berikut membuat kelas untuk persona Data Scientist. Aktivitas ML didefinisikan dalam daftar aktivitas. VPCIzin dan KMS izin didefinisikan sebagai parameter opsional di luar daftar aktivitas.

Setelah Anda mendefinisikan kelas, Anda dapat membuat peran sebagai konstruksi dalam AWS CDK tumpukan. Anda juga dapat membuat instance notebook. Orang yang menggunakan IAM peran yang Anda buat dalam kode berikut dapat mengakses instance notebook saat mereka masuk ke AWS akun mereka.

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

Kode berikut membuat persona Data Scientist MLdengan satu set aktivitas ML khusus untuk persona. Izin dari aktivitas ML hanya berlaku untuk KMS konfigurasi VPC dan yang ditentukan dalam konstruksi persona. Kode berikut membuat kelas untuk persona Data Scientist. Aktivitas ML didefinisikan dalam daftar aktivitas. Izin Amazon dan VPC AWS KMS izin didefinisikan sebagai parameter opsional di luar daftar aktivitas.

Setelah Anda mendefinisikan kelas, Anda dapat membuat peran sebagai konstruksi dalam AWS CDK tumpukan. Anda juga dapat membuat instance notebook. Orang yang menggunakan IAM peran yang Anda buat dalam kode berikut dapat mengakses instance notebook saat mereka masuk ke AWS akun mereka.

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

Kode berikut membuat persona Ops MLdengan satu set aktivitas ML khusus untuk persona. Izin dari aktivitas ML hanya berlaku untuk Amazon VPC dan AWS KMS konfigurasi yang ditentukan dalam konstruksi persona. Kode berikut membuat kelas untuk persona Ops Ops. Aktivitas ML didefinisikan dalam daftar aktivitas. VPCIzin dan KMS izin didefinisikan sebagai parameter opsional di luar daftar aktivitas.

Setelah Anda mendefinisikan kelas, Anda dapat membuat peran sebagai konstruksi dalam AWS CDK tumpukan. Anda juga dapat membuat profil pengguna Amazon SageMaker Studio Classic. Orang yang menggunakan IAM peran yang Anda buat dalam kode berikut dapat membuka SageMaker Studio Classic saat mereka masuk ke AWS akun mereka.

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

Kode berikut membuat persona Ops MLdengan satu set aktivitas ML khusus untuk persona. Kode berikut membuat kelas untuk persona Ops Ops. Aktivitas ML didefinisikan dalam daftar aktivitas.

Setelah Anda mendefinisikan kelas, Anda dapat membuat peran sebagai konstruksi dalam AWS CDK tumpukan. Anda juga dapat membuat instance notebook. Kode memberikan izin dari aktivitas ML ke IAM peran fungsi 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); } }

Kode berikut membuat aktivitas ML dan membuat peran dari aktivitas. Izin dari aktivitas hanya berlaku untuk KMS konfigurasi VPC dan yang Anda tentukan untuk pengguna.

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

Kode berikut membuat IAM peran untuk aktivitas tunggal 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') } }