Como o bloqueio de objetos do S3 funciona - Amazon Simple Storage Service

Como o bloqueio de objetos do S3 funciona

Você pode usar o bloqueio de objetos do S3 para armazenar objetos usando um modelo gravar uma vez, ler muitas (WORM, write once read many). O bloqueio de objetos pode ajudar a evitar que os objetos sejam excluídos ou substituídos por um período de tempo fixo ou indefinidamente. Você pode usar o bloqueio de objetos do S3 para atender a requisitos regulamentares que exigem armazenamento WORM ou adicionar uma camada extra de proteção contra alterações e exclusões de objetos.

Para obter informações sobre como gerenciar o status de bloqueio de objetos do Amazon S3, consulte Gerenciar o bloqueio de objetos .

nota

Os buckets do S3 com bloqueio de objeto do S3 não podem ser usados como buckets de destino para logs de acesso ao servidor. Para obter mais informações, consulte Registrar em log as solicitações com registro em log de acesso ao servidor.

As seções a seguir descrevem os principais recursos do bloqueio de objetos do S3.

Modos de retenção

O bloqueio de objetos do S3 fornece dois modos de retenção:

  • Modo de governança

  • Modo de conformidade

Esses modos de retenção aplicam níveis diferentes de proteção aos objetos. Aplique um dos modos de retenção a qualquer versão de objeto protegida pelo bloqueio de objetos.

No modo de governança, os usuários não podem substituir nem excluir uma versão do objeto ou alterar as configurações de bloqueio, a menos que tenham permissões especiais. Com o modo de governança, você protege objetos contra a exclusão da maioria dos usuários, mas ainda pode conceder a alguns usuários permissão para alterar as configurações de retenção ou excluir o objeto, caso necessário. Também é possível usar o modo de governança para testar as configurações do período de retenção antes de criar um período de retenção do modo de conformidade.

Para substituir ou remover as configurações de retenção do modo de governança, um usuário deve ter a permissão s3:BypassGovernanceRetention e incluir explicitamente x-amz-bypass-governance-retention:true como um cabeçalho de solicitação com qualquer solicitação que exija a substituição do modo de governança.

nota

Por padrão, o console do Amazon S3 inclui o cabeçalho x-amz-bypass-governance-retention:true. Se você tentar excluir objetos protegidos pelo modo governança e tiver permissões s3:BypassGovernanceRetention, a operação terá êxito.

No modo de conformidade, uma versão do objeto protegida não pode ser substituída nem excluída por qualquer usuário, inclusive o usuário root na Conta da AWS. Quando um objeto estiver bloqueado no modo de conformidade, o modo de retenção não poderá ser alterado nem o período de retenção poderá ser encurtado. O modo de conformidade ajuda a garantir que uma versão do objeto não possa ser substituída nem excluída durante o período de retenção.

nota

A atualização dos metadados de uma versão do objeto, ocorrida quando você faz ou altera um bloqueio de objeto, não substitui a versão do objeto nem redefine o timestamp Last-Modified.

Períodos de retenção

Um período de retenção protege uma versão do objeto por um período fixo. Quando você coloca um período de retenção em uma versão do objeto, o Amazon S3 armazena um timestamp nos metadados da versão do objeto para indicar quando o período de retenção expira. Depois que o período de retenção expirar, a versão do objeto não poderá ser substituída nem excluída, a menos que você tenha feito uma retenção legal na versão do objeto.

É possível colocar um período de retenção em uma versão do objeto explicitamente ou por meio de uma configuração padrão do bucket. Ao aplicar um período de retenção a uma versão de objeto explicitamente, especifique a opção de Retain Until Date (Reter até uma determinada data) para a versão do objeto. O Amazon S3 armazena a configuração Retain Until Date nos metadados da versão do objeto e protege a versão do objeto até que o período de retenção expire.

