

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