Desactivación de las ACL para todos los buckets nuevos y aplicación de la propiedad de objetos - Amazon Simple Storage Service

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 de propietario del bucket obligatorio 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. Puede requerir que todos los buckets nuevos se creen con ACL desactivadas mediante el uso de 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. Los clientes también se deben actualizar para enviar la ACL predefinida bucket-owner-full-control al bucket desde otras cuentas.

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 de propietario del bucket obligatorio de Object Ownership. 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 de propietario del bucket obligatorio de Object Ownership 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 Object Ownership, 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 de propietario del bucket obligatorio, 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 111122223333 puede cargar objetos DOC-EXAMPLE-BUCKET solo cuando la ACL del objeto está establecida en bucket-owner-full-control. Asegúrese de reemplazar 111122223333 con la cuenta y DOC-EXAMPLE-BUCKET con el nombre del 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:::DOC-EXAMPLE-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://DOC-EXAMPLE-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.

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 de ejemplo: administrar acceso a sus recursos de Amazon S3.