Contoh SageMaker kebijakan berbasis identitas Amazon - Amazon SageMaker

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

Contoh SageMaker kebijakan berbasis identitas Amazon

Secara default, IAM pengguna dan peran tidak memiliki izin untuk membuat atau memodifikasi SageMaker sumber daya. 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 IAM pengguna atau grup 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 SageMaker sumber daya di akun Anda. Tindakan ini dapat menimbulkan biaya untuk Anda Akun AWS. Saat Anda membuat atau mengedit kebijakan berbasis identitas, ikuti panduan dan rekomendasi berikut:

  • Memulai dengan AWS kebijakan terkelola dan beralih ke izin hak istimewa terkecil — Untuk memulai pemberian izin kepada pengguna dan beban kerja Anda, gunakan AWS kebijakan terkelola yang memberikan izin untuk banyak kasus penggunaan umum. Mereka tersedia di Anda Akun AWS. Kami menyarankan Anda mengurangi izin lebih lanjut dengan mendefinisikan AWS kebijakan yang dikelola pelanggan yang khusus untuk kasus penggunaan Anda. Untuk informasi selengkapnya, silakan lihat AWS kebijakan terkelola atau AWS 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 tindakan tertentu 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 IAMAccess 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 Validasi kebijakan IAM Access Analyzer di IAMPanduan Pengguna.

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

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

Menggunakan SageMaker konsol

Untuk mengakses SageMaker konsol Amazon, Anda harus memiliki set izin minimum. Izin ini harus memungkinkan Anda untuk membuat daftar dan melihat detail tentang SageMaker sumber daya di AWS akun. 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 SageMaker konsol, Anda juga harus melampirkan yang berikut AWS kebijakan yang dikelola untuk 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

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

Untuk menggunakan SageMaker konsol Amazon, 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:

  • sang 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 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 AWS CLI atau 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 SageMaker daya dengan tombol kondisi

Kontrol akses berbutir halus untuk memungkinkan pembuatan SageMaker sumber daya dengan menggunakan kunci kondisi SageMaker -spesifik. 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 Referensi Otorisasi Layanan.

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

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

SageMaker pelatihan 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" } } } ] }

Membatasi 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 SageMaker, lihat SageMaker Peran.

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 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. Ia 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" } } } ] }

Menerapkan enkripsi volume penyimpanan instance notebook

Kebijakan berikut membatasi pengguna untuk menentukan AWS KMS kunci untuk mengenkripsi volume penyimpanan terlampir menggunakan tombol sagemaker:VolumeKmsKey kondisi saat:

  • membuat instance notebook

  • memperbarui instance notebook

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceEncryption", "Effect": "Allow", "Action": [ "sagemaker:CreateNotebookInstance" ], "Resource": "*", "Condition": { "ArnLike": { "sagemaker:VolumeKmsKey": "*key/volume-kms-key-12345" } } } ] }

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.*"] } } } ] }

Menerapkan akselerator EI khusus untuk pekerjaan pelatihan

Kebijakan berikut membatasi pengguna untuk menggunakan akselerator inferensi elastis (EI) tertentu, jika akselerator disediakan, menggunakan kunci kondisi saatsagemaker:AcceleratorTypes:

  • membuat instance notebook

  • memperbarui instance notebook

  • membuat konfigurasi titik akhir

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceAcceleratorType", "Effect": "Allow", "Action": [ "sagemaker:CreateNotebookInstance", "sagemaker:UpdateNotebookInstance", "sagemaker:CreateEndpointConfig" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "sagemaker:AcceleratorTypes": ["ml.eia1.medium"] } } } ] }

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 API dengan menggunakan kebijakan berbasis identitas

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

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

Jika Anda mengatur titik akhir antarmuka di AndaVPC, individu di luar VPC dapat terhubung ke SageMaker 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 SageMaker sumber daya Anda. Untuk informasi tentang membuat titik akhir VPC antarmuka untuk SageMaker API dan runtime, lihat. Connect ke SageMaker Dalam VPC

penting

Jika Anda menerapkan IAM kebijakan yang serupa dengan salah satu kebijakan berikut, pengguna tidak dapat mengakses kebijakan yang ditentukan SageMaker 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 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 API dan panggilan runtime berdasarkan alamat IP

Anda dapat mengizinkan akses ke SageMaker API panggilan 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 itu 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 AWS Identity and Access Management Panduan 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 AWS Identity and Access Management Panduan Pengguna. Untuk informasi tentang kunci konteks IAM kondisi, lihat AWS Kunci Konteks Kondisi 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 AWS Identity and Access Management Panduan 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 AWS Identity and Access Management Panduan Pengguna. Untuk informasi tentang kunci konteks IAM kondisi, lihat AWS Kunci Konteks Kondisi 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 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 SageMaker sumber daya dengan menggunakan tag

Tentukan tag dalam IAM kebijakan untuk mengontrol akses ke grup sumber SageMaker daya. 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 kelompok yang berbeda, bernama DevTeam1 danDevTeam2, dalam AWS akun. 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 SageMaker sumber daya, 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": "*" } ] }

Memberikan izin untuk menandai sumber daya SageMaker

Tag adalah label metadata yang dapat Anda lampirkan ke tertentu AWS sumber daya. Tag terdiri dari pasangan nilai kunci 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 lainnya AWS layanan. 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: Pengguna dapat menambahkan tag saat mereka membuat SageMaker sumber daya menggunakan SageMaker SDKs, AWS CLI CLI, SageMaker APIs, SageMaker Konsol, 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: SageMaker secara otomatis menandai sumber daya tertentu yang dibuatnya. Misalnya, Studio dan Studio Classic secara otomatis menetapkan sagemaker:domain-arn tag ke SageMaker sumber daya yang mereka buat. Menandai sumber daya baru dengan domain ARN memberikan ketertelusuran tentang bagaimana SageMaker sumber daya 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 penandaan AWS sumber daya dan praktik terbaik, lihat Menandai AWS sumber daya. Untuk informasi tentang kasus penggunaan penandaan utama, lihat Menandai kasus penggunaan.

Berikan izin untuk menambahkan tag saat membuat SageMaker sumber daya

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

  • Basis SageMaker membuat izin untuk jenis sumber daya tersebut.

  • 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 SageMaker sumber daya Amazon 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 SageMakeryang memberikan izin untuk membuat SageMaker sumber daya 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 AWS tag yang dihasilkan

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

catatan

Daftar operasi pembuatan SageMaker sumber daya dapat ditemukan dalam SageMaker APIdokumentasi dengan mencari tindakan yang dimulai denganCreate. Ini menciptakan tindakan, seperti CreateTrainingJob danCreateEndpoint, adalah operasi yang menciptakan SageMaker sumber daya 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 untuk tindakan pembuatan SageMaker sumber daya 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 SageMaker sumber daya 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 SageMaker sumber daya 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 setiap SageMaker create action (Create*) 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 AWS akun. 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 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.