Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menerapkan penghapusan bersyarat pada bucket Amazon S3
Dengan menggunakan kebijakan bucket Amazon S3, Anda dapat menerapkan If-Match header dengan penghapusan bersyarat untuk objek di bucket tujuan umum. Jika If-Match header tidak ada, permintaan akan ditolak dengan file403 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 nilaiETag. NullKondisi memastikan If-Match header hadir, dan s3:GetObject izin diberikan karena penghapusan bersyarat dengan ETag nilai tertentu memerlukan keduanya s3:DeleteObject dan s3:GetObject izin. Semua penghapusan non-kondisional akan ditolak dan penghapusan bersyarat akan berlalu.
{ "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*. NullKondisi ini memastikan If-Match header hadir. Karena tidak s3:GetObject diberikan, penghapusan bersyarat dengan ETag nilai tertentu akan gagal — hanya If-Match: * (yang memeriksa keberadaan objek dan hanya memerlukan s3:DeleteObject izin) 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" } } } ] }