

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
<a name="conditional-delete-enforce"></a>

 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 file`403 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](bucket-policies.md). 

Contoh berikut menunjukkan cara menggunakan kondisi dalam kebijakan bucket untuk memaksa klien menggunakan header `If-Match` HTTP.

**Topics**
+ [Contoh 1: Hanya izinkan penghapusan bersyarat menggunakan `If-Match` header dengan nilai `ETag`](#conditional-writes-enforce-ex1)
+ [Contoh 2: Hanya izinkan penghapusan bersyarat menggunakan `If-Match` header dengan nilai `*`](#conditional-deletes-enforce-ex2)

## Contoh 1: Hanya izinkan penghapusan bersyarat menggunakan `If-Match` header dengan nilai `ETag`
<a name="conditional-writes-enforce-ex1"></a>

Anda dapat menggunakan kebijakan bucket ini untuk hanya mengizinkan penghapusan bersyarat menggunakan `DeleteObject` dan `DeleteObjects` permintaan yang menyertakan `If-Match` header dengan nilai`ETag`. `Null`Kondisi 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 `*`
<a name="conditional-deletes-enforce-ex2"></a>

Anda dapat menggunakan kebijakan bucket ini untuk hanya mengizinkan penghapusan bersyarat menggunakan `DeleteObject` dan `DeleteObjects` permintaan yang menyertakan `If-Match` header dengan nilai`*`. `Null`Kondisi 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"
                }
            }
        }
    ]
}
```