Memberikan izin untuk Operasi Batch Amazon S3 - Amazon Simple Storage Service

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

Memberikan izin untuk Operasi Batch Amazon S3

Sebelum membuat dan menjalankan pekerjaan Operasi Batch S3, Anda harus memberikan izin yang diperlukan. Untuk membuat pekerjaan Operasi Batch Amazon S3, izin pengguna s3:CreateJob diperlukan. Entitas yang sama yang membuat pekerjaan juga harus memiliki iam:PassRole izin untuk meneruskan peran AWS Identity and Access Management (IAM) yang ditentukan untuk pekerjaan tersebut ke Operasi Batch.

Untuk informasi umum tentang menentukan sumber daya IAM, lihat Kebijakan JSON IAM, Elemen sumber daya di Panduan Pengguna IAM. Bagian berikut memberikan informasi tentang membuat peran IAM dan melampirkan kebijakan.

Membuat peran IAM Operasi Batch S3

Amazon S3 harus memiliki izin untuk menjalankan Operasi Batch S3 atas nama Anda. Anda memberikan izin ini melalui peran AWS Identity and Access Management (IAM). Bagian ini memberikan contoh kebijakan kepercayaan dan izin yang Anda gunakan saat membuat peran IAM. Untuk informasi selengkapnya, lihat peran IAM dalam Panduan Pengguna IAM. Sebagai contoh, lihat Mengontrol izin untuk Operasi Batch S3 menggunakan tanda tugas dan Menyalin objek menggunakan Operasi Batch S3.

Dalam kebijakan IAM, Anda juga dapat menggunakan kunci persyaratan untuk memfilter izin akses yang akan digunakan untuk pekerjaan Operasi Batch S3. Untuk informasi selengkapnya dan daftar lengkap kunci kondisi khusus Amazon S3, lihat Kunci tindakan, sumber daya, dan kondisi untuk Amazon S3 di Referensi Otorisasi Layanan.

Video berikut mencakup cara menyiapkan izin IAM untuk pekerjaan Operasi Batch menggunakan AWS Management Console.

Kebijakan kepercayaan

Untuk mengizinkan pengguna utama layanan Operasi Batch S3 agar dapat menjalankan peran IAM, lampirkan kebijakan kepercayaan berikut ke peran tersebut.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"batchoperations.s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }

Melampirkan kebijakan izin

Tergantung pada jenis operasinya, Anda dapat melampirkan salah satu kebijakan berikut.

Sebelum Anda mengonfigurasi izin, perhatikan hal berikut ini:

  • Apa pun operasinya, Amazon S3 tetap memerlukan izin untuk membaca objek manifes Anda dari bucket S3 dan menulis laporan ke bucket Anda secara opsional. Oleh karena itu, semua kebijakan berikut mencakup izin ini.

  • Untuk manifes laporan inventaris Amazon S3, Operasi Batch S3 memerlukan izin untuk membaca objek manifest.json dan semua file data CSV terkait.

  • Izin khusus versi seperti s3:GetObjectVersion hanya diperlukan saat Anda menentukan ID versi objek.

  • Jika Anda menjalankan Operasi Batch S3 pada objek terenkripsi, peran IAM juga harus memiliki akses ke AWS KMS kunci yang digunakan untuk mengenkripsi mereka.

  • Jika Anda mengirimkan manifes laporan inventaris yang dienkripsi AWS KMS, kebijakan IAM Anda harus menyertakan izin "kms:Decrypt" dan "kms:GenerateDataKey" untuk objek manifest.json serta semua file data CSV terkait.

  • Jika pekerjaan Operasi Batch menghasilkan manifes dalam bucket yang mengaktifkan ACL dan berada di AWS akun lain, Anda harus memberikan s3:PutObjectAcl izin dalam kebijakan IAM untuk peran IAM yang dikonfigurasi untuk pekerjaan batch. Jika Anda tidak menyertakan izin ini, pekerjaan batch gagal dengan kesalahanError occurred when preparing manifest: Failed to write manifest.

