

# Solución de problemas
<a name="object-ownership-error-responses"></a>

Cuando aplica la configuración de propietario del bucket obligatorio de S3 Object Ownership, las listas de control de acceso (ACL) se desactivan y, como propietario del bucket, automáticamente tiene la propiedad de todos los objetos del bucket. Las ACL ya no afectan a los permisos de los objetos del bucket. Puede utilizar políticas para conceder permisos. Todas las solicitudes `PUT` de S3 deben especificar la ACL `bucket-owner-full-control` predefinida o no especificar ninguna ACL, pues si no estas solicitudes fallarán. Para obtener más información, consulte [Control de la propiedad de los objetos y desactivación de las ACL del bucket](about-object-ownership.md).

Si se especifica una ACL no válida o los permisos de ACL del bucket conceden acceso fuera de la Cuenta de AWS, es posible que vea las siguientes respuestas de error.

## AccessControlListNotSupported
<a name="object-ownership-error-responses-acl-not-supported"></a>

Después de aplicar la configuración Aplicada al propietario del bucket de Propiedad de objetos, las ACL se desactivan. Las solicitudes de configuración o actualización de ACL fallan con un error `400` y devuelven el código de error AccessControlListNotSupported. Las solicitudes de lectura de ACL siguen siendo compatibles. Las solicitudes de lectura de ACL siempre devuelven una respuesta que muestra el control total del propietario del bucket. En las operaciones `PUT`, debe especificar las ACL de control total del propietario del bucket o no especificar una ACL. De lo contrario, se producirá un error en las operaciones `PUT`. 

El siguiente comando de ejemplo `put-object` AWS CLI incluye la ACL predefinida `public-read`. 

```
aws s3api put-object --bucket {{amzn-s3-demo-bucket}} --key {{object-key-name}} --body {{doc-example-body}} --acl public-read
```

Si el bucket utiliza la configuración Aplicada al propietario del bucket para desactivar las ACL, esta operación genera un error y el cargador recibe el siguiente mensaje de error:

An error occurred (AccessControlListNotSupported) when calling the PutObject operation: The bucket does not allow ACLs (Se produjo un error (AccessControlListNotSupported) al llamar a la operación PutObject: el bucket no permite ACL

## InvalidBucketAclWithObjectOwnership
<a name="object-ownership-error-responses-invalid-acl"></a>

Si desea aplicar la configuración Aplicada al propietario del bucket para desactivar las ACL, la ACL del bucket debe otorgar control total únicamente al propietario del bucket. La ACL del bucket no puede dar acceso a una Cuenta de AWS externa ni a otro grupo. Por ejemplo, si la solicitud `CreateBucket` establece Aplicada al propietario del bucket y especifica una ACL de bucket que proporciona acceso a una Cuenta de AWS externa, se produce un error `400` en la solicitud y se devuelve el código de error InvalidBucketAclWithObjectOwnership. Del mismo modo, si la solicitud `PutBucketOwnershipControls` establece Aplicada al propietario del bucket en un bucket que tiene una ACL de bucket que concede permisos a otros, la solicitud falla.

**Example : ACL de bucket existente concede acceso público de lectura**  
Por ejemplo, si una ACL de bucket existente concede acceso público de lectura, no se puede aplicar la configuración Aplicada al propietario del bucket de Propiedad de objetos hasta que migre estos permisos de ACL a una política de bucket y restablezca la ACL del bucket a la ACL privada predeterminada. Para obtener más información, consulte [Requisitos previos para desactivar las ACL](object-ownership-migrating-acls-prerequisites.md).  
En este ejemplo, la ACL de bucket concede acceso público de lectura:  

```
{
    "Owner": {
        "ID": "{{852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID}}"
    },
    "Grants": [
        {
            "Grantee": {
                "ID": "{{852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID}}",
                "Type": "CanonicalUser"
            },
            "Permission": "FULL_CONTROL"
        },
        {
            "Grantee": {
                "Type": "Group",
                "URI": "http://acs.amazonaws.com/groups/global/AllUsers"
            },
            "Permission": "READ"
        }
    ]
}
```
El siguiente comando de ejemplo `put-bucket-ownership-controls` de la AWS CLI aplica la configuración Aplicada al propietario del bucket para Propiedad de objetos:  

```
aws s3api put-bucket-ownership-controls --bucket {{amzn-s3-demo-bucket}} --ownership-controls Rules=[{ObjectOwnership=BucketOwnerEnforced}]
```
Dado que la ACL del bucket concede acceso público de lectura, la solicitud falla y devuelve el siguiente código de error:  
An error occurred (InvalidBucketAclWithObjectOwnership) when calling the PutBucketOwnershipControls operation: Bucket cannot have ACLs set with ObjectOwnership's BucketOwnerEnforced setting (Se produjo un error (InvalidBucketAclWithObjectOwnership) al llamar a la operación PutBucketOwnershipControls: el bucket no puede tener ACL con la configuración ObjectOwnership's BucketOwnerEnforced 