Contoh kebijakan berbasis identitas Amazon SageMaker AI - Amazon SageMaker AI

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

Contoh kebijakan berbasis identitas Amazon SageMaker AI

Secara default, IAM pengguna dan peran tidak memiliki izin untuk membuat atau memodifikasi sumber daya SageMaker AI. Mereka juga tidak dapat melakukan tugas menggunakan AWS Management Console, AWS CLI, atau AWS API. IAMAdministrator harus membuat IAM kebijakan yang memberikan izin kepada pengguna dan peran untuk melakukan API operasi tertentu pada sumber daya tertentu yang mereka butuhkan. Administrator kemudian harus melampirkan kebijakan tersebut ke pengguna atau grup IAM yang memerlukan izin tersebut. Untuk mempelajari cara melampirkan kebijakan ke IAM pengguna atau grup, lihat Menambahkan dan Menghapus IAM Izin Identitas di Referensi Otorisasi Layanan.

Untuk mempelajari cara membuat kebijakan IAM berbasis identitas menggunakan contoh dokumen kebijakan ini, lihat Membuat JSON Kebijakan di Tab. JSON

Praktik terbaik kebijakan

Kebijakan berbasis identitas menentukan apakah seseorang dapat membuat, mengakses, atau menghapus sumber daya SageMaker AI di akun Anda. Tindakan ini membuat Akun AWS Anda dikenai biaya. Ketika Anda membuat atau mengedit kebijakan berbasis identitas, ikuti panduan dan rekomendasi ini:

  • Mulailah dengan kebijakan AWS terkelola dan beralih ke izin hak istimewa paling sedikit — Untuk mulai memberikan izin kepada pengguna dan beban kerja Anda, gunakan kebijakan AWS terkelola yang memberikan izin untuk banyak kasus penggunaan umum. Mereka tersedia di Anda Akun AWS. Kami menyarankan Anda mengurangi izin lebih lanjut dengan menentukan kebijakan yang dikelola AWS pelanggan yang khusus untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat kebijakan AWSAWS terkelola atau kebijakan terkelola untuk fungsi pekerjaan di Panduan IAM Pengguna.

  • Menerapkan izin hak istimewa paling sedikit — Saat Anda menetapkan izin dengan IAM kebijakan, berikan hanya izin yang diperlukan untuk melakukan tugas. Anda melakukannya dengan mendefinisikan tindakan yang dapat diambil pada sumber daya tertentu dalam kondisi tertentu, yang juga dikenal sebagai izin dengan hak akses paling rendah. Untuk informasi selengkapnya tentang penggunaan IAM untuk menerapkan izin, lihat Kebijakan dan izin IAM di IAM Panduan Pengguna.

  • Gunakan ketentuan dalam IAM kebijakan untuk membatasi akses lebih lanjut — Anda dapat menambahkan kondisi ke kebijakan Anda untuk membatasi akses ke tindakan dan sumber daya. Misalnya, Anda dapat menulis kondisi kebijakan untuk menentukan bahwa semua permintaan harus dikirim menggunakanSSL. Anda juga dapat menggunakan ketentuan untuk memberikan akses ke tindakan layanan jika digunakan melalui yang spesifik Layanan AWS, seperti AWS CloudFormation. Untuk informasi selengkapnya, lihat elemen IAM JSON kebijakan: Kondisi dalam Panduan IAM Pengguna.

  • Gunakan IAM Access Analyzer untuk memvalidasi IAM kebijakan Anda guna memastikan izin yang aman dan fungsional — IAM Access Analyzer memvalidasi kebijakan baru dan yang sudah ada sehingga kebijakan mematuhi bahasa IAM kebijakan () JSON dan praktik terbaik. IAM IAM Access Analyzer menyediakan lebih dari 100 pemeriksaan kebijakan dan rekomendasi yang dapat ditindaklanjuti untuk membantu Anda membuat kebijakan yang aman dan fungsional. Untuk informasi selengkapnya, lihat Memvalidasi kebijakan dengan IAM Access Analyzer di IAMPanduan Pengguna.

  • Memerlukan otentikasi multi-faktor (MFA) - Jika Anda memiliki skenario yang mengharuskan IAM pengguna atau pengguna root di Anda Akun AWS, aktifkan MFA untuk keamanan tambahan. Untuk meminta MFA kapan API operasi dipanggil, tambahkan MFA kondisi ke kebijakan Anda. Untuk informasi selengkapnya, lihat APIAkses aman dengan MFA di Panduan IAM Pengguna.

Untuk informasi selengkapnya tentang praktik terbaik diIAM, lihat Praktik terbaik keamanan IAM di Panduan IAM Pengguna.

Menggunakan konsol SageMaker AI

Untuk mengakses konsol Amazon SageMaker AI, Anda harus memiliki set izin minimum. Izin ini harus memungkinkan Anda untuk membuat daftar dan melihat detail tentang sumber daya SageMaker AI di AWS akun Anda. Jika Anda membuat kebijakan berbasis identitas yang lebih ketat daripada izin minimum yang diperlukan, konsol tidak akan berfungsi dengan baik untuk entitas dengan kebijakan tersebut. Ini termasuk pengguna atau peran dengan kebijakan tersebut.

Untuk memastikan bahwa entitas tersebut masih dapat menggunakan konsol SageMaker AI, Anda juga harus melampirkan kebijakan AWS terkelola berikut ke entitas. Untuk informasi selengkapnya, lihat Menambahkan Izin ke Pengguna di Referensi Otorisasi Layanan:

Anda tidak perlu mengizinkan izin konsol minimum untuk pengguna yang melakukan panggilan hanya ke AWS CLI atau. AWS API Sebagai gantinya, izinkan akses hanya ke tindakan yang cocok dengan API operasi yang Anda coba lakukan.

Izin diperlukan untuk menggunakan konsol Amazon SageMaker AI

Tabel referensi izin mencantumkan API operasi Amazon SageMaker AI dan menunjukkan izin yang diperlukan untuk setiap operasi. Untuk informasi selengkapnya tentang API operasi Amazon SageMaker AI, lihatAPIIzin Amazon SageMaker AI: Tindakan, Izin, dan Referensi Sumber Daya.

