Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menerapkan penghapusan bersyarat di bucket Amazon S3
Dengan menggunakan kebijakan bucket Amazon S3, Anda dapat menerapkan If-Match header dengan penghapusan bersyarat untuk objek dalam bucket tujuan umum. Jika If-Match header tidak ada, permintaan akan ditolak dengan403 Access Denied. Kebijakan bucket adalah kebijakan berbasis sumber daya yang dapat Anda gunakan untuk memberikan izin akses ke bucket 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.
Contoh berikut menunjukkan cara menggunakan kondisi dalam kebijakan bucket untuk memaksa klien menggunakan header If-Match HTTP.
Topik
Contoh 1: Hanya izinkan penghapusan bersyarat menggunakan If-Match header dengan nilai ETag
Anda dapat menggunakan kebijakan bucket ini untuk hanya mengizinkan penghapusan bersyarat menggunakan DeleteObject dan DeleteObjects permintaan yang menyertakan If-Match header dengan ETag nilai tersebut. NullKondisi memastikan If-Match header ada, dan s3:GetObject izin diberikan karena penghapusan bersyarat dengan nilai ETag tertentu memerlukan keduanya s3:DeleteObject dan s3:GetObject izin. Semua penghapusan non-kondisional akan ditolak dan penghapusan bersyarat akan lulus.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowConditionalDeletes", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:DeleteObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "Null": { "s3:if-match": "false" } } }, { "Sid": "AllowGetObjectBecauseConditionalDeleteIfMatchETag", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
Contoh 2: Hanya izinkan penghapusan bersyarat menggunakan If-Match header dengan nilai *
Anda dapat menggunakan kebijakan bucket ini untuk hanya mengizinkan penghapusan bersyarat menggunakan DeleteObject dan DeleteObjects permintaan yang menyertakan If-Match header dengan * nilai tersebut. NullKondisi memastikan If-Match header hadir. Karena tidak s3:GetObject diberikan, penghapusan bersyarat dengan nilai ETag tertentu akan gagal — hanya If-Match: * (yang memeriksa keberadaan objek dan hanya memerlukan s3:DeleteObject izin) yang akan berhasil. Semua penghapusan non-kondisional akan ditolak, dan hanya penghapusan If-Match: * bersyarat yang akan berhasil.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowConditionalDeletes", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:DeleteObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "Null": { "s3:if-match": "false" } } } ] }