

# Solução de problemas
<a name="object-ownership-error-responses"></a>

Ao adotar a configuração Imposto pelo proprietário do bucket para a Propriedade de Objetos do S3, as listas de controle de acesso (ACLs) serão desabilitadas e, como proprietário do bucket, você assumirá a propriedade de todos os objetos no bucket. As ACLs não afetam mais as permissões dos objetos do bucket. Você pode usar políticas para conceder permissões. Todas as solicitações `PUT` do S3 devem especificar a ACL predefinida `bucket-owner-full-control` ou não especificar uma ACL, senão essas solicitações falharão. Para obter mais informações, consulte [Controlar a propriedade de objetos e desabilitar ACLs para seu bucket](about-object-ownership.md).

Se uma ACL inválida for especificada ou se as permissões de ACL de bucket concederem acesso fora de sua Conta da AWS, você poderá ver as respostas de erro a seguir.

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

Ao adotar a configuração Imposto pelo proprietário do bucket em Propriedade de objeto, as ACLs são desabilitadas. Solicitações para definir ACLs ou atualizar ACLs falham com um erro `400` e retornam o código de erro AccessControlListNotSupported. Ainda há suporte para solicitações de leitura de ACLs. As solicitações de leitura para ACLs sempre retornam uma resposta que mostra controle total para o proprietário do bucket. Nas operações `PUT`, é necessário especificar ACLs de controle total do proprietário do bucket ou não especificar uma ACL. Caso contrário, as operações `PUT` falharão. 

O exemplo de comando `put-object` da AWS CLI a seguir inclui a ACL `public-read` predefinida. 

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

Se o bucket usar a configuração Imposto pelo proprietário do bucket para desabilitar ACLs, essa operação falhará, e a pessoa que carregar receberá esta mensagem de erro:

An error occurred (AccessControlListNotSupported) when calling the PutObject operation: The bucket does not allow ACLs (Ocorreu um erro [AccessControlListNotSupported] ao chamar a operação PutObject: o bucket não permite ACLs

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

Para adotar a configuração Imposto pelo proprietário do bucket para desabilitar ACLs, a ACL do bucket deverá dar controle total somente ao proprietário do bucket. Sua ACL de bucket não pode dar acesso a uma Conta da AWS externa ou a qualquer outro grupo. Por exemplo, se a solicitação `CreateBucket` definir a configuração aplicada pelo proprietário do bucket e especificar uma ACL de bucket que fornece acesso a uma Conta da AWS externa, a solicitação apresentará o erro `400` e retornará o código de erro InvalidBucketAclWithObjectOwnership. Da mesma forma, se a solicitação `PutBucketOwnershipControls` definir a configuração aplicada pelo proprietário do bucket em um bucket que tem uma ACL de bucket que concede permissões a outros, a solicitação falhará.

**Example : ACL de bucket existente concede acesso público de leitura**  
Por exemplo, se uma ACL de bucket existente conceder acesso público de leitura, não será possível adotar a configuração Imposto pelo proprietário do bucket para Propriedade de objeto enquanto essas permissões de ACL não forem migradas para uma política de bucket e sua ACL de bucket não for redefinida para a ACL privada padrão. Para obter mais informações, consulte [Pré-requisitos para desabilitar ACLs](object-ownership-migrating-acls-prerequisites.md).  
Este exemplo de ACL de bucket concede acesso público de leitura:  

```
{
    "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"
        }
    ]
}
```
O exemplo a seguir do comando `put-bucket-ownership-controls` da AWS CLI adota a configuração Imposto pelo proprietário do bucket para Propriedade de objeto:  

```
aws s3api put-bucket-ownership-controls --bucket {{amzn-s3-demo-bucket}} --ownership-controls Rules=[{ObjectOwnership=BucketOwnerEnforced}]
```
Como a ACL de bucket concede acesso público de leitura, a solicitação falha e retorna o seguinte código de erro:  
An error occurred (InvalidBucketAclWithObjectOwnership) when calling the PutBucketOwnershipControls operation: Bucket cannot have ACLs set with ObjectOwnership's BucketOwnerEnforced setting (Ocorreu um erro [InvalidBucketAclWithObjectOwnership] ao chamar a operação PutBucketOwnershipControls: o bucket não pode ter ACLs definidas com a configuração BucketOwnerEnforced do ObjectOwnership 