Application de suppressions conditionnelles dans des compartiments Amazon S3 - Amazon Simple Storage Service

Application de suppressions conditionnelles dans des compartiments Amazon S3

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 stratégie à un compartiment. Pour plus d’informations sur les stratégies de compartiment, consultez Stratégies de compartiment pour Amazon S3.

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.

Exemple 1 : autoriser uniquement les suppressions conditionnelles en utilisant l’en-tête If-Match avec la valeur ETag

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. 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 *

Vous pouvez utiliser cette stratégie de compartiment pour autoriser uniquement les suppressions conditionnelles à l’aide de demandes DeleteObject et DeleteObjects qui incluent l’en-tête If-Match avec la valeur *. 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" } } } ] }