Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Secara default, pengguna dan peran IAM 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. Administrator IAM harus membuat kebijakan IAM yang memberikan izin kepada pengguna dan peran untuk melakukan operasi API tertentu pada sumber daya yang diperlukan. Administrator kemudian harus melampirkan kebijakan tersebut ke pengguna IAM atau grup yang memerlukan izin tersebut. Untuk mempelajari cara melampirkan kebijakan ke pengguna atau grup IAM, lihat Menambahkan dan Menghapus Izin Identitas IAM di Referensi Otorisasi Layanan.
Untuk mempelajari cara membuat kebijakan berbasis identitas IAM menggunakan contoh dokumen kebijakan JSON ini, lihat Membuat Kebijakan di Tab JSON.
Topik
Kontrol pembuatan sumber daya SageMaker AI dengan tombol kondisi
Kontrol akses ke SageMaker AI API dengan menggunakan kebijakan berbasis identitas
Batasi akses ke SageMaker AI API dan panggilan runtime berdasarkan alamat IP
Kontrol akses ke sumber daya SageMaker AI dengan menggunakan tag
Batasi akses ke sumber daya yang dapat dicari dengan kondisi visibilitas
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 terkelola AWS pelanggan yang khusus untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat Kebijakan yang dikelola AWS atau Kebijakan yang dikelola AWS untuk fungsi tugas dalam Panduan Pengguna IAM.
-
Menerapkan izin dengan hak akses paling rendah – Ketika Anda menetapkan izin dengan kebijakan IAM, hanya berikan 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 cara menggunakan IAM untuk mengajukan izin, lihat Kebijakan dan izin dalam IAM dalam Panduan Pengguna IAM.
-
Gunakan kondisi dalam kebijakan IAM untuk membatasi akses lebih lanjut – Anda dapat menambahkan suatu kondisi ke kebijakan Anda untuk membatasi akses ke tindakan dan sumber daya. Sebagai contoh, Anda dapat menulis kondisi kebijakan untuk menentukan bahwa semua permintaan harus dikirim menggunakan SSL. 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 kebijakan JSON IAM: Kondisi dalam Panduan Pengguna IAM.
-
Gunakan IAM Access Analyzer untuk memvalidasi kebijakan IAM Anda untuk memastikan izin yang aman dan fungsional – IAM Access Analyzer memvalidasi kebijakan baru dan yang sudah ada sehingga kebijakan tersebut mematuhi bahasa kebijakan IAM (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 Validasi kebijakan dengan IAM Access Analyzer dalam Panduan Pengguna IAM.
-
Memerlukan otentikasi multi-faktor (MFA) - Jika Anda memiliki skenario yang mengharuskan pengguna IAM atau pengguna root di Anda, Akun AWS aktifkan MFA untuk keamanan tambahan. Untuk meminta MFA ketika operasi API dipanggil, tambahkan kondisi MFA pada kebijakan Anda. Untuk informasi selengkapnya, lihat Amankan akses API dengan MFA dalam Panduan Pengguna IAM.
Untuk informasi selengkapnya tentang praktik terbaik dalam IAM, lihat Praktik terbaik keamanan di IAM dalam Panduan Pengguna IAM.
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 alternatif, hanya izinkan akses ke tindakan yang cocok dengan operasi API yang sedang Anda coba lakukan.
Topik
Izin diperlukan untuk menggunakan konsol Amazon SageMaker AI
Tabel referensi izin mencantumkan operasi Amazon SageMaker AI API dan menunjukkan izin yang diperlukan untuk setiap operasi. Untuk informasi selengkapnya tentang operasi Amazon SageMaker AI API, lihatIzin Amazon SageMaker AI API: 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 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 membuat kebijakan yang mengizinkan pengguna IAM melihat kebijakan inline dan terkelola yang dilampirkan ke identitas pengguna mereka. Kebijakan ini mencakup izin untuk menyelesaikan tindakan ini di konsol atau menggunakan API atau secara terprogram. AWS CLI AWS
{
"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 penggunaan kunci kondisi dalam kebijakan IAM, lihat IAM JSON Policy Elements: Condition in the IAM User Guide.
Kunci kondisi, tindakan API 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.
Topik
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 kebijakan IAM untuk menjangkau pengguna ke:
-
sistem file tertentu
-
direktori
-
mode akses (baca-tulis, hanya-baca)
-
kelompok keamanan
Topik
Batasi pengguna IAM ke direktori dan mode akses tertentu
Kebijakan berikut membatasi pengguna ke /sagemaker/xgboost-dm/train
dan /sagemaker/xgboost-dm/validation
direktori sistem file EFS untuk ro
(hanya-baca): AccessMode
catatan
Ketika sebuah direktori diizinkan, semua subdirektorinya juga dapat diakses oleh algoritma pelatihan. Izin POSIX 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 peran IAM yang membatasi pengguna Anda untuk meluncurkan pekerjaan pelatihan dengan algoritme dari repositori ECR yang disetujui
Untuk informasi selengkapnya tentang cara menggunakan peran dengan SageMaker AI, lihat Peran SageMaker AI.
Batasi pelatihan ke VPC tertentu
Batasi AWS pengguna untuk membuat pekerjaan pelatihan dari dalam VPC Amazon. Ketika pekerjaan pelatihan dibuat dalam VPC, gunakan log aliran VPC untuk memantau semua lalu lintas ke dan dari cluster pelatihan. Untuk informasi tentang penggunaan log aliran VPC, lihat Log Aliran VPC di Panduan Pengguna Amazon Virtual Private Cloud.
Kebijakan berikut memberlakukan bahwa pekerjaan pelatihan dibuat oleh pengguna yang menelepon CreateTrainingJob
dari dalam VPC:
{
"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 kerja ARN. 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:
, di mana workforcetype
-crowdworkforcetype
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 varian regex IAM yang valid dari tim kerja ARN dan operator kondisi. ArnLike
Yang kedua menunjukkan bagaimana menggunakannya dengan operator ArnEquals
kondisi dan tim kerja ARN.
{
"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. Hubungkan Instance Notebook di 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 panggilan SageMaker AI API dan panggilan ke titik akhir yang dihosting SageMaker AI, gunakan kebijakan IAM berbasis identitas.
Batasi akses ke SageMaker AI API dan runtime untuk panggilan dari dalam VPC Anda
Jika Anda menyiapkan titik akhir antarmuka di VPC Anda, individu di luar VPC dapat terhubung ke AI API dan SageMaker runtime melalui internet. Untuk mencegah hal ini, lampirkan kebijakan IAM 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 antarmuka VPC untuk SageMaker AI API dan runtime, lihat. Connect ke SageMaker AI Dalam VPC Anda
penting
Jika Anda menerapkan kebijakan IAM yang mirip dengan salah satu dari berikut ini, pengguna tidak dapat mengakses SageMaker AI yang ditentukan APIs melalui konsol.
Untuk membatasi akses hanya ke koneksi yang dibuat dari dalam VPC Anda, buat kebijakan AWS Identity and Access Management yang membatasi akses. Akses ini harus dibatasi hanya untuk panggilan yang berasal dari dalam VPC Anda. 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 API hanya panggilan yang dilakukan menggunakan titik akhir antarmuka, gunakan kunci aws:SourceVpce
kondisi sebagai ganti: 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 panggilan SageMaker AI API dan pemanggilan runtime hanya dari alamat IP dalam daftar yang Anda tentukan. Untuk melakukannya, buat kebijakan IAM 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 kebijakan IAM, lihat Membuat Kebijakan IAM di AWS Identity and Access Management Panduan Pengguna.
Untuk menentukan daftar alamat IP yang memiliki akses ke panggilan API, gunakan:
-
IpAddress
operator kondisi -
aws:SourceIP
kunci konteks kondisi
Untuk informasi tentang operator kondisi IAM, lihat Elemen Kebijakan IAM JSON: Operator Kondisi di Panduan Pengguna.AWS Identity and Access Management Untuk informasi tentang kunci konteks kondisi IAM, lihat Kunci Konteks Kondisi AWS Global.
Misalnya, kebijakan berikut memungkinkan akses ke CreateTrainingJob
satu-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 kebijakan IAM yang menolak akses CreatePresignedNotebookInstanceUrl
kecuali 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 kebijakan IAM, lihat Membuat Kebijakan IAM di AWS Identity and Access Management Panduan Pengguna.
Untuk menentukan daftar alamat IP yang ingin Anda akses ke instance notebook, gunakan:
-
IpAddress
operator kondisi -
aws:SourceIP
kunci konteks kondisi
Untuk informasi tentang operator kondisi IAM, lihat Elemen Kebijakan IAM JSON: Operator Kondisi di Panduan Pengguna.AWS Identity and Access Management Untuk informasi tentang kunci konteks kondisi IAM, 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 URL yang ditampilkan panggilan. Kebijakan ini juga membatasi akses untuk membuka instance notebook di konsol. Hal ini diberlakukan untuk setiap permintaan HTTP 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 antarmuka VPC. . Untuk informasi tentang membatasi akses ke instance notebook saat menghubungkan melalui titik akhir antarmuka VPC, lihat. Connect ke Instance Notebook Melalui Endpoint Antarmuka VPC
Kontrol akses ke sumber daya SageMaker AI dengan menggunakan tag
Tentukan tag dalam kebijakan IAM 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 kebijakan IAM untuk menyediakan akses bagi setiap grup.
catatan
Kebijakan berbasis tag tidak berfungsi untuk membatasi panggilan API berikut:
-
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 grup IAM 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 panggilan API pada instance notebook yang Anda gunakan untuk proyek pertama. Anda dapat menyediakan DevTeam2
untuk melakukan panggilan API 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 panggilan API (contoh)
-
Tambahkan tag dengan kunci
Project
dan nilaiA
ke instance notebook yang digunakan untuk proyek pertama. Untuk informasi tentang menambahkan tag ke sumber daya SageMaker AI, lihatAddTags
. -
Tambahkan tag dengan kunci
Project
dan nilaiB
ke instance notebook yang digunakan untuk proyek kedua. -
Buat kebijakan IAM dengan
ResourceTag
kondisi yang menolak akses ke instance notebook yang digunakan untuk proyek kedua. Kemudian, lampirkan kebijakan itu keDevTeam1
. Contoh kebijakan berikut menyangkal semua panggilan API pada instance notebook mana pun dengan tag dengan kunciProject
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 kebijakan IAM dan melampirkannya ke identitas, lihat Mengontrol Akses Menggunakan Kebijakan di Panduan Pengguna.AWS Identity and Access Management
-
Buat kebijakan IAM dengan
ResourceTag
kondisi yang menolak akses ke instance notebook yang digunakan untuk proyek pertama. Kemudian, lampirkan kebijakan itu keDevTeam2
. Contoh kebijakan berikut menyangkal semua panggilan API pada instance notebook mana pun dengan tag dengan kunciProject
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:
-
pencarian
-
keamanan
-
kontrol akses
-
otomatisasi
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 AI SDKs, AWS CLI CLI,, Konsol SageMaker AI SageMaker APIs, atau templat. AWS CloudFormation
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 kondisi IAM 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 keterlacakan SageMaker tentang bagaimana sumber daya 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
- ARN dari profil pengguna yang menciptakan sumber daya. Ini memungkinkan melacak sumber daya yang dibuat oleh pengguna tertentu. -
sagemaker:space-arn
- ARN ruang tempat sumber daya dibuat. 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, izin IAM mereka harus menyertakan keduanya:
-
SageMaker AI dasar membuat izin untuk jenis sumber daya itu.
-
sagemaker:AddTags
Izin.
Misalnya, mengizinkan pengguna untuk membuat pekerjaan SageMaker pelatihan dan menandai itu akan memerlukan pemberian izin untuk sagemaker:CreateTrainingJob
dan. sagemaker:AddTags
penting
Kebijakan IAM 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 kebijakan IAM memungkinkan 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 izin IAM ini ke:
-
AWS Peran IAM 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 kebijakan IAM kustom, lihat Membuat kebijakan IAM (konsol).
catatan
Daftar operasi pembuatan sumber daya SageMaker AI dapat ditemukan di dokumentasi SageMaker API 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 kebijakan IAM 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 kebijakan IAM kustom ini, dua pernyataan pertama menggambarkan 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 ARN domain tertentu, 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 kuncisagemaker:TaggingAction
kondisi sama.CreateModel
Ini membatasisagemaker:AddTags
tindakan hanya ketika digunakan untuk menandai model yang baru dibuat. -
Pernyataan ketiga menyangkal SageMaker AI create action (
Create*
) apa pun pada resource (*
) apa pun, tetapi hanya jika sumber daya memiliki tag yangsagemaker:domain-arn
sama dengan domain
ARN tertentu,.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 permintaan API Pencarian pengguna, tetapi kebijakan akses yang berlaku untuk pengguna tersebut berisi kunci kondisi yang terkaitVisibilityConditions
, Search
permintaan pengguna tersebut ditolak.