Salin objek: PutObject

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectTagging" ], "Effect": "Allow", "Resource": "arn:aws:s3:::DestinationBucket/*" }, { "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectTagging", "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::SourceBucket", "arn:aws:s3:::SourceBucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ManifestBucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::ReportBucket/*" ] } ] }

Ganti penandaan objek: PutObjectTagging

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": "arn:aws:s3:::TargetResource/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ManifestBucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject" ], "Resource":[ "arn:aws:s3:::ReportBucket/*" ] } ] }

Hapus penandaan objek: DeleteObjectTagging

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:DeleteObjectTagging", "s3:DeleteObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::TargetResource/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ManifestBucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::ReportBucket/*" ] } ] }

Ganti daftar kontrol akses: PutObjectAcl

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:PutObjectAcl", "s3:PutObjectVersionAcl" ], "Resource": "arn:aws:s3:::TargetResource/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ManifestBucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject" ], "Resource":[ "arn:aws:s3:::ReportBucket/*" ] } ] }

Kembalikan objek: RestoreObject

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:RestoreObject" ], "Resource": "arn:aws:s3:::TargetResource/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ManifestBucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject" ], "Resource":[ "arn:aws:s3:::ReportBucket/*" ] } ] }

Terapkan retensi Object Lock: PutObjectRetention

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetBucketObjectLockConfiguration", "Resource": [ "arn:aws:s3:::TargetResource" ] }, { "Effect": "Allow", "Action": [ "s3:PutObjectRetention", "s3:BypassGovernanceRetention" ], "Resource": [ "arn:aws:s3:::TargetResource/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ManifestBucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::ReportBucket/*" ] } ] }
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetBucketObjectLockConfiguration", "Resource": [ "arn:aws:s3:::TargetResource" ] }, { "Effect": "Allow", "Action": "s3:PutObjectLegalHold", "Resource": [ "arn:aws:s3:::TargetResource/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ManifestBucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::ReportBucket/*" ] } ] }

Replikasi objek yang ada: InitiateReplication dengan manifes yang dihasilkan S3

Gunakan kebijakan ini jika menggunakan dan menyimpan manifes yang dihasilkan S3. Untuk informasi selengkapnya tentang menggunakan Operasi Batch untuk mereplikasi objek yang ada, lihat Mereplikasi objek yang ada dengan Replikasi Batch S3.

{ "Version":"2012-10-17", "Statement":[ { "Action":[ "s3:InitiateReplication" ], "Effect":"Allow", "Resource":[ "arn:aws:s3:::*** replication source bucket ***/*" ] }, { "Action":[ "s3:GetReplicationConfiguration", "s3:PutInventoryConfiguration" ], "Effect":"Allow", "Resource":[ "arn:aws:s3:::*** replication source bucket ***" ] }, { "Action":[ "s3:GetObject", "s3:GetObjectVersion" ], "Effect":"Allow", "Resource":[ "arn:aws:s3:::*** manifest bucket ***/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject" ], "Resource":[ "arn:aws:s3:::*** completion report bucket ****/*", "arn:aws:s3:::*** manifest bucket ****/*" ] } ] }

Replikasi objek yang ada: InitiateReplication dengan manifes pengguna

Gunakan kebijakan ini jika Anda menggunakan manifes yang disediakan pengguna. Untuk informasi selengkapnya tentang menggunakan Operasi Batch untuk mereplikasi objek yang ada, lihat Mereplikasi objek yang ada dengan Replikasi Batch S3.

{ "Version":"2012-10-17", "Statement":[ { "Action":[ "s3:InitiateReplication" ], "Effect":"Allow", "Resource":[ "arn:aws:s3:::*** replication source bucket ***/*" ] }, { "Action":[ "s3:GetObject", "s3:GetObjectVersion" ], "Effect":"Allow", "Resource":[ "arn:aws:s3:::*** manifest bucket ***/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject" ], "Resource":[ "arn:aws:s3:::*** completion report bucket ****/*" ] } ] }