Ao usar as configurações padrão do bucket, você não especifica uma Retain Until Date. Em vez disso, especifique uma duração, em dias ou anos, pela qual a versão do objeto colocada no bucket deve ser protegida. Quando você coloca um objeto no bucket, o Amazon S3 calcula uma Retain Until Date para a versão do objeto adicionando a duração especificada ao timestamp da criação da versão do objeto. Ele armazena a Retain Until Date nos metadados da versão do objeto. A versão do objeto acaba sendo protegida exatamente, ainda que você tenha colocado explicitamente um bloqueio com esse período de retenção na versão do objeto.

nota

Caso a solicitação para colocar uma versão do objeto em um bucket contenha um modo de retenção explícito e um período, essas configurações substituem todas as padrão do bucket dessa versão do objeto.

Assim como acontece com todas as outras configurações de bloqueio de objetos, os períodos de retenção se aplicam a versões de objetos individuais. As versões diferentes de um único objeto podem ter modos e períodos de retenção diferentes.

Por exemplo, suponha que você tenha um objeto de 15 dias em um período de retenção de 30 dias e você PUT um objeto no Amazon S3 com o mesmo nome e um período de retenção de 60 dias. Nesse caso, o PUT será bem-sucedido, e o Amazon S3 criará uma nova versão do objeto com um período de retenção de 60 dias. A versão anterior mantém o período de retenção original e se torna excluível em 15 dias.

Prolongue um período de retenção depois que você tiver aplicado uma configuração de retenção a uma versão do objeto. Para fazer isso, envie uma nova solicitação de bloqueio para a versão do objeto com uma Retain Until Date que seja posterior à configurada atualmente para a versão do objeto. O Amazon S3 substitui o período de retenção existente pelo novo período mais longo. Qualquer usuário com permissões para colocar um período de retenção do objeto pode prolongar um período de retenção para uma versão do objeto bloqueada em qualquer modo.

Com o bloqueio de objetos, você também pode colocar uma retenção legal em uma versão de objeto. Assim como um período de retenção, uma retenção legal evita que uma versão do objeto seja substituída ou excluída. Porém, uma retenção legal não tem um período de retenção associado e permanecerá em vigor até ser removida. As retenções legais podem ser feitas e removidas livremente por qualquer usuário com a permissão s3:PutObjectLegalHold. Para obter uma lista completa das permissões do Amazon S3, consulte Ações, recursos e chaves de condição do Amazon S3.

As retenções legais independem dos períodos de retenção. Desde que o bucket que contém o objeto tenha o bloqueio de objetos habilitado, é possível colocar e remover retenções legais, independentemente da versão do objeto especificado ter ou não um período de retenção definido. Fazer uma retenção legal em uma versão do objeto não afeta o modo de retenção ou o período de retenção dessa versão do objeto.

Por exemplo, suponha que você coloque uma retenção legal em uma versão do objeto enquanto essa versão também está protegida por um período de retenção. Se o período de retenção expirar, o objeto não perderá a proteção WORM. Em vez disso, a retenção legal continuará protegendo o objeto até um usuário autorizado removê-la explicitamente. Da mesma maneira, se você remover uma retenção legal enquanto uma versão do objeto tiver um período de retenção em vigor, a versão do objeto continuará protegida até o período de retenção expirar.

Para usar o bloqueio de objetos, habilite-o para um bucket. Também é possível configurar um modo e um período de retenção padrão que se aplicam a novos objetos colocados no bucket. Para obter mais informações, consulte Configurar o bloqueio de objetos do S3 usando o console.

Configuração do bucket

Para usar o bloqueio de objetos, habilite-o para um bucket. Também é possível configurar um modo e um período de retenção padrão que se aplicam a novos objetos colocados no bucket.

nota

Ao usar o bloqueio de objetos do S3, certifique-se de levar sua técnica de criptografia em consideração. Por exemplo, se você estiver usando criptografia no lado do servidor com as chaves do AWS KMS, considere como a possível exclusão da chave pode interagir com o bloqueio de objetos do S3. Pode ser importante considerar a proteção para a chave também.

Habilitar o bloqueio de objetos do S3

