Impor exclusões condicionais em buckets do Amazon S3
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.
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
.
Tópicos
Exemplo 1: permitir somente exclusões condicionais que usam o cabeçalho If-Match
com o valor ETag
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 *
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" } } } ] }