

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 en utilisant l’en-tête `If-Match` avec la valeur `ETag`](#conditional-writes-enforce-ex1)
+ [Exemple 2 : autoriser uniquement les suppressions conditionnelles en utilisant l’en-tête `If-Match` avec la valeur `*`](#conditional-deletes-enforce-ex2)

## Exemple 1 : autoriser uniquement les suppressions conditionnelles en utilisant l’en-tête `If-Match` 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 ETag valeur spécifique nécessitent à la fois des `s3:GetObject` autorisations `s3:DeleteObject` et 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’en-tête `If-Match` 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 ETag valeur spécifique échoueront ; seules les suppressions `If-Match: *` (qui vérifient l'existence de l'objet et ne nécessitent qu'une `s3:DeleteObject` autorisation) seront couronnées de succès. Toutes les suppressions non conditionnelles seraient refusées, et seules les suppressions `If-Match: *` conditionnelles aboutiraient.

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