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. Por padrão, a Propriedade de Objetos do S3 é definida como a configuração Imposto pelo proprietário do bucket e as ACLs são desabilitadas para novos buckets. Com as ACLs desabilitadas, o proprietário do bucket possui cada objeto no bucket e gerencia o acesso aos dados exclusivamente usando políticas de gerenciamento de acesso. Recomendamos manter as ACLs desabilitadas, exceto em circunstâncias incomuns em que seja necessário controlar o acesso para cada objeto individualmente.

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
  • Imposto pelo proprietário do bucket (padrão): 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): 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 Imposto 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. Consulte mais informações sobre as permissões do Amazon S3 em Actions, resources, and condition keys for Amazon S3 na Referência de autorização do serviço.

  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 aba 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 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. Os valores válidos de propriedade são BucketOwnerEnforced, BucketOwnerPreferred ou ObjectWriter.

Este exemplo aplica a configuração Imposto 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}]"

Para obter informações sobre put-bucket-ownership-controls, consulte put-bucket-ownership-controls no Guia do usuário do AWS Command Line Interface.

Este exemplo aplica a configuração BucketOwnerEnforced à Propriedade de objeto em um bucket existente usando o 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 Amazon S3 s3client.putBucketOwnershipControls(putBucketOwnershipControlsRequest);

Para usar o AWS CloudFormation para aplicar uma configuração de Propriedade de Objeto 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 Imposto pelo proprietário do bucket ou Proprietário do bucket preferido para a Propriedade de Objetos, 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.