Configurar Object Ownership em um bucket existente - Amazon Simple Storage Service

Configurar Object Ownership em um bucket existente

Você pode configurar S3 Object Ownership em um bucket do S3 existente. Para aplicar o Object Ownership ao criar um bucket, consulte Configurar Object Ownership ao criar um bucket.

O S3 Object Ownership é uma configuração no nível do bucket do Amazon S3 que você pode usar para desabilitar as listas de controle de acesso (ACLs) e assumir a propriedade de cada objeto em seu bucket, simplificando o gerenciamento de acesso para dados armazenados no Amazon S3. Recomendamos desabilitar as ACLs, a menos que você precise controlar o acesso no nível de objeto individual.

Há três configurações em Object Ownership que podem ser usadas para controlar a propriedade de objetos carregados no bucket e para desabilitar ou habilitar ACLs:

ACLs desabilitadas

  • Bucket owner enforced (Aplicada pelo proprietário do bucket) (recomendado): as ACLs são desabilitadas e o proprietário do bucket automaticamente tem a propriedade e o controle total sobre todos os objetos do bucket. As ACLs não afetam mais as permissões nos dados no bucket do S3. O bucket usa políticas para definir o controle de acesso.

ACLs habilitadas

  • Bucket owner preferred (Preferencial do proprietário do bucket): o proprietário do bucket tem a propriedade e o controle total sobre novos objetos que outras contas gravam no bucket com a ACL bucket-owner-full-control pré-configurada.

  • Object writer (Gravador de objetos) (padrão): a Conta da AWS que carrega um objeto é a proprietária do objeto, tem controle total sobre ele e pode conceder acesso a outros usuários por meio de ACLs.

Pré-requisitos: antes de adotar a configuração aplicada pelo proprietário do bucket para desabilitar ACLs, você deve migrar permissões de ACL de bucket para políticas de bucket e redefinir suas ACLs de bucket para a ACL privada padrão. Também recomendamos migrar permissões de ACL de objeto para políticas de bucket e editar políticas de bucket que exigem ACLs que não sejam ACLs de controle total do proprietário do bucket. Para obter mais informações, consulte Pré-requisitos para desabilitar ACLs.

Permissions (Permissões): para usar essa operação, é necessário ter a permissão s3:PutBucketOwnershipControls. Para obter mais informações sobre as permissões do Amazon S3, consulte Ações, recursos e chaves de condição do Amazon S3.

  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. Na lista Buckets, escolha o nome do bucket para o qual você deseja aplicar uma configuração S3 Object Ownership.

  3. Escolha a guia Permissions (Permissões).

  4. Em Object Ownership, escolha Edit (Editar).

  5. Em Object Ownership, para desabilitar ou habilitar ACLs e controlar a propriedade de objetos carregados em seu bucket, escolha uma das seguintes configurações:

    ACLs desabilitadas

    • Bucket owner enforced (Aplicada pelo proprietário do bucket) (recomendado): as ACLs são desabilitadas e o proprietário do bucket automaticamente tem a propriedade e o controle total sobre todos os objetos do bucket. As ACLs não afetam mais as permissões nos dados no bucket do S3. O bucket usa políticas para definir o controle de acesso.

      Para exigir que todos os novos buckets sejam criados com ACLs desabilitadas usando IAM ou políticas do AWS Organizations, consulteDesabilitar ACLs para todos os novos buckets (aplicada pelo proprietário do bucket).

    ACLs habilitadas

    • Bucket owner preferred (Preferencial do proprietário do bucket): o proprietário do bucket tem a propriedade e o controle total sobre novos objetos que outras contas gravam no bucket com a ACL bucket-owner-full-control pré-configurada.

      Se você aplicar a configuração preferencial do proprietário do bucket para exigir que todos os carregamentos do Amazon S3 incluam a ACL bucket-owner-full-control pré-configurada, será possível adicionar uma política de bucket que só permita carregamentos de objetos que usam essa ACL.

    • Object writer (Gravador de objetos): a Conta da AWS que carrega um objeto é a proprietária do objeto, tem controle total sobre ele e pode conceder acesso a outros usuários por meio de ACLs.

  6. Escolha Save (Salvar).

Para aplicar uma configuração do Object Ownership a um bucket existente, use o comando put-bucket-ownership-controls com o parâmetro --ownership-controls.

Este exemplo aplica a configuração aplicada pelo proprietário do bucket para um bucket existente usando a AWS CLI:

aws s3api put-bucket-ownership-controls --bucket DOC-EXAMPLE-BUCKET --ownership-controls Rules=[{ObjectOwnership=BucketOwnerEnforced}]

Este exemplo aplica a configuração BucketOwnerEnforced aplicada pelo proprietário do bucket para um bucket existente usando AWS SDK for Java:

// Build the ObjectOwnership for BucketOwnerEnforced OwnershipControlsRule rule = OwnershipControlsRule.builder() .objectOwnership(ObjectOwnership.BucketOwnerEnforced) .build(); OwnershipControls ownershipControls = OwnershipControls.builder() .rules(rule) .build() // Build the PutBucketOwnershipControlsRequest PutBucketOwnershipControlsRequest putBucketOwnershipControlsRequest = PutBucketOwnershipControlsRequest.builder() .bucket(BUCKET_NAME) .ownershipControls(ownershipControls) .build(); // Send the request to S3 s3client.putBucketOwnershipControls(putBucketOwnershipControlsRequest);

Para usar o AWS CloudFormation para aplicar uma configuração do Object Ownership a um bucket existente, consulte AWS::S3::Bucket OwnershipControls no Guia do usuário do AWS CloudFormation.

Para usar a API REST para aplicar uma configuração do Object Ownership a um bucket do S3 existente, use PutBucketOwnershipControls. Para obter mais informações, consulte PutBucketOwnershipControls na Referência da API do Amazon Simple Storage Service.

Próximas etapas: depois de adotar as configurações preferenciais aplicadas pelo proprietário do bucket ou do proprietário do bucket para Object Ownership, você poderá seguir estas etapas:

  • Bucket owner enforced (Aplicada pelo proprietário do bucket): exija que todos os novos buckets sejam criados com ACLs desabilitadas usando uma política do IAM ou do Organizations.

  • Bucket owner preferred (Preferencial do proprietário do bucket): adicione uma política de bucket do S3 para exigir a ACL bucket-owner-full-control pré-configurada para todos os carregamentos de objetos para o bucket.