View a markdown version of this page

Batasi akses artefak ke penerapan paket model - Amazon SageMaker AI

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

Batasi akses artefak ke penerapan paket model

Saat Anda membagikan paket model di seluruh akun, peran eksekusi akun yang dikonsumsi membutuhkan s3:GetObject artefak model di akun penghasil. Secara default, izin itu berlaku setiap kali peran digunakan. Akibatnya, setiap prinsipal yang menggunakan peran dapat membaca artefak dari buku catatan, dari pekerjaan pelatihan, atau melalui panggilan API langsung—tidak hanya saat paket model sedang digunakan.

Anda dapat mempersempit akses itu sehingga hanya penyebaran paket model yang dapat membaca artefak. Selama penerapan, SageMaker AI menerapkan tag sesi sagemaker:ModelPackageArn ke sesi peran eksekusi yang diasumsikan. Nilai tag adalah ARN dari paket model yang digunakan. Oleh karena itu, kebijakan bucket yang memerlukan tag ini hanya memberikan akses ke sesi penerapan.

Ini membutuhkan tiga bagian yang bekerja bersama. Ketiganya adalah milik Anda untuk dikonfigurasi; SageMaker AI hanya menyediakan tag sesi:

  • Peran eksekusi ManagedBy=SageMaker yang ditandai dengan kebijakan kepercayaannya hanya memungkinkan kepala layanan SageMaker AI untuk mengasumsikannya.

  • Kebijakan kontrol layanan yang mencegah siapa pun selain SageMaker AI untuk mengambil peran itu atau mengatur kunci sagemaker:ModelPackageArn tag. Tanpa ini, kepala sekolah dengan izin untuk menelepon AWS STS mungkin menyediakan tag itu sendiri.

  • Kebijakan bucket Amazon S3 yang s3:GetObject hanya diberikan saat sesi memuat tag, pemanggil ada di organisasi Anda, dan peran diberi tag. ManagedBy=SageMaker

penting

SCP adalah apa yang membuat tag sesi dapat dipercaya. Jika Anda menerapkan kebijakan bucket tanpa SCP, prinsipal yang dapat mengambil peran eksekusi secara langsung dapat melampirkan sagemaker:ModelPackageArn tag ke sesinya sendiri dan memenuhi kebijakan bucket.

Langkah 1: Tandai dan lingkup peran eksekusi

Di akun konsumsi, beri tag peran eksekusi ManagedBy=SageMaker dan batasi kebijakan kepercayaannya kepada kepala layanan SageMaker AI. Kebijakan kepercayaan harus memungkinkan keduanya sts:AssumeRole dansts:TagSession. Tanpasts:TagSession, SageMaker AI tidak dapat menerapkan tag sagemaker:ModelPackageArn sesi, dan Amazon S3 menyangkal setiap pembacaan yang diperlukan oleh kebijakan bucket pada Langkah 3.

{ "RoleName": "GovernedModelExecutionRole", "Tags": [ { "Key": "ManagedBy", "Value": "SageMaker" } ], "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] }] } }

Langkah 2: Tambahkan kebijakan kontrol layanan

Lampirkan SCP berikut di organisasi Anda. Pernyataan pertama hanya memungkinkan kepala layanan SageMaker AI untuk mengambil peran yang ditandaiManagedBy=SageMaker. Yang kedua hanya memungkinkan SageMaker AI untuk menyetel kunci sagemaker:ModelPackageArn tag, yang merupakan satu-satunya kunci tag yang dievaluasi kebijakan bucket. Untuk informasi selengkapnya, lihat Membuat, memperbarui, dan menghapus kebijakan kontrol layanan.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyNonSageMakerAssumeOnManagedRoles", "Effect": "Deny", "Action": "sts:AssumeRole", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/ManagedBy": "SageMaker" }, "StringNotEquals": { "aws:PrincipalServiceName": "sagemaker.amazonaws.com" } } }, { "Sid": "DenyTaggingProtectedKeysUnlessSageMaker", "Effect": "Deny", "Action": [ "iam:TagRole", "iam:UntagRole", "sts:TagSession" ], "Resource": "*", "Condition": { "StringLike": { "aws:RequestTag/sagemaker:ModelPackageArn": "*" }, "StringNotEquals": { "aws:PrincipalServiceName": "sagemaker.amazonaws.com" } } } ] }
catatan

Kedua pernyataan menggunakan StringNotEquals onaws:PrincipalServiceName, yang mengevaluasi ke true ketika kunci tidak ada. Oleh karena itu SCP menolak tindakan ini kepada setiap pengguna IAM dan peran dalam akun anggota Anda, termasuk sesi yang tidak memiliki prinsip layanan sama sekali. SCP tidak berlaku untuk panggilan yang dilakukan AWS layanan dengan prinsip layanan mereka sendiri; kebijakan kepercayaan peran, yang memberikan akses hanya ke kepala layanan SageMaker AI, adalah apa yang mengecualikan layanan lain. AWS

Langkah 3: Tambahkan kebijakan bucket Amazon S3

Dalam akun produksi, terapkan kebijakan berikut ke ember yang menyimpan artefak model. Ketiga kondisi harus dipegang. Amazon S3 menyangkal sesi apa pun yang hilang.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOnlyModelPackageDeployments", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::model-artifacts-bucket/model-package-prefix/*", "Condition": { "StringLike": { "aws:PrincipalTag/sagemaker:ModelPackageArn": "arn:aws:sagemaker:*:producer-account-id:model-package/model-package-group/*" }, "StringEquals": { "aws:PrincipalOrgID": "o-organization-id", "aws:PrincipalTag/ManagedBy": "SageMaker" } } } ] }

Menggunakan Principal dengan nilai * bersama dengan kondisi ini berarti peran apa pun dalam organisasi Anda yang diberi tag ManagedBy=SageMaker dan membawa tag penerapan dapat membaca artefak. Anda tidak perlu mengedit kebijakan untuk setiap peran konsumsi. Wildcard pada paket model ARN mencakup setiap versi dalam grup.

penting

Lingkup Resource artefak dari satu kelompok paket model. Awalan yang mencakup beberapa grup akan memungkinkan penerapan satu paket model membaca artefak grup lain, karena tag sesi diperiksa terhadap wildcard grup daripada jalur objek.

Jika artefak dienkripsi dengan AWS KMS kunci yang dikelola pelanggan, peran eksekusi juga perlu kms:Decrypt pada kunci itu. Berikan dalam kebijakan utama; kebijakan IAM saja tidak cukup.

Pantau akses artefak

Akun Anda mencatat penandaan sesi dan keputusan akses yang dihasilkan.

  • Dalam CloudTrail, AssumeRole acara untuk peran eksekusi mencantumkan tag sesi di bawahrequestParameters. Konfirmasikan yang sagemaker:ModelPackageArn ada dan cocok dengan paket model yang Anda gunakan.

  • Dalam peristiwa data Amazon S3 atau log akses server, GetObject permintaan terhadap awalan artefak menunjukkan apakah setiap pembacaan diizinkan atau ditolak, sehingga Anda dapat mengonfirmasi bahwa akses non-penerapan ditolak.

Sebelum menerapkan kebijakan ke bucket produksi, Anda dapat mengevaluasinya dengan simulator kebijakan IAM untuk mengonfirmasi bahwa sesi penerapan diizinkan dan sesi tanpa tag ditolak. Untuk informasi selengkapnya, lihat Menguji kebijakan IAM dengan simulator kebijakan IAM.