

# Amazon S3 バケットに条件付き削除を強制する
<a name="conditional-delete-enforce"></a>

 Amazon S3 バケットポリシーを使用すると、汎用バケット内のオブジェクトに条件付き削除を含む `If-Match` ヘッダーを強制できます。`If-Match` ヘッダーが存在しない場合、リクエストは `403 Access Denied` で拒否されます。バケットポリシーは、バケットとその中のオブジェクトへのアクセス許可を付与できるリソースベースのポリシーです。バケット所有者のみが、ポリシーをバケットに関連付けることができます。バケットポリシーの詳細については、「[Amazon S3 のバケットポリシー](bucket-policies.md)」を参照してください。

次の例は、バケットポリシーで条件を使用して、クライアントに `If-Match` HTTP ヘッダーの使用を強制する方法を示しています。

**Topics**
+ [例 1: `ETag` 値を持つ `If-Match` ヘッダーを使用して条件付き削除のみを許可する](#conditional-writes-enforce-ex1)
+ [例 2: `*` 値を持つ `If-Match` ヘッダーを使用して条件付き削除のみを許可する](#conditional-deletes-enforce-ex2)

## 例 1: `ETag` 値を持つ `If-Match` ヘッダーを使用して条件付き削除のみを許可する
<a name="conditional-writes-enforce-ex1"></a>

このバケットポリシーを使用して、`ETag` 値を持つ `If-Match` ヘッダーを含む `DeleteObject` および `DeleteObjects` リクエストを使用した条件付き削除のみを許可できます。条件のない削除はすべて拒否され、条件付き削除は成功します。

```
{
    "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/*"
        }
    ]
}
```

## 例 2: `*` 値を持つ `If-Match` ヘッダーを使用して条件付き削除のみを許可する
<a name="conditional-deletes-enforce-ex2"></a>

このバケットポリシーを使用して、`*` 値を持つ `If-Match` ヘッダーを含む `DeleteObject` および `DeleteObjects` リクエストを使用した条件付き削除のみを許可できます。条件のない削除はすべて拒否され、条件付き削除は成功します。

```
{
    "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"
                }
            }
        }
    ]
}
```