

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Application de suppressions conditionnelles dans des compartiments Amazon S3
<a name="conditional-delete-enforce"></a>

 Avec les stratégies de compartiment Amazon S3, vous pouvez appliquer un en-tête `If-Match` avec des suppressions conditionnelles d’objets de compartiments à usage général. Si l’en-tête `If-Match` n’existe pas, la demande est refusée et le message `403 Access Denied` est renvoyé. Une stratégie de compartiment est une stratégie basée sur les ressources que vous pouvez utiliser pour accorder des autorisations d'accès à votre compartiment et aux objets qu'il contient. Seul le propriétaire du compartiment peut associer une politique à un compartiment. Pour plus d’informations sur les stratégies de compartiment, consultez [Politiques de compartiment pour Amazon S3](bucket-policies.md). 

Les exemples suivants montrent comment utiliser les conditions d’une stratégie de compartiment pour obliger les clients à utiliser l’en-tête HTTP `If-Match`.

**Topics**
+ [Exemple 1 : autoriser uniquement les suppressions conditionnelles à l'aide de l'`If-Match`en-tête avec la valeur `ETag`](#conditional-writes-enforce-ex1)
+ [Exemple 2 : Autoriser uniquement les suppressions conditionnelles en utilisant l'`If-Match`en-tête avec la valeur `*`](#conditional-deletes-enforce-ex2)

## Exemple 1 : autoriser uniquement les suppressions conditionnelles à l'aide de l'`If-Match`en-tête avec la valeur `ETag`
<a name="conditional-writes-enforce-ex1"></a>

Vous pouvez utiliser cette stratégie de compartiment pour autoriser uniquement les suppressions conditionnelles à l’aide des demandes `DeleteObject` et `DeleteObjects` qui incluent l’en-tête `If-Match` avec la valeur `ETag`. La `Null` condition garantit la présence de l'`If-Match`en-tête et l'`s3:GetObject`autorisation est accordée car les suppressions conditionnelles avec une valeur ETag spécifique nécessitent à la fois des autorisations `s3:DeleteObject` et `s3:GetObject` des autorisations. Toutes les suppressions non conditionnelles sont refusées et les suppressions conditionnelles sont acceptées.

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

## Exemple 2 : Autoriser uniquement les suppressions conditionnelles en utilisant l'`If-Match`en-tête avec la valeur `*`
<a name="conditional-deletes-enforce-ex2"></a>

Vous pouvez utiliser cette stratégie de compartiment pour autoriser uniquement les suppressions conditionnelles à l’aide des demandes `DeleteObject` et `DeleteObjects` qui incluent l’en-tête `If-Match` avec la valeur `*`. La `Null` condition garantit la présence de l'`If-Match`en-tête. Comme elle n'`s3:GetObject`est pas accordée, les suppressions conditionnelles avec une valeur ETag spécifique échoueront. Only `If-Match: *` (qui vérifie l'existence de l'objet et ne nécessite que des `s3:DeleteObject` autorisations) réussira. Toutes les suppressions non conditionnelles seraient refusées, et seules les suppressions `If-Match: *` conditionnelles réussiraient.

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