Para bloquear todos os objetos, você precisa configurar um bucket para usar o bloqueio de objetos do S3. Para fazer isso, especifique que deseja habilitar o bloqueio de objetos ao criar o bucket. Depois de configurar um bucket para bloqueio de objetos, você poderá bloquear objetos nesse bucket com períodos de retenção, retenções legais ou ambos.

nota
  • Só é possível habilitar o bloqueio de objetos para novos buckets. Para habilitar o bloqueio de objetos para um bucket existente, entre em contato com o Suppor AWS Support.

  • Ao criar um bucket com o bloqueio de objetos habilitado, o Amazon S3 habilita automaticamente o versionamento para o bucket.

  • Se você criar um bucket com o bloqueio de objetos habilitado, não poderá desabilitá-lo nem suspender o versionamento para o bucket.

Para obter informações sobre como ativar o Object Lock no console, consulte Configurar o bloqueio de objetos do S3 usando o console.

Configurações de retenção padrão

Ao ativar o bloqueio de objetos para um bucket, o bucket pode armazenar objetos protegidos. No entanto, a configuração não protege automaticamente os objetos colocados no bucket. Se quiser proteger automaticamente versões de objeto colocadas no bucket, você poderá configurar um período de retenção padrão. As configurações padrão se aplicam a todos os novos objetos no bucket, a menos que você especifique explicitamente um modo de retenção e um período diferente para um objeto ao criá-lo.

dica

Para impor o modo de retenção padrão do bucket e o período para todas as novas versões de objetos colocados em um bucket, defina os padrões do bucket e negue permissão aos usuários para configurarem as configurações de retenção de objetos. O Amazon S3 aplica o modo e o período de retenção padrão a novas versões de objeto colocados no bucket e rejeita qualquer solicitação para colocar um objeto que inclua um modo de retenção e configuração.

As configurações padrão do bucket exigem um modo e um período. Um modo padrão do bucket é de governança ou de conformidade. Para obter mais informações, consulte Modos de retenção.

Um período de retenção padrão é descrito não como um time stamp, mas como um período em dias ou em anos. Quando você coloca uma versão do objeto em um bucket com um período de retenção padrão, o bloqueio de objetos calcula uma retenção até uma determinada data. Ele faz isso adicionando o período de retenção padrão ao timestamp de criação da versão do objeto. O Amazon S3 armazena o timestamp resultante como a opção de Retain Until Date, como se você mesmo tivesse calculado o timestamp manualmente e colocado-o na versão do objeto.

As configurações padrão só se aplicam a novos objetos colocados no bucket. A colocação de uma configuração de retenção padrão em um bucket não coloca configurações de retenção em objetos já existentes no bucket.

Importante

Os bloqueios de objeto se aplicam apenas a versões de objeto individuais. Caso você coloque um objeto em um bucket que tenha um período de retenção padrão e não especifique explicitamente um período de retenção para esse objeto, o Amazon S3 criará o objeto com um período de retenção correspondente ao padrão do bucket. Depois que o objeto for criado, o período de retenção será independente do período de retenção padrão do bucket. A alteração do período de retenção padrão de um bucket não altera o período de retenção existente para nenhum objeto nesse bucket.

nota

Se você configurar um período de retenção padrão em um bucket, as solicitações para fazer upload de objetos nesse bucket devem incluir o cabeçalho Content-MD5. Para obter mais informações, consulte PutObject na Referência da API do Amazon Simple Storage Service.

Permissões obrigatórias

As operações do bloqueio de objetos exigem permissões específicas. Dependendo da operação exata que você está tentando realizar, talvez algumas das seguintes permissões poderão ser necessárias:

  • s3:BypassGovernanceRetention

  • s3:GetBucketObjectLockConfiguration

  • s3:GetObjectLegalHold

  • s3:GetObjectRetention

  • s3:PutBucketObjectLockConfiguration

  • s3:PutObjectLegalHold

  • s3:PutObjectRetention

Para obter informações sobre como usar condições com permissões, consulte Exemplos de chave de condição do Amazon S3.