Untuk menggunakan konsol Amazon SageMaker AI, Anda harus memberikan izin untuk tindakan tambahan. Secara khusus, konsol memerlukan izin yang memungkinkan ec2 tindakan menampilkan subnet,VPCs, dan grup keamanan. Secara opsional, konsol memerlukan izin untuk membuat peran eksekusi untuk tugas-tugas sepertiCreateNotebook,CreateTrainingJob, danCreateModel. Berikan izin ini dengan kebijakan izin berikut:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SageMakerApis", "Effect": "Allow", "Action": [ "sagemaker:*" ], "Resource": "*" }, { "Sid": "VpcConfigurationForCreateForms", "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" }, { "Sid":"KmsKeysForCreateForms", "Effect":"Allow", "Action":[ "kms:DescribeKey", "kms:ListAliases" ], "Resource":"*" }, { "Sid": "AccessAwsMarketplaceSubscriptions", "Effect": "Allow", "Action": [ "aws-marketplace:ViewSubscriptions" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "codecommit:BatchGetRepositories", "codecommit:CreateRepository", "codecommit:GetRepository", "codecommit:ListRepositories", "codecommit:ListBranches", "secretsmanager:CreateSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets" ], "Resource": "*" }, { "Sid":"ListAndCreateExecutionRoles", "Effect":"Allow", "Action":[ "iam:ListRoles", "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy" ], "Resource":"*" }, { "Sid": "DescribeECRMetaData", "Effect": "Allow", "Action": [ "ecr:Describe*" ], "Resource": "*" }, { "Sid": "PassRoleForExecutionRoles", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } } ] }

Izin diperlukan untuk menggunakan konsol Amazon SageMaker Ground Truth

Untuk menggunakan konsol Amazon SageMaker Ground Truth, Anda harus memberikan izin untuk sumber daya tambahan. Secara khusus, konsol membutuhkan izin untuk:

  • AWS Marketplace untuk melihat langganan,

  • Operasi Amazon Cognito untuk mengelola tenaga kerja pribadi Anda

  • Tindakan Amazon S3 untuk akses ke file input dan output Anda

  • AWS Lambda tindakan untuk membuat daftar dan memanggil fungsi

Berikan izin ini dengan kebijakan izin berikut:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GroundTruthConsole", "Effect": "Allow", "Action": [ "aws-marketplace:DescribeListings", "aws-marketplace:ViewSubscriptions", "cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminEnableUser", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DescribeUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ListGroups", "cognito-idp:ListIdentityProviders", "cognito-idp:ListUsers", "cognito-idp:ListUsersInGroup", "cognito-idp:ListUserPoolClients", "cognito-idp:ListUserPools", "cognito-idp:UpdateUserPool", "cognito-idp:UpdateUserPoolClient", "groundtruthlabeling:DescribeConsoleJob", "groundtruthlabeling:ListDatasetObjects", "groundtruthlabeling:RunFilterOrSampleManifestJob", "groundtruthlabeling:RunGenerateManifestByCrawlingJob", "lambda:InvokeFunction", "lambda:ListFunctions", "s3:GetObject", "s3:PutObject", "s3:SelectObjectContent" ], "Resource": "*" } ] }

Izin diperlukan untuk menggunakan konsol Amazon Augmented AI (Pratinjau)

