

# Impor exclusões condicionais em buckets do Amazon S3
<a name="conditional-delete-enforce"></a>

 Ao usar políticas de bucket do Amazon S3, você pode impor o cabeçalho `If-Match` com exclusões condicionais para objetos em buckets de uso geral. Se o cabeçalho `If-Match` não existir, a solicitação será negada com um `403 Access Denied`. Uma política de bucket é baseada em recursos que você pode usar para conceder permissões de acesso ao bucket e aos objetos contidos nele. Só o proprietário do bucket pode associar uma política a um bucket. Para obter mais informações sobre políticas de bucket, consulte [Políticas de bucket para o Amazon S3](bucket-policies.md). 

Os exemplos a seguir mostram como usar condições em uma política de bucket para forçar os clientes a usar o cabeçalho HTTP `If-Match`.

**Topics**
+ [Exemplo 1: permitir somente exclusões condicionais que usam o cabeçalho `If-Match` com o valor `ETag`](#conditional-writes-enforce-ex1)
+ [Exemplo 2: permitir somente exclusões condicionais que usam o cabeçalho `If-Match` com o valor `*`](#conditional-deletes-enforce-ex2)

## Exemplo 1: permitir somente exclusões condicionais que usam o cabeçalho `If-Match` com o valor `ETag`
<a name="conditional-writes-enforce-ex1"></a>

Você pode usar essa política de bucket para permitir somente exclusões condicionais que usam solicitações `DeleteObject` e `DeleteObjects` que incluem o cabeçalho `If-Match` com o valor `ETag`. Nesse caso, todas as exclusões não condicionais seriam negadas e as exclusões condicionais seriam aceitas. 

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

## Exemplo 2: permitir somente exclusões condicionais que usam o cabeçalho `If-Match` com o valor `*`
<a name="conditional-deletes-enforce-ex2"></a>

Você pode usar essa política de bucket para permitir somente exclusões condicionais que usam solicitações `DeleteObject` e `DeleteObjects` que incluem o cabeçalho `If-Match` com o valor `*`. Nesse caso, todas as exclusões não condicionais seriam negadas e as exclusões condicionais seriam aceitas. 

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