Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menerapkan penulisan bersyarat di bucket Amazon S3
Dengan menggunakan kebijakan bucket Amazon S3, Anda dapat menerapkan penulisan bersyarat untuk unggahan objek di bucket tujuan umum Anda.
Kebijakan bucket adalah kebijakan berbasis sumber daya yang dapat Anda gunakan untuk memberikan izin akses ke bucket Amazon S3 dan objek di dalamnya. Hanya pemilik bucket yang dapat mengaitkan kebijakan dengan bucket. Untuk informasi lebih lanjut tentang kebijakan bucket, lihat Kebijakan bucket untuk Amazon S3.
Anda dapat menggunakan kunci kondisi s3:if-match atau s3:if-none-match sebagai Condition elemen atau Condition blok opsional untuk menentukan kapan kebijakan berlaku. Untuk upload multipart, Anda harus menentukan kunci s3:ObjectCreationOperation kondisi untuk mengecualikanCreateMultipartUpload,UploadPart, dan UploadPartCopy operasi, karena API ini tidak menerima header bersyarat. Untuk informasi selengkapnya tentang menggunakan kondisi dalam kebijakan bucket, lihatContoh kebijakan bucket menggunakan kunci kondisi.
catatan
Jika Anda menggunakan kebijakan bucket untuk menerapkan penulisan bersyarat, Anda tidak dapat melakukan operasi penyalinan ke bucket atau awalan yang ditentukan dalam kebijakan bucket Anda. CopyObjectpermintaan tanpa header If-None-Match atau If-Match HTTP gagal dengan 403 Access Denied kesalahan. CopyObjectpermintaan yang dibuat dengan header HTTP tersebut gagal dengan 501 Not
Implemented respons.
Contoh berikut menunjukkan cara menggunakan kondisi dalam kebijakan bucket untuk memaksa klien menggunakan header If-None-Match atau If-Match HTTP.
Topik
Contoh 1: Hanya izinkan unggahan objek menggunakan PutObject dan CompleteMultipartUpload permintaan yang menyertakan header if -none-match
Kebijakan ini memungkinkan akun 111122223333, pengguna Alice, untuk menulis ke amzn-s3-demo-bucket1 bucket jika permintaan menyertakan if-none-match header, memastikan bahwa kunci objek belum ada di bucket. Semua PutObject dan CompleteMultipartUpload permintaan ke bucket yang ditentukan harus menyertakan if-none-match header agar berhasil. Menggunakan header ini, pelanggan dapat menulis ke bucket ini hanya jika kunci objek tidak ada di bucket.
catatan
Kebijakan ini juga menetapkan kunci s3:ObjectCreationOperation kondisi yang memungkinkan unggahan multipart menggunakanCreateMultipartUpload,UploadPart, dan UploadPartCopy API.
Contoh 2: Hanya izinkan unggahan objek menggunakan PutObject dan CompleteMultipartUpload permintaan yang menyertakan header if-match
Kebijakan ini mengizinkan akun 111122223333, pengguna Alice untuk menulis ke amzn-s3-demo-bucket1 hanya jika permintaan menyertakan header. if-match Header ini membandingkan nilai ETag objek di S3 dengan yang Anda berikan selama WRITE operasi. Jika nilai ETag tidak cocok, operasi akan gagal. Semua PutObject dan CompleteMultipartUpload permintaan ke bucket yang ditentukan harus menyertakan if-match header agar berhasil.
catatan
Kebijakan ini juga menetapkan kunci s3:ObjectCreationOperation kondisi yang memungkinkan unggahan multipart menggunakanCreateMultipartUpload,UploadPart, dan UploadPartCopy API.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutObject", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", }, { "Sid": "BlockNonConditionalObjectCreation", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition": { "Null": { "s3:if-match": "true" }, "Bool": { "s3:ObjectCreationOperation": "true" } } }, { "Sid": "AllowGetObjectBecauseConditionalPutIfMatchETag", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*" } ] }
Contoh 3: Hanya izinkan permintaan upload objek yang menyertakan header if-none-match atau if- match
Kebijakan ini mengizinkan akun 111122223333, pengguna Alice untuk menulis amzn-s3-demo-bucket1 jika permintaan menyertakan header atau. if-none-match if-match Ini memungkinkan Alice untuk mengunggah objek jika nama kunci tidak ada di bucket, atau jika nama kunci memang ada, Alice dapat mengganti objek jika objek ETag cocok dengan ETag yang disediakan dalam permintaan. PUT
catatan
Kebijakan ini juga menetapkan kunci s3:ObjectCreationOperation kondisi yang memungkinkan unggahan multipart menggunakanCreateMultipartUpload,UploadPart, dan UploadPartCopy API.