Untuk menggunakan konsol Augmented AI, Anda perlu memberikan izin untuk sumber daya tambahan. Berikan izin ini dengan kebijakan izin berikut:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:*Algorithm", "sagemaker:*Algorithms", "sagemaker:*App", "sagemaker:*Apps", "sagemaker:*AutoMLJob", "sagemaker:*AutoMLJobs", "sagemaker:*CodeRepositories", "sagemaker:*CodeRepository", "sagemaker:*CompilationJob", "sagemaker:*CompilationJobs", "sagemaker:*Endpoint", "sagemaker:*EndpointConfig", "sagemaker:*EndpointConfigs", "sagemaker:*EndpointWeightsAndCapacities", "sagemaker:*Endpoints", "sagemaker:*Environment", "sagemaker:*EnvironmentVersion", "sagemaker:*EnvironmentVersions", "sagemaker:*Environments", "sagemaker:*Experiment", "sagemaker:*Experiments", "sagemaker:*FlowDefinitions", "sagemaker:*HumanLoop", "sagemaker:*HumanLoops", "sagemaker:*HumanTaskUi", "sagemaker:*HumanTaskUis", "sagemaker:*HyperParameterTuningJob", "sagemaker:*HyperParameterTuningJobs", "sagemaker:*LabelingJob", "sagemaker:*LabelingJobs", "sagemaker:*Metrics", "sagemaker:*Model", "sagemaker:*ModelPackage", "sagemaker:*ModelPackages", "sagemaker:*Models", "sagemaker:*MonitoringExecutions", "sagemaker:*MonitoringSchedule", "sagemaker:*MonitoringSchedules", "sagemaker:*NotebookInstance", "sagemaker:*NotebookInstanceLifecycleConfig", "sagemaker:*NotebookInstanceLifecycleConfigs", "sagemaker:*NotebookInstanceUrl", "sagemaker:*NotebookInstances", "sagemaker:*ProcessingJob", "sagemaker:*ProcessingJobs", "sagemaker:*RenderUiTemplate", "sagemaker:*Search", "sagemaker:*SearchSuggestions", "sagemaker:*Tags", "sagemaker:*TrainingJob", "sagemaker:*TrainingJobs", "sagemaker:*TransformJob", "sagemaker:*TransformJobs", "sagemaker:*Trial", "sagemaker:*TrialComponent", "sagemaker:*TrialComponents", "sagemaker:*Trials", "sagemaker:*Workteam", "sagemaker:*Workteams" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "sagemaker:*FlowDefinition" ], "Resource": "*", "Condition": { "StringEqualsIfExists": { "sagemaker:WorkteamType": [ "private-crowd", "vendor-crowd" ] } } }, { "Effect": "Allow", "Action": [ "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "aws-marketplace:ViewSubscriptions", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "codecommit:BatchGetRepositories", "codecommit:CreateRepository", "codecommit:GetRepository", "codecommit:ListBranches", "codecommit:ListRepositories", "cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminEnableUser", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DescribeUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ListGroups", "cognito-idp:ListIdentityProviders", "cognito-idp:ListUserPoolClients", "cognito-idp:ListUserPools", "cognito-idp:ListUsers", "cognito-idp:ListUsersInGroup", "cognito-idp:UpdateUserPool", "cognito-idp:UpdateUserPoolClient", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:CreateRepository", "ecr:Describe*", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "elastic-inference:Connect", "elasticfilesystem:DescribeFileSystems", "elasticfilesystem:DescribeMountTargets", "fsx:DescribeFileSystems", "glue:CreateJob", "glue:DeleteJob", "glue:GetJob", "glue:GetJobRun", "glue:GetJobRuns", "glue:GetJobs", "glue:ResetJobBookmark", "glue:StartJobRun", "glue:UpdateJob", "groundtruthlabeling:*", "iam:ListRoles", "kms:DescribeKey", "kms:ListAliases", "lambda:ListFunctions", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutLogEvents", "sns:ListTopics" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:DeleteLogDelivery", "logs:DescribeResourcePolicies", "logs:GetLogDelivery", "logs:ListLogDeliveries", "logs:PutResourcePolicy", "logs:UpdateLogDelivery" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:SetRepositoryPolicy", "ecr:CompleteLayerUpload", "ecr:BatchDeleteImage", "ecr:UploadLayerPart", "ecr:DeleteRepositoryPolicy", "ecr:InitiateLayerUpload", "ecr:DeleteRepository", "ecr:PutImage" ], "Resource": "arn:aws:ecr:*:*:repository/*sagemaker*" }, { "Effect": "Allow", "Action": [ "codecommit:GitPull", "codecommit:GitPush" ], "Resource": [ "arn:aws:codecommit:*:*:*sagemaker*", "arn:aws:codecommit:*:*:*SageMaker*", "arn:aws:codecommit:*:*:*Sagemaker*" ] }, { "Effect": "Allow", "Action": [ "secretsmanager:ListSecrets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:CreateSecret" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:AmazonSageMaker-*" ] }, { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue" ], "Resource": "*", "Condition": { "StringEquals": { "secretsmanager:ResourceTag/SageMaker": "true" } } }, { "Effect": "Allow", "Action": [ "robomaker:CreateSimulationApplication", "robomaker:DescribeSimulationApplication", "robomaker:DeleteSimulationApplication" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "robomaker:CreateSimulationJob", "robomaker:DescribeSimulationJob", "robomaker:CancelSimulationJob" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:GetBucketCors", "s3:PutBucketCors" ], "Resource": [ "arn:aws:s3:::*SageMaker*", "arn:aws:s3:::*Sagemaker*", "arn:aws:s3:::*sagemaker*", "arn:aws:s3:::*aws-glue*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "s3:ExistingObjectTag/SageMaker": "true" } } }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:*:function:*SageMaker*", "arn:aws:lambda:*:*:function:*sagemaker*", "arn:aws:lambda:*:*:function:*Sagemaker*", "arn:aws:lambda:*:*:function:*LabelingFunction*" ] }, { "Action": "iam:CreateServiceLinkedRole", "Effect": "Allow", "Resource": "arn:aws:iam::*:role/aws-service-role/sagemaker.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint", "Condition": { "StringLike": { "iam:AWSServiceName": "sagemaker.application-autoscaling.amazonaws.com" } } }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "iam:AWSServiceName": "robomaker.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "sns:Subscribe", "sns:CreateTopic" ], "Resource": [ "arn:aws:sns:*:*:*SageMaker*", "arn:aws:sns:*:*:*Sagemaker*", "arn:aws:sns:*:*:*sagemaker*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringEquals": { "iam:PassedToService": [ "sagemaker.amazonaws.com", "glue.amazonaws.com", "robomaker.amazonaws.com", "states.amazonaws.com" ] } } } ] }

Mengizinkan pengguna melihat izin mereka sendiri

Contoh ini menunjukkan cara Anda membuat kebijakan yang memungkinkan IAM pengguna melihat kebijakan sebaris dan terkelola yang dilampirkan pada identitas pengguna mereka. Kebijakan ini mencakup izin untuk menyelesaikan tindakan ini di konsol atau secara terprogram menggunakan atau. AWS CLI AWS API

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Kontrol pembuatan sumber daya SageMaker AI dengan tombol kondisi

Kontrol akses berbutir halus untuk memungkinkan pembuatan sumber daya SageMaker AI dengan menggunakan kunci kondisi khusus SageMaker AI. Untuk informasi tentang menggunakan kunci kondisi dalam IAM kebijakan, lihat Elemen IAM JSON Kebijakan: Kondisi dalam Panduan IAM Pengguna.

Kunci kondisi, API tindakan terkait, dan tautan ke dokumentasi yang relevan tercantum dalam Kunci Kondisi untuk SageMaker AI di Referensi Otorisasi Layanan.

Contoh berikut menunjukkan cara menggunakan tombol kondisi SageMaker AI untuk mengontrol akses.

Kontrol akses ke sumber daya SageMaker AI dengan menggunakan tombol kondisi sistem file

SageMaker Pelatihan AI menyediakan infrastruktur yang aman untuk menjalankan algoritme pelatihan, tetapi untuk beberapa kasus Anda mungkin ingin meningkatkan pertahanan secara mendalam. Misalnya, Anda meminimalkan risiko menjalankan kode yang tidak tepercaya dalam algoritme Anda, atau Anda memiliki mandat keamanan khusus di organisasi Anda. Untuk skenario ini, Anda dapat menggunakan kunci kondisi khusus layanan dalam elemen Kondisi IAM kebijakan untuk menjangkau pengguna ke:

  • sistem file tertentu

  • direktori

  • mode akses (baca-tulis, hanya-baca)

  • kelompok keamanan

Batasi IAM pengguna ke direktori dan mode akses tertentu

Kebijakan berikut membatasi pengguna ke /sagemaker/xgboost-dm/train dan /sagemaker/xgboost-dm/validation direktori sistem EFS file untuk ro (hanya-baca): AccessMode

catatan

Ketika sebuah direktori diizinkan, semua subdirektorinya juga dapat diakses oleh algoritma pelatihan. POSIXizin diabaikan.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessToElasticFileSystem", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:FileSystemId": "fs-12345678", "sagemaker:FileSystemAccessMode": "ro", "sagemaker:FileSystemType": "EFS", "sagemaker:FileSystemDirectoryPath": "/sagemaker/xgboost-dm/train" } } }, { "Sid": "AccessToElasticFileSystemValidation", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:FileSystemId": "fs-12345678", "sagemaker:FileSystemAccessMode": "ro", "sagemaker:FileSystemType": "EFS", "sagemaker:FileSystemDirectoryPath": "/sagemaker/xgboost-dm/validation" } } } ] }

Batasi pengguna ke sistem file tertentu

Untuk mencegah algoritma berbahaya menggunakan klien ruang pengguna mengakses sistem file apa pun secara langsung di akun Anda, Anda dapat membatasi lalu lintas jaringan. Untuk membatasi lalu lintas ini, izinkan masuknya hanya dari grup keamanan tertentu. Dalam contoh berikut, pengguna hanya dapat menggunakan grup keamanan yang ditentukan untuk mengakses sistem file:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessToLustreFileSystem", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:FileSystemId": "fs-12345678", "sagemaker:FileSystemAccessMode": "ro", "sagemaker:FileSystemType": "FSxLustre", "sagemaker:FileSystemDirectoryPath": "/fsx/sagemaker/xgboost/train" }, "ForAllValues:StringEquals": { "sagemaker:VpcSecurityGroupIds": [ "sg-12345678" ] } } } ] }

Contoh ini dapat membatasi algoritma ke sistem file tertentu. Namun, itu tidak mencegah algoritme mengakses direktori apa pun dalam sistem file itu menggunakan klien ruang pengguna. Untuk mengurangi ini, Anda dapat:

  • Pastikan bahwa sistem file hanya berisi data yang Anda percayai untuk diakses oleh pengguna

  • Buat IAM peran yang membatasi pengguna Anda untuk meluncurkan pekerjaan pelatihan dengan algoritme dari repositori yang disetujui ECR

Untuk informasi selengkapnya tentang cara menggunakan peran dengan SageMaker AI, lihat Peran SageMaker AI.

Batasi pelatihan untuk yang spesifik VPC

Batasi AWS pengguna untuk membuat pekerjaan pelatihan dari dalam AmazonVPC. Saat pekerjaan pelatihan dibuat dalam aVPC, gunakan log VPC alur untuk memantau semua lalu lintas ke dan dari cluster pelatihan. Untuk informasi tentang penggunaan log VPC aliran, lihat Log VPC Aliran di Panduan Pengguna Amazon Virtual Private Cloud.

Kebijakan berikut memberlakukan bahwa pekerjaan pelatihan dibuat oleh pengguna yang menelepon CreateTrainingJobdari dalamVPC:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowFromVpc", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "sagemaker:VpcSubnets": ["subnet-a1234"], "sagemaker:VpcSecurityGroupIds": ["sg12345", "sg-67890"] }, "Null": { "sagemaker:VpcSubnets": "false", "sagemaker:VpcSecurityGroupIds": "false" } } } ] }

Batasi akses ke jenis tenaga kerja untuk pekerjaan pelabelan Ground Truth dan alur kerja Amazon A2I Human Review

Amazon SageMaker Ground Truth dan tim kerja Amazon Augmented AI termasuk dalam salah satu dari tiga jenis tenaga kerja:

  • publik (dengan Amazon Mechanical Turk)

  • private

  • vendor

Anda dapat membatasi akses pengguna ke tim kerja tertentu menggunakan salah satu jenis ini atau tim ARN kerja. Untuk melakukannya, gunakan sagemaker:WorkteamType dan/atau tombol sagemaker:WorkteamArn kondisi. Untuk kunci sagemaker:WorkteamType kondisi, gunakan operator kondisi string. Untuk kunci sagemaker:WorkteamArn kondisi, gunakan operator kondisi Amazon Resource Name (ARN). Jika pengguna mencoba membuat pekerjaan pelabelan dengan tim kerja terbatas, SageMaker AI mengembalikan kesalahan akses ditolak.

Kebijakan berikut menunjukkan berbagai cara untuk menggunakan kunci sagemaker:WorkteamType dan sagemaker:WorkteamArn kondisi dengan operator kondisi yang sesuai dan nilai kondisi yang valid.

Contoh berikut menggunakan kunci sagemaker:WorkteamType kondisi dengan operator StringEquals kondisi untuk membatasi akses ke tim kerja umum. Ini menerima nilai kondisi dalam format berikut:workforcetype-crowd, di mana workforcetype bisa samapublic,private, atauvendor.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictWorkteamType", "Effect": "Deny", "Action": "sagemaker:CreateLabelingJob", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:WorkteamType": "public-crowd" } } } ] }

Kebijakan berikut menunjukkan cara membatasi akses ke tim kerja publik menggunakan kunci sagemaker:WorkteamArn kondisi. Yang pertama menunjukkan cara menggunakannya dengan IAM varian regex yang valid dari tim kerja ARN dan operator ArnLike kondisi. Yang kedua menunjukkan cara menggunakannya dengan operator ArnEquals kondisi dan tim kerjaARN.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictWorkteamType", "Effect": "Deny", "Action": "sagemaker:CreateLabelingJob", "Resource": "*", "Condition": { "ArnLike": { "sagemaker:WorkteamArn": "arn:aws:sagemaker:*:*:workteam/public-crowd/*" } } } ] }
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictWorkteamType", "Effect": "Deny", "Action": "sagemaker:CreateLabelingJob", "Resource": "*", "Condition": { "ArnEquals": { "sagemaker:WorkteamArn": "arn:aws:sagemaker:us-west-2:394669845002:workteam/public-crowd/default" } } } ] }

Menegakkan enkripsi data input

Kebijakan berikut membatasi pengguna untuk menentukan AWS KMS kunci untuk mengenkripsi data input menggunakan kunci sagemaker:VolumeKmsKey kondisi saat membuat:

  • pelatihan

  • penyetelan hiperparameter

  • pekerjaan pelabelan

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceEncryption", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob", "sagemaker:CreateLabelingJob", "sagemaker:CreateFlowDefiniton" ], "Resource": "*", "Condition": { "ArnEquals": { "sagemaker:VolumeKmsKey": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } } } ] }

Menegakkan isolasi jaringan untuk pekerjaan pelatihan

Kebijakan berikut membatasi pengguna untuk mengaktifkan isolasi jaringan saat membuat pekerjaan pelatihan dengan menggunakan kunci sagemaker:NetworkIsolation kondisi:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceIsolation", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "Bool": { "sagemaker:NetworkIsolation": "true" } } } ] }

Menegakkan jenis instans tertentu untuk pekerjaan pelatihan

Kebijakan berikut membatasi pengguna untuk menggunakan jenis instans tertentu saat membuat pekerjaan pelatihan menggunakan kunci sagemaker:InstanceTypes kondisi:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceInstanceType", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "ForAllValues:StringLike": { "sagemaker:InstanceTypes": ["ml.c5.*"] } } } ] }

Menegakkan penonaktifan akses internet dan akses root untuk membuat instance notebook

Anda dapat menonaktifkan akses internet dan akses root ke instance notebook untuk membantu membuatnya lebih aman. Untuk informasi tentang mengontrol akses root ke instance notebook, lihatKontrol akses root ke instance SageMaker notebook. Untuk informasi tentang menonaktifkan akses internet untuk instance notebook, lihat. Connect Instance Notebook VPC ke Sumber Daya Eksternal

Kebijakan berikut mengharuskan pengguna untuk menonaktifkan akses jaringan saat membuat instance, dan menonaktifkan akses root saat membuat atau memperbarui instance notebook.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LockDownCreateNotebookInstance", "Effect": "Allow", "Action": [ "sagemaker:CreateNotebookInstance" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:DirectInternetAccess": "Disabled", "sagemaker:RootAccess": "Disabled" }, "Null": { "sagemaker:VpcSubnets": "false", "sagemaker:VpcSecurityGroupIds": "false" } } }, { "Sid": "LockDownUpdateNotebookInstance", "Effect": "Allow", "Action": [ "sagemaker:UpdateNotebookInstance" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:RootAccess": "Disabled" } } } ] }

Kontrol akses ke SageMaker AI API dengan menggunakan kebijakan berbasis identitas

Untuk mengontrol akses ke API panggilan SageMaker AI dan panggilan ke titik akhir yang dihosting SageMaker AI, gunakan kebijakan berbasis identitasIAM.

Batasi akses ke SageMaker AI API dan runtime untuk panggilan dari dalam VPC

Jika Anda mengatur titik akhir antarmuka di AndaVPC, individu di luar VPC dapat terhubung ke SageMaker AI API dan runtime melalui internet. Untuk mencegah hal ini, lampirkan IAM kebijakan yang membatasi akses ke panggilan yang berasal dari dalam. VPC Panggilan ini harus dibatasi untuk semua pengguna dan grup yang memiliki akses ke sumber daya SageMaker AI Anda. Untuk informasi tentang membuat titik akhir VPC antarmuka untuk SageMaker AI API dan runtime, lihat. Connect ke SageMaker AI Dalam VPC

penting

Jika Anda menerapkan IAM kebijakan yang mirip dengan salah satu kebijakan berikut, pengguna tidak dapat mengakses SageMaker AI yang ditentukan APIs melalui konsol.

Untuk membatasi akses hanya ke koneksi yang dibuat dari dalam AndaVPC, buat AWS Identity and Access Management kebijakan yang membatasi akses. Akses ini harus dibatasi hanya untuk panggilan yang datang dari dalam AndaVPC. Kemudian tambahkan kebijakan itu ke setiap AWS Identity and Access Management pengguna, grup, atau peran yang digunakan untuk mengakses SageMaker AI API atau runtime.

catatan

Kebijakan ini hanya mengizinkan koneksi ke penelepon dalam subnet tempat Anda membuat titik akhir antarmuka.

{ "Id": "api-example-1", "Version": "2012-10-17", "Statement": [ { "Sid": "EnableAPIAccess", "Effect": "Allow", "Action": [ "sagemaker:*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceVpc": "vpc-111bbaaa" } } } ] }

Untuk membatasi akses ke panggilan API ke hanya yang dilakukan menggunakan titik akhir antarmuka, gunakan tombol aws:SourceVpce kondisi alih-alih: aws:SourceVpc

{ "Id": "api-example-1", "Version": "2012-10-17", "Statement": [ { "Sid": "EnableAPIAccess", "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedNotebookInstanceUrl" ], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpce": [ "vpce-111bbccc", "vpce-111bbddd" ] } } } ] }

Batasi akses ke SageMaker AI API dan panggilan runtime berdasarkan alamat IP

Anda dapat mengizinkan akses ke API panggilan SageMaker AI dan pemanggilan runtime hanya dari alamat IP dalam daftar yang Anda tentukan. Untuk melakukannya, buat IAM kebijakan yang menolak akses ke API kecuali panggilan berasal dari alamat IP dalam daftar. Kemudian lampirkan kebijakan tersebut ke setiap AWS Identity and Access Management pengguna, grup, atau peran yang digunakan untuk mengakses API atau runtime. Untuk informasi tentang membuat IAM kebijakan, lihat Membuat IAM Kebijakan di Panduan AWS Identity and Access Management Pengguna.

Untuk menentukan daftar alamat IP yang memiliki akses ke API panggilan, gunakan:

  • IpAddressoperator kondisi

  • aws:SourceIPkunci konteks kondisi

Untuk informasi tentang operator IAM kondisi, lihat Elemen IAM JSON Kebijakan: Operator Kondisi di Panduan AWS Identity and Access Management Pengguna. Untuk informasi tentang kunci konteks IAM kondisi, lihat Kunci Konteks Kondisi AWS Global.

Misalnya, kebijakan berikut memungkinkan akses ke CreateTrainingJobsatu-satunya dari alamat IP dalam rentang 192.0.2.0 - 192.0.2.255 dan 203.0.113.0 -203.0.113.255:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:CreateTrainingJob", "Resource": "*", "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/24", "203.0.113.0/24" ] } } } ] }

Batasi akses ke instance notebook dengan alamat IP

Anda dapat mengizinkan akses ke instance notebook hanya dari alamat IP dalam daftar yang Anda tentukan. Untuk melakukannya, buat IAM kebijakan yang menolak akses CreatePresignedNotebookInstanceUrlkecuali panggilan berasal dari alamat IP dalam daftar. Kemudian, lampirkan kebijakan ini ke setiap AWS Identity and Access Management pengguna, grup, atau peran yang digunakan untuk mengakses instance notebook. Untuk informasi tentang membuat IAM kebijakan, lihat Membuat IAM Kebijakan di Panduan AWS Identity and Access Management Pengguna.

Untuk menentukan daftar alamat IP yang ingin Anda akses ke instance notebook, gunakan:

  • IpAddressoperator kondisi

  • aws:SourceIPkunci konteks kondisi

Untuk informasi tentang operator IAM kondisi, lihat Elemen IAM JSON Kebijakan: Operator Kondisi di Panduan AWS Identity and Access Management Pengguna. Untuk informasi tentang kunci konteks IAM kondisi, lihat Kunci Konteks Kondisi AWS Global.

Misalnya, kebijakan berikut mengizinkan akses ke instance notebook hanya dari alamat IP dalam rentang 192.0.2.0 - 192.0.2.255 dan 203.0.113.0 -203.0.113.255:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:CreatePresignedNotebookInstanceUrl", "Resource": "*", "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/24", "203.0.113.0/24" ] } } } ] }

Kebijakan membatasi akses ke panggilan ke CreatePresignedNotebookInstanceUrl dan ke panggilan URL yang ditampilkan. Kebijakan ini juga membatasi akses untuk membuka instance notebook di konsol. Hal ini diberlakukan untuk setiap HTTP permintaan dan WebSocket frame yang mencoba untuk terhubung ke instance notebook.

catatan

Menggunakan metode ini untuk memfilter berdasarkan alamat IP tidak kompatibel saat menghubungkan ke SageMaker AI melalui titik akhir VPC antarmuka. . Untuk informasi tentang membatasi akses ke instance notebook saat menghubungkan melalui titik akhir VPC antarmuka, lihat. Connect ke Instance Notebook Melalui VPC Endpoint Antarmuka

Kontrol akses ke sumber daya SageMaker AI dengan menggunakan tag

Tentukan tag dalam IAM kebijakan untuk mengontrol akses ke grup sumber daya SageMaker AI. Gunakan tag untuk mengimplementasikan kontrol akses berbasis atribut (ABAC). Menggunakan tag membantu Anda mempartisi akses ke sumber daya ke grup pengguna tertentu. Anda dapat memiliki satu tim dengan akses ke satu kelompok sumber daya dan tim yang berbeda dengan akses ke kumpulan sumber daya lain. Anda dapat memberikan ResourceTag ketentuan dalam IAM kebijakan untuk menyediakan akses bagi setiap grup.

catatan

Kebijakan berbasis tag tidak berfungsi untuk membatasi panggilan berikut: API

  • DeleteImageVersion

  • DescribeImageVersion

  • ListAlgorithms

  • ListCodeRepositories

  • ListCompilationJobs

  • ListEndpointConfigs

  • ListEndpoints

  • ListFlowDefinitions

  • ListHumanTaskUis

  • ListHyperparameterTuningJobs

  • ListLabelingJobs

  • ListLabelingJobsForWorkteam

  • ListModelPackages

  • ListModels

  • ListNotebookInstanceLifecycleConfigs

  • ListNotebookInstances

  • ListSubscribedWorkteams

  • ListTags

  • ListProcessingJobs

  • ListTrainingJobs

  • ListTrainingJobsForHyperParameterTuningJob

  • ListTransformJobs

  • ListWorkteams

  • Pencarian

Contoh sederhana dapat membantu Anda memahami bagaimana Anda dapat menggunakan tag untuk mempartisi sumber daya. Misalkan Anda telah mendefinisikan dua IAM grup yang berbeda, bernama DevTeam1 danDevTeam2, di AWS akun Anda. Anda telah membuat 10 instance notebook juga. Anda menggunakan 5 instance notebook untuk satu proyek. Anda menggunakan 5 lainnya untuk proyek kedua. Anda dapat DevTeam1 memberikan izin untuk melakukan API panggilan pada instance notebook yang Anda gunakan untuk proyek pertama. Anda dapat menyediakan DevTeam2 untuk melakukan API panggilan pada instance notebook yang digunakan untuk proyek kedua.

Prosedur berikut memberikan contoh sederhana yang membantu Anda memahami konsep menambahkan tag. Anda dapat menggunakannya untuk mengimplementasikan solusi yang dijelaskan dalam paragraf sebelumnya.

Untuk mengontrol akses ke API panggilan (contoh)
  1. Tambahkan tag dengan kunci Project dan nilai A ke instance notebook yang digunakan untuk proyek pertama. Untuk informasi tentang menambahkan tag ke sumber daya SageMaker AI, lihat AddTags.

  2. Tambahkan tag dengan kunci Project dan nilai B ke instance notebook yang digunakan untuk proyek kedua.

  3. Buat IAM kebijakan dengan ResourceTag kondisi yang menolak akses ke instance notebook yang digunakan untuk proyek kedua. Kemudian, lampirkan kebijakan itu keDevTeam1. Contoh kebijakan berikut menyangkal semua API panggilan pada instance notebook apa pun dengan tag dengan kunci dari Project dan nilaiB:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:*", "Resource": "*" }, { "Effect": "Deny", "Action": "sagemaker:*", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ResourceTag/Project": "B" } } }, { "Effect": "Deny", "Action": [ "sagemaker:AddTags", "sagemaker:DeleteTags" ], "Resource": "*" } ] }

    Untuk informasi tentang membuat IAM kebijakan dan melampirkannya ke identitas, lihat Mengontrol Akses Menggunakan Kebijakan di AWS Identity and Access Management Panduan Pengguna.

  4. Buat IAM kebijakan dengan ResourceTag kondisi yang menolak akses ke instance notebook yang digunakan untuk proyek pertama. Kemudian, lampirkan kebijakan itu keDevTeam2. Contoh kebijakan berikut menyangkal semua API panggilan pada instance notebook apa pun dengan tag dengan kunci dari Project dan nilaiA:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:*", "Resource": "*" }, { "Effect": "Deny", "Action": "sagemaker:*", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ResourceTag/Project": "A" } } }, { "Effect": "Deny", "Action": [ "sagemaker:AddTags", "sagemaker:DeleteTags" ], "Resource": "*" } ] }

Berikan izin untuk menandai sumber daya AI SageMaker

Tag adalah label metadata yang dapat Anda lampirkan ke sumber daya tertentu AWS . Tag terdiri dari pasangan kunci-nilai yang menyediakan cara fleksibel untuk membubuhi keterangan sumber daya dengan atribut metadata untuk berbagai kasus penggunaan penandaan termasuk:

Mereka dapat digunakan dalam izin dan kebijakan, kuota layanan, dan integrasi dengan layanan lain. AWS Tag dapat ditentukan pengguna atau AWS dihasilkan saat membuat sumber daya. Hal ini tergantung pada apakah pengguna secara manual menentukan tag kustom atau AWS layanan secara otomatis menghasilkan tag.

  • Tag yang ditentukan pengguna di SageMaker AI: Pengguna dapat menambahkan tag saat mereka membuat sumber daya SageMaker AI menggunakan SageMaker AISDKs,, AWS CLI CLI, Konsol SageMaker AI SageMaker APIs, atau AWS CloudFormation templat.

    catatan

    Tag yang ditentukan pengguna dapat diganti jika sumber daya diperbarui kemudian dan nilai tag diubah atau diganti. Misalnya, pekerjaan pelatihan yang dibuat dengan {Team: A} dapat diperbarui secara tidak benar dan diberi tag ulang sebagai {Team: B}. Akibatnya, izin yang diizinkan mungkin ditetapkan secara tidak benar. Oleh karena itu, kehati-hatian harus diberikan saat mengizinkan pengguna atau grup untuk menambahkan tag, karena mereka mungkin dapat mengganti nilai tag yang ada. Praktik terbaik untuk secara ketat mencakup izin tag dan menggunakan IAM kondisi untuk mengontrol kemampuan penandaan.

  • AWS tag yang dihasilkan di SageMaker AI: SageMaker AI secara otomatis menandai sumber daya tertentu yang dibuatnya. Misalnya, Studio dan Studio Classic secara otomatis menetapkan sagemaker:domain-arn tag ke sumber daya SageMaker AI yang mereka buat. Menandai sumber daya baru dengan domain ARN memberikan ketertelusuran tentang bagaimana sumber daya SageMaker AI seperti pekerjaan pelatihan, model, dan titik akhir berasal. Untuk kontrol dan pelacakan yang lebih baik, sumber daya baru menerima tag tambahan seperti:

    • sagemaker:user-profile-arn- Profil pengguna yang menciptakan sumber daya. ARN Ini memungkinkan pelacakan sumber daya yang dibuat oleh pengguna tertentu.

    • sagemaker:space-arn- Ruang tempat sumber daya dibuat. ARN Ini memungkinkan pengelompokan dan isolasi sumber daya per ruang.

    catatan

    AWS tag yang dihasilkan tidak dapat diubah oleh pengguna.

Untuk informasi umum tentang menandai AWS sumber daya dan praktik terbaik, lihat Menandai sumber daya Anda AWS. Untuk informasi tentang kasus penggunaan penandaan utama, lihat Menandai kasus penggunaan.

Berikan izin untuk menambahkan tag saat membuat sumber daya SageMaker AI

Anda dapat mengizinkan pengguna (tag yang ditentukan pengguna) atau Studio dan Studio Classic (tag AWS yang dihasilkan) untuk menambahkan tag pada sumber daya SageMaker AI baru pada waktu pembuatan. Untuk melakukannya, IAM izin mereka harus mencakup keduanya:

  • SageMaker AI dasar membuat izin untuk jenis sumber daya itu.

  • sagemaker:AddTagsIzin.

Misalnya, mengizinkan pengguna untuk membuat pekerjaan SageMaker pelatihan dan menandai itu akan memerlukan pemberian izin untuk sagemaker:CreateTrainingJob dan. sagemaker:AddTags

penting

IAMKebijakan khusus yang memungkinkan Amazon SageMaker Studio atau Amazon SageMaker Studio Classic membuat sumber daya Amazon SageMaker AI juga harus memberikan izin untuk menambahkan tag ke sumber daya tersebut. Izin untuk menambahkan tag ke sumber daya diperlukan karena Studio dan Studio Classic secara otomatis menandai sumber daya apa pun yang mereka buat. Jika IAM kebijakan mengizinkan Studio dan Studio Classic membuat sumber daya tetapi tidak mengizinkan penandaan, kesalahan "AccessDenied" dapat terjadi saat mencoba membuat sumber daya.

AWS kebijakan terkelola untuk Amazon SageMaker AIyang memberikan izin untuk membuat sumber daya SageMaker AI sudah menyertakan izin untuk menambahkan tag saat membuat sumber daya tersebut.

Administrator melampirkan IAM izin ini ke:

  • AWS IAMperan yang ditetapkan kepada pengguna untuk tag yang ditentukan pengguna

  • peran eksekusi yang digunakan oleh Studio atau Studio Classic untuk tag AWS yang dihasilkan

Untuk petunjuk cara membuat dan menerapkan IAM kebijakan kustom, lihat Membuat IAM kebijakan (konsol).

catatan

Daftar operasi SageMaker pembuatan sumber daya AI dapat ditemukan di SageMaker APIdokumentasi dengan mencari tindakan yang dimulai denganCreate. Ini menciptakan tindakan, seperti CreateTrainingJob danCreateEndpoint, adalah operasi yang menciptakan sumber daya SageMaker AI baru.

Tambahkan izin tag ke tindakan pembuatan tertentu

Anda memberikan sagemaker:AddTags izin dengan batasan dengan melampirkan IAM kebijakan tambahan ke kebijakan pembuatan sumber daya asli. Contoh kebijakan berikut memungkinkansagemaker:AddTags, tetapi membatasinya hanya pada tindakan pembuatan sumber daya SageMaker AI tertentu sepertiCreateTrainingJob.

{ "Sid": "AllowAddTagsForCreateOperations", "Effect": "Allow", "Action": [ "sagemaker:AddTags" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:TaggingAction": "CreateTrainingJob" } } }

Kondisi kebijakan membatasi sagemaker:AddTags untuk digunakan bersama tindakan pembuatan tertentu. Dalam pendekatan ini, kebijakan izin buat tetap utuh sementara kebijakan tambahan menyediakan sagemaker:AddTags akses terbatas. Kondisi ini mencegah sagemaker:AddTags izin selimut dengan melingkupinya secara sempit ke tindakan pembuatan yang perlu diberi tag. Ini mengimplementasikan hak istimewa paling sedikit sagemaker:AddTags dengan hanya mengizinkannya untuk kasus penggunaan pembuatan sumber daya SageMaker AI tertentu.

Contoh: Izinkan izin tag secara global dan batasi tindakan pembuatan ke domain

Dalam contoh IAM kebijakan kustom ini, dua pernyataan pertama mengilustrasikan penggunaan tag untuk melacak pembuatan sumber daya. Ini memungkinkan sagemaker:CreateModel tindakan pada semua sumber daya dan penandaan sumber daya tersebut ketika tindakan itu digunakan. Pernyataan ketiga menunjukkan bagaimana nilai tag dapat digunakan untuk mengontrol operasi pada sumber daya. Dalam hal ini, ini mencegah pembuatan sumber daya SageMaker AI apa pun yang ditandai dengan domain tertentuARN, membatasi akses berdasarkan nilai tag.

Khususnya:

  • Pernyataan pertama memungkinkan CreateModel tindakan pada sumber daya apa pun (*).

  • Pernyataan kedua memungkinkan sagemaker:AddTags tindakan, tetapi hanya ketika kunci sagemaker:TaggingAction kondisi sama. CreateModel Ini membatasi sagemaker:AddTags tindakan hanya ketika digunakan untuk menandai model yang baru dibuat.

  • Pernyataan ketiga menyangkal tindakan SageMaker AI create (Create*) apa pun pada resource (*) apa pun, tetapi hanya jika sumber daya memiliki tag yang sagemaker:domain-arn sama dengan domain tertentuARN,domain-arn.

{ "Statement":[ { "Effect":"Allow", "Action":[ "sagemaker:CreateModel" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "sagemaker:AddTags" ], "Resource":"*", "Condition":{ "String":{ "sagemaker:TaggingAction":[ "CreateModel" ] } } }, { "Sid":"IsolateDomain", "Effect":"Deny", "Resource":"*", "Action":[ "sagemaker:Create*" ], "Condition":{ "StringEquals":{ "aws:ResourceTag/sagemaker:domain-arn":"domain-arn" } } } ] }

Batasi akses ke sumber daya yang dapat dicari dengan kondisi visibilitas

Gunakan kondisi visibilitas untuk membatasi akses pengguna Anda ke sumber daya tertentu yang diberi tag dalam akun AWS . Pengguna Anda hanya dapat mengakses sumber daya yang izinnya mereka miliki. Ketika pengguna Anda mencari melalui sumber daya mereka, mereka dapat membatasi hasil pencarian ke sumber daya tertentu.

Anda mungkin ingin pengguna hanya melihat dan berinteraksi dengan sumber daya yang terkait dengan domain Amazon SageMaker Studio atau Amazon SageMaker Studio Classic tertentu. Anda dapat menggunakan kondisi visibilitas untuk membatasi akses mereka ke satu domain atau beberapa domain.

{ "Sid": "SageMakerApis", "Effect": "Allow", "Action": "sagemaker:Search", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:SearchVisibilityCondition/Tags.sagemaker:example-domain-arn/EqualsIfExists": "arn:aws:sagemaker:Wilayah AWS:111122223333:domain/example-domain-1", "sagemaker:SearchVisibilityCondition/Tags.sagemaker:example-domain-arn/EqualsIfExists": "arn:aws:sagemaker:Wilayah AWS:111122223333:domain/example-domain-2" } } }

Format umum dari kondisi visibilitas adalah"sagemaker:SearchVisibilityCondition/Tags.key": "value". Anda dapat memberikan pasangan nilai kunci untuk sumber daya yang diberi tag.

{ "MaxResults": number, "NextToken": "string", "Resource": "string", # Required Parameter "SearchExpression": { "Filters": [ { "Name": "string", "Operator": "string", "Value": "string" } ], "NestedFilters": [ { "Filters": [ { "Name": "string", "Operator": "string", "Value": "string" } ], "NestedPropertyName": "string" } ], "Operator": "string", "SubExpressions": [ "SearchExpression" ] }, "IsCrossAccount": "string", "VisibilityConditions" : [ List of conditions for visibility {"Key": "Tags.sagemaker:example-domain-arn", "Value": "arn:aws:sagemaker:Wilayah AWS:111122223333:domain/example-domain-1"}, {"Key": "Tags.sagemaker:example-domain-arn", "Value": "arn:aws:sagemaker:Wilayah AWS:111122223333:domain/example-domain-2"} ] ], "SortBy": "string", "SortOrder": "string" }

Kondisi visibilitas dalam menggunakan "sagemaker:SearchVisibilityCondition/Tags.key": "value" format yang sama yang ditentukan dalam kebijakan. Pengguna Anda dapat menentukan pasangan nilai kunci yang digunakan untuk sumber daya yang diberi tag.

Jika pengguna menyertakan VisibilityConditions parameter dalam permintaan Penelusurannya, tetapi kebijakan akses yang berlaku untuk pengguna tersebut tidak berisi kunci kondisi yang cocok yang ditentukanVisibilityConditions, Search permintaan tersebut tetap diizinkan dan akan berjalan.

Jika VisibilityConditions parameter tidak ditentukan dalam API permintaan Penelusuran pengguna, tetapi kebijakan akses yang berlaku untuk pengguna tersebut berisi kunci kondisi yang terkait denganVisibilityConditions, Search permintaan pengguna tersebut ditolak.