Desactivación de las ACL para todos los buckets nuevos y aplicación de la propiedad de objetos
Le recomendamos que desactive las ACL en los buckets de Amazon S3. Para ello, aplique la configuración Aplicada al propietario del bucket de S3 Object Ownership. Al aplicar esta configuración, las ACL se desactivan y automáticamente tiene la propiedad y el control total sobre todos los objetos del bucket. Para requerir que todos los buckets nuevos se creen con ACL desactivadas, use políticas de AWS Identity and Access Management (IAM) o políticas de control de servicios (SCP) de AWS Organizations, como se describe en la siguiente sección.
Para aplicar la propiedad de objetos para objetos nuevos sin desactivar las ACL, puede aplicar la configuración de propietario del bucket preferido. Al aplicar esta configuración, le recomendamos encarecidamente que actualice la política de bucket para requerir la ACL predefinida bucket-owner-full-control
para todas las solicitudes PUT
que se realicen al bucket. Asegúrese también de actualizar los clientes para que envíen la ACL predefinida bucket-owner-full-control
a su bucket desde otras cuentas.
Temas
Desactivación de las ACL para todos los buckets nuevos (propietario del bucket obligatorio)
En el siguiente ejemplo, la política de IAM deniega el permiso s3:CreateBucket
para un usuario o rol de IAM específico a menos que se aplique la configuración Aplicada al propietario del bucket de Propiedad de objetos. El par clave-valor en el bloque Condition
especifica s3:x-amz-object-ownership
como su clave y la configuración BucketOwnerEnforced
como su valor. En otras palabras, el usuario de IAM solo puede crear buckets si establece la configuración Aplicada al propietario del bucket de Propiedad de objetos y desactiva las ACL. También puede utilizar esta política como SCP límite para la organización AWS.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireBucketOwnerFullControl", "Action": "s3:CreateBucket", "Effect": "Deny", "Resource": "*", "Condition": { "StringNotEquals": { "s3:x-amz-object-ownership": "BucketOwnerEnforced" } } } ] }
Requisito de la ACL predefinida bucket-owner-full-control para las operaciones PUT
de Amazon S3 (propietario del bucket preferido)
Con la configuración de propietario del bucket preferido de Propiedad de objetos, como propietario del bucket tiene la propiedad y el control total sobre los objetos nuevos que otras cuentas escriben en el bucket con la ACL predefinida bucket-owner-full-control
. Sin embargo, si otras cuentas escriben objetos en el bucket sin la ACL predefinida bucket-owner-full-control
, el escritor del objeto mantiene el acceso de control total. Como propietario del bucket, puede implementar una política de bucket que permita escrituras solo si especifican la ACL predefinida bucket-owner-full-control
.
nota
Si tiene las ACL desactivadas con la configuración Aplicada al propietario del bucket, como propietario del bucket tiene automáticamente la propiedad y el control total sobre todos los objetos del bucket. No es necesario utilizar esta sección para actualizar la política de bucket a fin de aplicar la propiedad de objetos para el propietario del bucket.
La siguiente directiva de bucket especifica que la cuenta
puede cargar objetos 111122223333
solo cuando la ACL del objeto está establecida en amzn-s3-demo-bucket
bucket-owner-full-control
. Asegúrese de reemplazar
con la cuenta y 111122223333
con el nombre del bucket.amzn-s3-demo-bucket
{ "Version": "2012-10-17", "Statement": [ { "Sid": "
Only allow writes to my bucket with bucket owner full control
", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333
:user/ExampleUser
" ] }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }
A continuación, se muestra una operación de copia de ejemplo que incluye la ACL predefinida bucket-owner-full-control
mediante la AWS Command Line Interface (AWS CLI).
aws s3 cp
file.txt
s3://amzn-s3-demo-bucket
--acl bucket-owner-full-control
Una vez que se aplica la política de bucket, si el cliente no incluye la ACL predefinida bucket-owner-full-control
, la operación produce un error y el cargador recibe el siguiente error:
An error occurred (AccessDenied) when calling the PutObject operation: Access Denied
(Se ha producido un error [AccessDenied] al llamar a la operación PutObject: Acceso denegado).
nota
Si los clientes necesitan acceso a objetos después de la carga, tendrá que conceder permisos adicionales a la cuenta de carga. Para obtener información sobre cómo conceder acceso a las cuentas a los recursos, consulte Explicaciones que utilizan políticas para administrar el acceso a los recursos de Amazon S3.