

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
<a name="model-registry-restrict-s3-access"></a>

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
<a name="model-registry-restrict-s3-access-role"></a>

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` dan`sts:TagSession`. Tanpa`sts: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
<a name="model-registry-restrict-s3-access-scp"></a>

Lampirkan SCP berikut di organisasi Anda. Pernyataan pertama hanya memungkinkan kepala layanan SageMaker AI untuk mengambil peran yang ditandai`ManagedBy=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](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_create.html).

```
{
  "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` on`aws: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
<a name="model-registry-restrict-s3-access-bucket"></a>

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
<a name="model-registry-restrict-s3-access-monitor"></a>

Akun Anda mencatat penandaan sesi dan keputusan akses yang dihasilkan.
+ Dalam CloudTrail, `AssumeRole` acara untuk peran eksekusi mencantumkan tag sesi di bawah`requestParameters`. 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html).