Aplicación de eliminaciones condicionales en buckets de Amazon S3
Mediante el uso de las políticas de bucket de Amazon S3, puede aplicar el encabezado If-Match
con eliminaciones condicionales para objetos en los buckets de uso general. Si el encabezado If-Match
no existe, la solicitud se rechazará con un 403 Access Denied
. Una política de bucket está basada en recursos que puede utilizar para conceder permisos de acceso al bucket y a los objetos que contiene. Solo el propietario del bucket puede asociar una política a un bucket. Para obtener más información acerca de las políticas de bucket, consulte Políticas de buckets para Amazon S3.
En los ejemplos siguientes, se muestra cómo utilizar condiciones en una política de bucket para que los clientes utilicen el encabezado HTTP If-Match
.
Temas
Ejemplo 1: Permitir solo eliminaciones condicionales mediante el encabezado If-Match
con el valor ETag
Puede usar esta política de bucket para permitir solo las eliminaciones condicionales mediante las solicitudes de DeleteObject
y DeleteObjects
que incluyen el encabezado If-Match
con el valor ETag
. Se rechazarían todas las eliminaciones no condicionales y se aprobarían las eliminaciones condicionales.
{ "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
/*" } ] }
Ejemplo 2: Permitir solo eliminaciones condicionales mediante el encabezado If-Match
con el valor *
Puede usar esta política de bucket para permitir solo las eliminaciones condicionales mediante las solicitudes de DeleteObject
y DeleteObjects
que incluyen el encabezado If-Match
con el valor *
. Se rechazarían todas las eliminaciones no condicionales y se aprobarían las eliminaciones condicionales.
{ "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" } } } ] }