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
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.
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.
Rubriques
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. La Null condition garantit la présence de l'If-Matchen-tête et l's3:GetObjectautorisation 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 *
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-Matchen-tête. Comme elle n's3:GetObjectest 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" } } } ] }